mpw 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,140 +1,140 @@
1
1
  #!/usr/bin/ruby
2
-
2
+
3
3
  require 'mpw/mpw'
4
4
  require 'mpw/item'
5
5
  require 'test/unit'
6
6
  require 'yaml'
7
7
  require 'csv'
8
-
8
+
9
9
  class TestMPW < Test::Unit::TestCase
10
- def setup
11
- fixture_file = './test/files/fixtures.yml'
12
-
13
- wallet_file = 'default.gpg'
14
- key = 'test@example.com'
15
- password = 'password'
16
-
17
- if defined?(I18n.enforce_available_locales)
18
- I18n.enforce_available_locales = false
19
- end
20
-
21
- @mpw = MPW::MPW.new(key, wallet_file, password)
22
- @fixtures = YAML.load_file(fixture_file)
23
- end
24
-
25
- def test_00_decrypt_empty_file
26
- @mpw.read_data
27
- assert_equal(0, @mpw.list.length)
28
- end
29
-
30
- def test_01_encrypt_empty_file
31
- @mpw.read_data
32
- @mpw.write_data
33
- end
34
-
35
- def test_02_add_item
36
- data = { group: @fixtures['add_new']['group'],
37
- host: @fixtures['add_new']['host'],
38
- protocol: @fixtures['add_new']['protocol'],
39
- user: @fixtures['add_new']['user'],
40
- port: @fixtures['add_new']['port'],
41
- comment: @fixtures['add_new']['comment'],
42
- }
43
-
44
- item = MPW::Item.new(data)
45
-
46
- assert(!item.nil?)
47
- assert(!item.empty?)
48
-
49
- @mpw.read_data
50
- @mpw.add(item)
51
- @mpw.set_password(item.id, @fixtures['add_new']['password'])
52
-
53
- assert_equal(1, @mpw.list.length)
54
-
55
- item = @mpw.list[0]
56
- @fixtures['add_new'].each do |k,v|
57
- if k == 'password'
58
- assert_equal(v, @mpw.get_password(item.id))
59
- else
60
- assert_equal(v, item.send(k).to_s)
61
- end
62
- end
63
-
64
- @mpw.write_data
65
- end
66
-
67
- def test_03_decrypt_file
68
- @mpw.read_data
69
- assert_equal(1, @mpw.list.length)
70
-
71
- item = @mpw.list[0]
72
- @fixtures['add_new'].each do |k,v|
73
- if k == 'password'
74
- assert_equal(v, @mpw.get_password(item.id))
75
- else
76
- assert_equal(v, item.send(k).to_s)
77
- end
78
- end
79
- end
80
-
81
- def test_04_delete_item
82
- @mpw.read_data
83
-
84
- assert_equal(1, @mpw.list.length)
85
-
86
- @mpw.list.each do |item|
87
- item.delete
88
- end
89
-
90
- assert_equal(0, @mpw.list.length)
91
-
92
- @mpw.write_data
93
- end
94
-
95
- def test_05_search
96
- @mpw.read_data
97
-
98
- @fixtures.each_value do |v|
99
- data = { group: v['group'],
100
- host: v['host'],
101
- protocol: v['protocol'],
102
- user: v['user'],
103
- port: v['port'],
104
- comment: v['comment'],
105
- }
106
-
107
- item = MPW::Item.new(data)
108
-
109
- assert(!item.nil?)
110
- assert(!item.empty?)
111
-
112
- @mpw.add(item)
113
- @mpw.set_password(item.id, v['password'])
114
- end
115
-
116
- assert_equal(3, @mpw.list.length)
117
- assert_equal(1, @mpw.list(group: @fixtures['add_new']['group']).length)
118
- assert_equal(1, @mpw.list(pattern: 'existing').length)
119
- assert_equal(2, @mpw.list(pattern: 'host_[eu]').length)
120
- end
121
-
122
- def test_06_add_gpg_key
123
- @mpw.read_data
124
-
125
- @mpw.add_key('test2@example.com')
126
- assert_equal(2, @mpw.list_keys.length)
127
-
128
- @mpw.write_data
129
- end
130
-
131
- def test_07_delete_gpg_key
132
- @mpw.read_data
133
- assert_equal(2, @mpw.list_keys.length)
134
-
135
- @mpw.delete_key('test2@example.com')
136
- assert_equal(1, @mpw.list_keys.length)
137
-
138
- @mpw.write_data
139
- end
10
+ def setup
11
+ fixture_file = './test/files/fixtures.yml'
12
+
13
+ wallet_file = 'default.gpg'
14
+ key = 'test@example.com'
15
+ password = 'password'
16
+
17
+ if defined?(I18n.enforce_available_locales)
18
+ I18n.enforce_available_locales = false
19
+ end
20
+
21
+ @mpw = MPW::MPW.new(key, wallet_file, password)
22
+ @fixtures = YAML.load_file(fixture_file)
23
+ end
24
+
25
+ def test_00_decrypt_empty_file
26
+ @mpw.read_data
27
+ assert_equal(0, @mpw.list.length)
28
+ end
29
+
30
+ def test_01_encrypt_empty_file
31
+ @mpw.read_data
32
+ @mpw.write_data
33
+ end
34
+
35
+ def test_02_add_item
36
+ data = { group: @fixtures['add_new']['group'],
37
+ host: @fixtures['add_new']['host'],
38
+ protocol: @fixtures['add_new']['protocol'],
39
+ user: @fixtures['add_new']['user'],
40
+ port: @fixtures['add_new']['port'],
41
+ comment: @fixtures['add_new']['comment'],
42
+ }
43
+
44
+ item = MPW::Item.new(data)
45
+
46
+ assert(!item.nil?)
47
+ assert(!item.empty?)
48
+
49
+ @mpw.read_data
50
+ @mpw.add(item)
51
+ @mpw.set_password(item.id, @fixtures['add_new']['password'])
52
+
53
+ assert_equal(1, @mpw.list.length)
54
+
55
+ item = @mpw.list[0]
56
+ @fixtures['add_new'].each do |k,v|
57
+ if k == 'password'
58
+ assert_equal(v, @mpw.get_password(item.id))
59
+ else
60
+ assert_equal(v, item.send(k).to_s)
61
+ end
62
+ end
63
+
64
+ @mpw.write_data
65
+ end
66
+
67
+ def test_03_decrypt_file
68
+ @mpw.read_data
69
+ assert_equal(1, @mpw.list.length)
70
+
71
+ item = @mpw.list[0]
72
+ @fixtures['add_new'].each do |k,v|
73
+ if k == 'password'
74
+ assert_equal(v, @mpw.get_password(item.id))
75
+ else
76
+ assert_equal(v, item.send(k).to_s)
77
+ end
78
+ end
79
+ end
80
+
81
+ def test_04_delete_item
82
+ @mpw.read_data
83
+
84
+ assert_equal(1, @mpw.list.length)
85
+
86
+ @mpw.list.each do |item|
87
+ item.delete
88
+ end
89
+
90
+ assert_equal(0, @mpw.list.length)
91
+
92
+ @mpw.write_data
93
+ end
94
+
95
+ def test_05_search
96
+ @mpw.read_data
97
+
98
+ @fixtures.each_value do |v|
99
+ data = { group: v['group'],
100
+ host: v['host'],
101
+ protocol: v['protocol'],
102
+ user: v['user'],
103
+ port: v['port'],
104
+ comment: v['comment'],
105
+ }
106
+
107
+ item = MPW::Item.new(data)
108
+
109
+ assert(!item.nil?)
110
+ assert(!item.empty?)
111
+
112
+ @mpw.add(item)
113
+ @mpw.set_password(item.id, v['password'])
114
+ end
115
+
116
+ assert_equal(3, @mpw.list.length)
117
+ assert_equal(1, @mpw.list(group: @fixtures['add_new']['group']).length)
118
+ assert_equal(1, @mpw.list(pattern: 'existing').length)
119
+ assert_equal(2, @mpw.list(pattern: 'host_[eu]').length)
120
+ end
121
+
122
+ def test_06_add_gpg_key
123
+ @mpw.read_data
124
+
125
+ @mpw.add_key('test2@example.com')
126
+ assert_equal(2, @mpw.list_keys.length)
127
+
128
+ @mpw.write_data
129
+ end
130
+
131
+ def test_07_delete_gpg_key
132
+ @mpw.read_data
133
+ assert_equal(2, @mpw.list_keys.length)
134
+
135
+ @mpw.delete_key('test2@example.com')
136
+ assert_equal(1, @mpw.list_keys.length)
137
+
138
+ @mpw.write_data
139
+ end
140
140
  end
