mirror of
https://github.com/nishiki/manage-password.git
synced 2025-02-20 01:50:04 +00:00
unittest: fix for mpw
This commit is contained in:
parent
21ef7659fc
commit
0708c3d4c0
4 changed files with 102 additions and 216 deletions
|
@ -29,6 +29,8 @@ module MPW
|
|||
# @args: password -> the GPG key password
|
||||
# @rtrn: true if data has been decrypted
|
||||
def decrypt(password=nil)
|
||||
@data = []
|
||||
|
||||
if File.exist?(@file_gpg) and not File.zero?(@file_gpg)
|
||||
crypto = GPGME::Crypto.new(armor: true)
|
||||
data_decrypt = crypto.decrypt(IO.read(@file_gpg), password: password).read.force_encoding('utf-8')
|
||||
|
@ -165,7 +167,7 @@ module MPW
|
|||
CSV.open(file, 'w', write_headers: true,
|
||||
headers: ['name', 'group', 'protocol', 'host', 'user', 'password', 'port', 'comment']) do |csv|
|
||||
@data.each do |item|
|
||||
csv << [item.id, item.group, item.protocol, item.host, item.user, item.password, item.port, item.comment]
|
||||
csv << [item.name, item.group, item.protocol, item.host, item.user, item.password, item.port, item.comment]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -212,7 +214,7 @@ module MPW
|
|||
group: row['group'],
|
||||
host: row['host'],
|
||||
protocol: row['protocol'],
|
||||
login: row['login'],
|
||||
user: row['user'],
|
||||
password: row['password'],
|
||||
port: row['port'],
|
||||
comment: row['comment'],
|
||||
|
@ -229,7 +231,7 @@ module MPW
|
|||
group: row['group'],
|
||||
host: row['host'],
|
||||
protocol: row['protocol'],
|
||||
login: row['login'],
|
||||
user: row['user'],
|
||||
password: row['password'],
|
||||
port: row['port'],
|
||||
comment: row['comment'],
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name,group,protocol,host,login,password,port,comment
|
||||
test_name_csv,test_group_csv,test_protocol_csv,test_host_csv,test_login_csv,test_password_csv,44,test_comment_csv
|
||||
test_name_update_csv,test_group_update_csv,test_protocol_update_csv,test_host_update_csv,test_login_update_csv,test_password_update_csv,45,test_comment_update_csv
|
||||
name,group,protocol,host,user,password,port,comment
|
||||
test_name,test_group,test_protocol,test_host,test_user,test_password,42,test_comment
|
||||
test_name_update,test_group_update,test_protocol_update,test_host_update,test_user_update,test_password_update,43,test_comment_update
|
||||
|
|
|
|
@ -5,7 +5,7 @@ XWas7vpy0HerhOYd:
|
|||
group: test_group
|
||||
host: test_host
|
||||
protocol: test_protocol
|
||||
login: test_login
|
||||
user: test_user
|
||||
password: test_password
|
||||
port: 42
|
||||
comment: test_comment
|
||||
|
@ -16,7 +16,7 @@ D7URyJENLa91jt0b:
|
|||
group: test_group_update
|
||||
host: test_host_update
|
||||
protocol: test_protocol_update
|
||||
login: test_login_update
|
||||
user: test_user_update
|
||||
password: test_password_update
|
||||
port: 43
|
||||
comment: test_comment_update
|
||||
|
|
300
test/test_mpw.rb
300
test/test_mpw.rb
|
@ -1,13 +1,14 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
require_relative '../lib/MPW'
|
||||
require_relative '../lib/Item'
|
||||
require 'test/unit'
|
||||
require 'yaml'
|
||||
require 'csv'
|
||||
|
||||
class TestMPW < Test::Unit::TestCase
|
||||
def setup
|
||||
@fixture_file = 'files/fixtures.yml'
|
||||
fixture_file = 'files/fixtures.yml'
|
||||
|
||||
file_gpg = 'test.gpg'
|
||||
key = ENV['MPW_TEST_KEY']
|
||||
|
@ -19,45 +20,47 @@ class TestMPW < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
File.delete(file_gpg) if File.exist?(file_gpg)
|
||||
@mpw = MPW::MPW.new(file_gpg, key)
|
||||
@fixtures = YAML.load_file(@fixture_file)
|
||||
|
||||
@mpw = MPW::MPW.new(file_gpg, key)
|
||||
@fixtures = YAML.load_file(fixture_file)
|
||||
end
|
||||
|
||||
def test_01_import_yaml
|
||||
import_file = 'files/test_import.yml'
|
||||
|
||||
assert(@mpw.import(import_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
assert_equal(2, @mpw.list.length)
|
||||
|
||||
result = @mpw.search[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
item = @mpw.list[0]
|
||||
assert_equal(@fixtures['add_new']['name'], item.name)
|
||||
assert_equal(@fixtures['add_new']['group'], item.group)
|
||||
assert_equal(@fixtures['add_new']['host'], item.host)
|
||||
assert_equal(@fixtures['add_new']['protocol'], item.protocol)
|
||||
assert_equal(@fixtures['add_new']['user'], item.user)
|
||||
assert_equal(@fixtures['add_new']['password'], item.password)
|
||||
assert_equal(@fixtures['add_new']['port'].to_i, item.port)
|
||||
assert_equal(@fixtures['add_new']['comment'], item.comment)
|
||||
end
|
||||
|
||||
def test_02_export_yaml
|
||||
import_file = 'files/test_import.yml'
|
||||
export_file = 'test_export.yml'
|
||||
|
||||
assert(@mpw.import(@fixture_file))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
assert(@mpw.import(import_file))
|
||||
assert_equal(2, @mpw.list.length)
|
||||
assert(@mpw.export(export_file, :yaml))
|
||||
export = YAML::load_file(export_file)
|
||||
assert_equal(2, export.length)
|
||||
|
||||
result = export.values[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
assert_equal(@fixtures['add_new']['name'], result['name'])
|
||||
assert_equal(@fixtures['add_new']['group'], result['group'])
|
||||
assert_equal(@fixtures['add_new']['host'], result['host'])
|
||||
assert_equal(@fixtures['add_new']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add_new']['user'], result['user'])
|
||||
assert_equal(@fixtures['add_new']['password'], result['password'])
|
||||
assert_equal(@fixtures['add_new']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add_new']['comment'], result['comment'])
|
||||
|
||||
File.unlink(export_file)
|
||||
end
|
||||
|
@ -66,155 +69,73 @@ class TestMPW < Test::Unit::TestCase
|
|||
import_file = 'files/test_import.csv'
|
||||
|
||||
assert(@mpw.import(import_file, :csv))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
assert_equal(2, @mpw.list.length)
|
||||
|
||||
import = CSV.parse(File.read(import_file), headers: true)
|
||||
|
||||
result = @mpw.search[0]
|
||||
assert_equal(import[0]['name'], result['name'])
|
||||
assert_equal(import[0]['group'], result['group'])
|
||||
assert_equal(import[0]['host'], result['host'])
|
||||
assert_equal(import[0]['protocol'], result['protocol'])
|
||||
assert_equal(import[0]['login'], result['login'])
|
||||
assert_equal(import[0]['password'], result['password'])
|
||||
assert_equal(import[0]['port'].to_i, result['port'])
|
||||
assert_equal(import[0]['comment'], result['comment'])
|
||||
item = @mpw.list[0]
|
||||
assert_equal(import[0]['name'], item.name)
|
||||
assert_equal(import[0]['group'], item.group)
|
||||
assert_equal(import[0]['host'], item.host)
|
||||
assert_equal(import[0]['protocol'], item.protocol)
|
||||
assert_equal(import[0]['user'], item.user)
|
||||
assert_equal(import[0]['password'], item.password)
|
||||
assert_equal(import[0]['port'].to_i, item.port)
|
||||
assert_equal(import[0]['comment'], item.comment)
|
||||
end
|
||||
|
||||
def test_04_export_csv
|
||||
import_file = 'files/test_import.csv'
|
||||
export_file = 'test_export.csv'
|
||||
assert(@mpw.import(@fixture_file))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
assert(@mpw.import(import_file, :csv))
|
||||
assert_equal(2, @mpw.list.length)
|
||||
assert(@mpw.export(export_file, :csv))
|
||||
export = CSV.parse(File.read(export_file), headers: true)
|
||||
assert_equal(2, export.length)
|
||||
|
||||
result = export[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'], result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
assert_equal(@fixtures['add_new']['name'], result['name'])
|
||||
assert_equal(@fixtures['add_new']['group'], result['group'])
|
||||
assert_equal(@fixtures['add_new']['host'], result['host'])
|
||||
assert_equal(@fixtures['add_new']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add_new']['user'], result['user'])
|
||||
assert_equal(@fixtures['add_new']['password'], result['password'])
|
||||
assert_equal(@fixtures['add_new']['port'], result['port'])
|
||||
assert_equal(@fixtures['add_new']['comment'], result['comment'])
|
||||
|
||||
File.unlink(export_file)
|
||||
end
|
||||
|
||||
def test_05_add
|
||||
assert(@mpw.update(@fixtures['add']['name'],
|
||||
@fixtures['add']['group'],
|
||||
@fixtures['add']['host'],
|
||||
@fixtures['add']['protocol'],
|
||||
@fixtures['add']['login'],
|
||||
@fixtures['add']['password'],
|
||||
@fixtures['add']['port'],
|
||||
@fixtures['add']['comment']))
|
||||
def test_05_add_item
|
||||
data = {name: @fixtures['add_new']['name'],
|
||||
group: @fixtures['add_new']['group'],
|
||||
host: @fixtures['add_new']['host'],
|
||||
protocol: @fixtures['add_new']['protocol'],
|
||||
user: @fixtures['add_new']['user'],
|
||||
password: @fixtures['add_new']['password'],
|
||||
port: @fixtures['add_new']['port'],
|
||||
comment: @fixtures['add_new']['comment'],
|
||||
}
|
||||
|
||||
item = MPW::Item.new(data)
|
||||
|
||||
assert_equal(1, @mpw.search.length)
|
||||
assert(!item.nil?)
|
||||
assert(!item.empty?)
|
||||
|
||||
result = @mpw.search[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
assert(@mpw.add(item))
|
||||
|
||||
assert(@mpw.update(@fixtures['add']['name'],
|
||||
@fixtures['add']['group'],
|
||||
@fixtures['add']['host'],
|
||||
@fixtures['add']['protocol'],
|
||||
@fixtures['add']['login'],
|
||||
@fixtures['add']['password'],
|
||||
@fixtures['add']['port'],
|
||||
@fixtures['add']['comment']))
|
||||
assert_equal(1, @mpw.list.length)
|
||||
|
||||
|
||||
assert_equal(2, @mpw.search.length)
|
||||
end
|
||||
|
||||
def test_06_add_empty_name
|
||||
assert(!@mpw.update('',
|
||||
@fixtures['add']['group'],
|
||||
@fixtures['add']['host'],
|
||||
@fixtures['add']['protocol'],
|
||||
@fixtures['add']['login'],
|
||||
@fixtures['add']['password'],
|
||||
@fixtures['add']['port'],
|
||||
@fixtures['add']['comment']))
|
||||
|
||||
assert_equal(0, @mpw.search.length)
|
||||
end
|
||||
|
||||
def test_07_update_empty
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
id = @mpw.search[0]['id']
|
||||
|
||||
assert(@mpw.update('','', '','','','','', '', id))
|
||||
|
||||
result = @mpw.search_by_id(id)
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
end
|
||||
|
||||
def test_08_update
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
id = @mpw.search[0]['id']
|
||||
|
||||
assert(@mpw.update(@fixtures['update']['name'],
|
||||
@fixtures['update']['group'],
|
||||
@fixtures['update']['host'],
|
||||
@fixtures['update']['protocol'],
|
||||
@fixtures['update']['login'],
|
||||
@fixtures['update']['password'],
|
||||
@fixtures['update']['port'],
|
||||
@fixtures['update']['comment'],
|
||||
id))
|
||||
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
result = @mpw.search_by_id(id)
|
||||
assert_equal(@fixtures['update']['name'], result['name'])
|
||||
assert_equal(@fixtures['update']['group'], result['group'])
|
||||
assert_equal(@fixtures['update']['host'], result['host'])
|
||||
assert_equal(@fixtures['update']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['update']['login'], result['login'])
|
||||
assert_equal(@fixtures['update']['password'], result['password'])
|
||||
assert_equal(@fixtures['update']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['update']['comment'], result['comment'])
|
||||
end
|
||||
|
||||
def test_09_remove
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
id = @mpw.search[0]['id']
|
||||
assert(@mpw.remove(id))
|
||||
|
||||
assert_equal(1, @mpw.search.length)
|
||||
end
|
||||
|
||||
def test_10_remove_noexistent
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
assert(!@mpw.remove('TEST_NOEXISTENT_ID'))
|
||||
|
||||
assert_equal(2, @mpw.search.length)
|
||||
item = @mpw.list[0]
|
||||
assert_equal(@fixtures['add_new']['name'], item.name)
|
||||
assert_equal(@fixtures['add_new']['group'], item.group)
|
||||
assert_equal(@fixtures['add_new']['host'], item.host)
|
||||
assert_equal(@fixtures['add_new']['protocol'], item.protocol)
|
||||
assert_equal(@fixtures['add_new']['user'], item.user)
|
||||
assert_equal(@fixtures['add_new']['password'], item.password)
|
||||
assert_equal(@fixtures['add_new']['port'].to_i, item.port)
|
||||
assert_equal(@fixtures['add_new']['comment'], item.comment)
|
||||
end
|
||||
|
||||
def test_11_encrypt_empty_file
|
||||
|
@ -222,75 +143,38 @@ class TestMPW < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_12_encrypt
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
import_file = 'files/test_import.yml'
|
||||
|
||||
assert(@mpw.import(import_file, :yaml))
|
||||
assert_equal(2, @mpw.list.length)
|
||||
|
||||
assert(@mpw.encrypt)
|
||||
end
|
||||
|
||||
def test_13_decrypt_empty_file
|
||||
assert(@mpw.decrypt)
|
||||
assert_equal(0, @mpw.search.length)
|
||||
assert_equal(0, @mpw.list.length)
|
||||
end
|
||||
|
||||
def test_14_decrypt
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
import_file = 'files/test_import.yml'
|
||||
|
||||
assert(@mpw.import(import_file, :yaml))
|
||||
assert_equal(2, @mpw.list.length)
|
||||
|
||||
assert(@mpw.encrypt)
|
||||
|
||||
assert(@mpw.decrypt)
|
||||
assert_equal(2, @mpw.search.length)
|
||||
assert_equal(2, @mpw.list.length)
|
||||
|
||||
result = @mpw.search[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
end
|
||||
|
||||
def test_15_sync_local_empty
|
||||
import_file = 'files/test_import.yml'
|
||||
|
||||
data = []
|
||||
YAML.load_file(import_file).each_value { |v| data.push(v) }
|
||||
|
||||
@mpw.sync(data, 0)
|
||||
|
||||
result = @mpw.search[0]
|
||||
assert_equal(@fixtures['add']['name'], result['name'])
|
||||
assert_equal(@fixtures['add']['group'], result['group'])
|
||||
assert_equal(@fixtures['add']['host'], result['host'])
|
||||
assert_equal(@fixtures['add']['protocol'], result['protocol'])
|
||||
assert_equal(@fixtures['add']['login'], result['login'])
|
||||
assert_equal(@fixtures['add']['password'], result['password'])
|
||||
assert_equal(@fixtures['add']['port'].to_i, result['port'])
|
||||
assert_equal(@fixtures['add']['comment'], result['comment'])
|
||||
|
||||
assert_equal(2, @mpw.search.length)
|
||||
end
|
||||
|
||||
def test_16_sync_remote_outdated_and_local_empty
|
||||
import_file = 'files/test_import.yml'
|
||||
|
||||
data = []
|
||||
YAML.load_file(import_file).each_value { |v| data.push(v) }
|
||||
|
||||
assert(@mpw.sync(data, Time.now.to_i))
|
||||
|
||||
assert_equal(0, @mpw.search.length)
|
||||
end
|
||||
|
||||
def test_17_sync_empty_data
|
||||
assert(@mpw.import(@fixture_file, :yaml))
|
||||
assert_equal(2, @mpw.search.length)
|
||||
|
||||
assert(@mpw.sync([], 0))
|
||||
|
||||
assert_equal(2, @mpw.search.length)
|
||||
item = @mpw.list[0]
|
||||
assert_equal(@fixtures['add_new']['name'], item.name)
|
||||
assert_equal(@fixtures['add_new']['group'], item.group)
|
||||
assert_equal(@fixtures['add_new']['host'], item.host)
|
||||
assert_equal(@fixtures['add_new']['protocol'], item.protocol)
|
||||
assert_equal(@fixtures['add_new']['user'], item.user)
|
||||
assert_equal(@fixtures['add_new']['password'], item.password)
|
||||
assert_equal(@fixtures['add_new']['port'].to_i, item.port)
|
||||
assert_equal(@fixtures['add_new']['comment'], item.comment)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue