mpw 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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