@@ -4,28 +4,28 @@ require 'yaml'
4
4
  require 'test/unit'
5
5
 
6
6
  class TestTranslate < Test::Unit::TestCase
7
- def test_00_check_translate
8
- missing = 0
9
-
10
- Dir.glob('i18n/*.yml').each do |yaml|
11
- lang = File.basename(yaml, '.yml')
12
- translate = YAML.load_file(yaml)
13
-
14
- `grep -r -o "I18n.t('.*)" bin/ lib/ | cut -d"'" -f2`.each_line do |line|
15
- begin
16
- t = translate[lang]
17
- line.strip.split('.').each do |v|
18
- t = t[v]
19
- end
7
+ def test_00_check_translate
8
+ missing = 0
20
9
 
21
- assert(!t.to_s.empty?)
22
- rescue
23
- puts "#{lang}.#{line}"
24
- missing = 1
25
- end
26
- end
27
- end
28
-
29
- assert_equal(0, missing)
30
- end
10
+ Dir.glob('i18n/*.yml').each do |yaml|
11
+ lang = File.basename(yaml, '.yml')
12
+ translate = YAML.load_file(yaml)
13
+
14
+ `grep -r -o "I18n.t('.*)" bin/ lib/ | cut -d"'" -f2`.each_line do |line|
15
+ begin
16
+ t = translate[lang]
17
+ line.strip.split('.').each do |v|
18
+ t = t[v]
19
+ end
20
+
21
+ assert(!t.to_s.empty?)
22
+ rescue
23
+ puts "#{lang}.#{line}"
24
+ missing = 1
25
+ end
26
+ end
27
+ end
28
+
29
+ assert_equal(0, missing)
30
+ end
31
31
  end
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/ruby
2
-
2
+
3
3
  require_relative 'init.rb'
4
4
  require_relative 'test_config.rb'
5
5
  require_relative 'test_item.rb'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpw
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Waksberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-09 00:00:00.000000000 Z
11
+ date: 2017-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -110,46 +110,6 @@ dependencies:
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: 0.8.1
113
- - !ruby/object:Gem::Dependency
114
- name: net-ssh
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: '3.2'
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: 3.2.0
123
- type: :runtime
124
- prerelease: false
125
- version_requirements: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: '3.2'
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: 3.2.0
133
- - !ruby/object:Gem::Dependency
134
- name: net-sftp
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '2.1'
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: 2.1.2
143
- type: :runtime
144
- prerelease: false
145
- version_requirements: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - "~>"
148
- - !ruby/object:Gem::Version
149
- version: '2.1'
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 2.1.2
153
113
  - !ruby/object:Gem::Dependency
154
114
  name: clipboard
155
115
  requirement: !ruby/object:Gem::Requirement
@@ -200,6 +160,7 @@ extensions: []
200
160
  extra_rdoc_files: []
201
161
  files:
202
162
  - ".gitignore"
163
+ - ".rubocop.yml"
203
164
  - ".travis.yml"
204
165
  - CHANGELOG.md
205
166
  - Gemfile
@@ -223,8 +184,6 @@ files:
223
184
  - lib/mpw/config.rb
224
185
  - lib/mpw/item.rb
225
186
  - lib/mpw/mpw.rb
226
- - lib/mpw/sync/ftp.rb
227
- - lib/mpw/sync/ssh.rb
228
187
  - mpw.gemspec
229
188
  - templates/add_form.erb
230
189
  - templates/update_form.erb
@@ -247,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
247
206
  requirements:
248
207
  - - ">="
249
208
  - !ruby/object:Gem::Version
250
- version: '0'
209
+ version: '2.1'
251
210
  required_rubygems_version: !ruby/object:Gem::Requirement
252
211
  requirements:
253
212
  - - ">="
@@ -1,68 +0,0 @@
1
- #!/usr/bin/ruby
2
- # MPW is a software to crypt and manage your passwords
3
- # Copyright (C) 2016 Adrien Waksberg <mpw@yae.im>
4
- #
5
- # This program is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU General Public License
7
- # as published by the Free Software Foundation; either version 2
8
- # of the License, or (at your option) any later version.
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU General Public License
16
- # along with this program; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18
-
19
- require 'i18n'
20
- require 'net/ftp'
21
-
22
- module MPW
23
- class FTP
24
-
25
- # Constructor
26
- # @args: config -> the config
27
- def initialize(config)
28
- @host = config['host']
29
- @user = config['user']
30
- @password = config['password']
31
- @path = config['path']
32
- @port = config['port'].instance_of?(Integer) ? 22 : config['port']
33
- end
34
-
35
-
36
- # Connect to server
37
- def connect
38
- Net::FTP.open(@host) do |ftp|
39
- ftp.login(@user, @password)
40
- break
41
- end
42
- rescue Exception => e
43
- raise "#{I18n.t('error.sync.connection')}\n#{e}"
44
- end
45
-
46
- # Get data on server
47
- # @args: file_tmp -> the path where download the file
48
- def get(file_tmp)
49
- Net::FTP.open(@host) do |ftp|
50
- ftp.login(@user, @password)
51
- ftp.gettextfile(@path, file_tmp)
52
- end
53
- rescue Exception => e
54
- raise "#{I18n.t('error.sync.download')}\n#{e}"
55
- end
56
-
57
- # Update the remote data
58
- # @args: file_gpg -> the data to send on server
59
- def update(file_gpg)
60
- Net::FTP.open(@host) do |ftp|
61
- ftp.login(@user, @password)
62
- ftp.puttextfile(file_gpg, @path)
63
- end
64
- rescue Exception => e
65
- raise "#{I18n.t('error.sync.upload')}\n#{e}"
66
- end
67
- end
68
- end