siba 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/Gemfile +4 -0
- data/Guardfile +18 -0
- data/LICENSE +22 -0
- data/README.md +47 -0
- data/Rakefile +27 -0
- data/bin/siba +5 -0
- data/lib/siba.rb +27 -0
- data/lib/siba/backup.rb +31 -0
- data/lib/siba/console.rb +196 -0
- data/lib/siba/errors.rb +8 -0
- data/lib/siba/generator.rb +115 -0
- data/lib/siba/globals.rb +19 -0
- data/lib/siba/helpers/encoding_helper.rb +38 -0
- data/lib/siba/helpers/file_helper.rb +89 -0
- data/lib/siba/helpers/gem_helper.rb +22 -0
- data/lib/siba/helpers/password_strength.rb +94 -0
- data/lib/siba/helpers/security_helper.rb +30 -0
- data/lib/siba/helpers/string_helper.rb +32 -0
- data/lib/siba/helpers/test/extend_test.rb +114 -0
- data/lib/siba/helpers/test/file_mock.rb +38 -0
- data/lib/siba/helpers/test/helper.rb +55 -0
- data/lib/siba/helpers/test/kernel_mock.rb +44 -0
- data/lib/siba/helpers/test/removable_constants.rb +18 -0
- data/lib/siba/helpers/test/require.rb +12 -0
- data/lib/siba/logger_plug.rb +36 -0
- data/lib/siba/options_backup.rb +37 -0
- data/lib/siba/options_loader.rb +38 -0
- data/lib/siba/plugins/archive/tar/archive.rb +117 -0
- data/lib/siba/plugins/archive/tar/init.rb +38 -0
- data/lib/siba/plugins/archive/tar/options.yml +1 -0
- data/lib/siba/plugins/destination/dir/dest_dir.rb +77 -0
- data/lib/siba/plugins/destination/dir/init.rb +31 -0
- data/lib/siba/plugins/destination/dir/options.yml +2 -0
- data/lib/siba/plugins/encryption/gpg/encryption.rb +140 -0
- data/lib/siba/plugins/encryption/gpg/init.rb +45 -0
- data/lib/siba/plugins/encryption/gpg/options.yml +2 -0
- data/lib/siba/plugins/installed_plugins.rb +77 -0
- data/lib/siba/plugins/plugin_loader.rb +100 -0
- data/lib/siba/plugins/plugins.rb +57 -0
- data/lib/siba/plugins/plugins.yml +9 -0
- data/lib/siba/plugins/source/files/files.rb +166 -0
- data/lib/siba/plugins/source/files/init.rb +33 -0
- data/lib/siba/plugins/source/files/options.yml +11 -0
- data/lib/siba/restore.rb +113 -0
- data/lib/siba/scaffold.rb +166 -0
- data/lib/siba/siba_check.rb +75 -0
- data/lib/siba/siba_file.rb +89 -0
- data/lib/siba/siba_kernel.rb +37 -0
- data/lib/siba/siba_logger.rb +172 -0
- data/lib/siba/tasks/siba_task.rb +42 -0
- data/lib/siba/tasks/siba_tasks.rb +120 -0
- data/lib/siba/test_files.rb +76 -0
- data/lib/siba/test_files/a_file +1 -0
- data/lib/siba/test_files/files_and_dirs/.hidden +1 -0
- data/lib/siba/test_files/files_and_dirs/.hidden_dir/file10 +1 -0
- data/lib/siba/test_files/files_and_dirs/File With Spaces +1 -0
- data/lib/siba/test_files/files_and_dirs/dir1/file10 +1 -0
- data/lib/siba/test_files/files_and_dirs/dir1/sub-dir/file111.txt +1 -0
- data/lib/siba/test_files/files_and_dirs/file1 +1 -0
- data/lib/siba/test_files/files_and_dirs/file2.txt +1 -0
- data/lib/siba/tmp_dir.rb +94 -0
- data/lib/siba/version.rb +5 -0
- data/scaffolds/archive.rb +26 -0
- data/scaffolds/destination.rb +20 -0
- data/scaffolds/encryption.rb +26 -0
- data/scaffolds/project/.gitignore +5 -0
- data/scaffolds/project/Gemfile +4 -0
- data/scaffolds/project/Guardfile +9 -0
- data/scaffolds/project/LICENSE +22 -0
- data/scaffolds/project/README.md +33 -0
- data/scaffolds/project/Rakefile +28 -0
- data/scaffolds/project/lib/siba-c6y-demo.rb +11 -0
- data/scaffolds/project/lib/siba-c6y-demo/options.yml +2 -0
- data/scaffolds/project/lib/siba-c6y-demo/version.rb +9 -0
- data/scaffolds/project/siba-c6y-demo.gemspec +26 -0
- data/scaffolds/project/test/helper/require_integration.rb +5 -0
- data/scaffolds/project/test/helper/require_unit.rb +4 -0
- data/scaffolds/project/test/integration/i9n_init.rb +35 -0
- data/scaffolds/project/test/unit/test_init.rb +43 -0
- data/scaffolds/project/test/unit/yml/valid.yml +8 -0
- data/scaffolds/shared/examples.rb +47 -0
- data/scaffolds/shared/init_example.rb +13 -0
- data/scaffolds/source.rb +25 -0
- data/siba.gemspec +30 -0
- data/test/helper/require_integration.rb +4 -0
- data/test/helper/require_unit.rb +4 -0
- data/test/integration/helpers/i9n_file_helper.rb +50 -0
- data/test/integration/i9n_backup.rb +53 -0
- data/test/integration/i9n_console.rb +16 -0
- data/test/integration/i9n_generator.rb +29 -0
- data/test/integration/i9n_options_backup.rb +22 -0
- data/test/integration/i9n_scaffold.rb +27 -0
- data/test/integration/i9n_siba_file.rb +30 -0
- data/test/integration/i9n_test_unicode_files.rb +40 -0
- data/test/integration/i9n_tmp_dir.rb +44 -0
- data/test/integration/plugins/archive/tar/i9n_archive.rb +18 -0
- data/test/integration/plugins/destination/dir/i9n_dest_dir.rb +52 -0
- data/test/integration/plugins/encryption/gpg/i9n_encryption.rb +87 -0
- data/test/integration/plugins/i9n_installed_plugins.rb +13 -0
- data/test/integration/plugins/source/files/i9n_files.rb +146 -0
- data/test/integration/tasks/i9n_siba_tasks.rb +30 -0
- data/test/integration/yml/valid.yml +16 -0
- data/test/unit/helpers/test_encoding_helper.rb +17 -0
- data/test/unit/helpers/test_gem_helper.rb +17 -0
- data/test/unit/helpers/test_security_helper.rb +21 -0
- data/test/unit/helpers/test_string_helper.rb +35 -0
- data/test/unit/plugins/archive/tar/test_archive.rb +41 -0
- data/test/unit/plugins/archive/tar/test_init.rb +36 -0
- data/test/unit/plugins/archive/tar/yml/archive/check_installed.yml +2 -0
- data/test/unit/plugins/archive/tar/yml/init/default_compression.yml +1 -0
- data/test/unit/plugins/archive/tar/yml/init/invalid_compression.yml +2 -0
- data/test/unit/plugins/archive/tar/yml/init/valid.yml +2 -0
- data/test/unit/plugins/destination/dir/test_dest_dir.rb +41 -0
- data/test/unit/plugins/destination/dir/test_init.rb +36 -0
- data/test/unit/plugins/destination/dir/yml/init/valid.yml +2 -0
- data/test/unit/plugins/encryption/gpg/test_encryption.rb +70 -0
- data/test/unit/plugins/encryption/gpg/test_init.rb +47 -0
- data/test/unit/plugins/source/files/test_files.rb +44 -0
- data/test/unit/plugins/source/files/test_init.rb +48 -0
- data/test/unit/plugins/source/files/test_path_match.rb +140 -0
- data/test/unit/plugins/source/files/yml/ignore_list.yml +8 -0
- data/test/unit/plugins/source/files/yml/ignore_not_array.yml +5 -0
- data/test/unit/plugins/source/files/yml/include_not_array.yml +3 -0
- data/test/unit/plugins/source/files/yml/include_subdirs_false.yml +6 -0
- data/test/unit/plugins/source/files/yml/include_subdirs_missing.yml +5 -0
- data/test/unit/plugins/source/files/yml/no_ignore.yml +4 -0
- data/test/unit/plugins/source/files/yml/no_include.yml +1 -0
- data/test/unit/plugins/source/files/yml/valid.yml +9 -0
- data/test/unit/plugins/test_installed_plugins.rb +32 -0
- data/test/unit/plugins/test_plugin_loader.rb +27 -0
- data/test/unit/plugins/test_plugins.rb +44 -0
- data/test/unit/tasks/test_siba_task.rb +30 -0
- data/test/unit/tasks/test_siba_tasks.rb +84 -0
- data/test/unit/tasks/yml/task/invalid.yml +4 -0
- data/test/unit/tasks/yml/task/valid.yml +7 -0
- data/test/unit/test_backup.rb +18 -0
- data/test/unit/test_console.rb +166 -0
- data/test/unit/test_generator.rb +21 -0
- data/test/unit/test_globals.rb +34 -0
- data/test/unit/test_log_message.rb +26 -0
- data/test/unit/test_logger_plug.rb +49 -0
- data/test/unit/test_options_backup.rb +21 -0
- data/test/unit/test_options_loader.rb +72 -0
- data/test/unit/test_password_strength.rb +76 -0
- data/test/unit/test_restore.rb +18 -0
- data/test/unit/test_scaffold.rb +26 -0
- data/test/unit/test_siba_check.rb +118 -0
- data/test/unit/test_siba_logger.rb +174 -0
- data/test/unit/test_tmp_dir.rb +21 -0
- data/test/unit/yml/options_loader/array.yml +2 -0
- data/test/unit/yml/options_loader/empty.yml +0 -0
- data/test/unit/yml/options_loader/invalid.yml +4 -0
- data/test/unit/yml/options_loader/string.yml +1 -0
- data/test/unit/yml/options_loader/utf8_with_bom.yml +2 -0
- data/test/unit/yml/options_loader/valid.yml +12 -0
- data/test/unit/yml/siba_options_backup.yml +20 -0
- data/test/unit/yml/valid.yml +18 -0
- metadata +240 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::EncodingHelper do
|
6
|
+
before do
|
7
|
+
@str_arg = "str"
|
8
|
+
@array_arg = ["str1","str2",nil]
|
9
|
+
@result = "result"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should run encode_to_external" do
|
13
|
+
str = Siba::EncodingHelper.encode_to_external @str_arg
|
14
|
+
str.must_equal @str_arg
|
15
|
+
str.encoding.must_equal Siba::EncodingHelper::EXTERNAL_ENCODING
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::GemHelper do
|
6
|
+
before do
|
7
|
+
@cls = Siba::GemHelper
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should call all_local_gems" do
|
11
|
+
@cls.all_local_gems[0].must_be_instance_of Gem::Specification
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should call gem_path" do
|
15
|
+
@cls.gem_path("rake").must_be_instance_of String
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::SecurityHelper do
|
6
|
+
before do
|
7
|
+
@sh = Siba::SecurityHelper
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should generate password for yaml" do
|
11
|
+
@sh.generate_password_for_yaml.length.must_equal 16
|
12
|
+
@sh.generate_password_for_yaml(8).length.must_equal 8
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should generate alphanumeric password" do
|
16
|
+
@sh.alphanumeric_password.length.must_equal 16
|
17
|
+
@sh.alphanumeric_password(9).length.must_equal 9
|
18
|
+
@sh.alphanumeric_password(9, true)
|
19
|
+
@sh.alphanumeric_password(9, true, true)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::StringHelper do
|
6
|
+
before do
|
7
|
+
@sh = Siba::StringHelper
|
8
|
+
end
|
9
|
+
|
10
|
+
it "must call str_to_alphnumeric" do
|
11
|
+
@sh.str_to_alphnumeric("Hello world").must_equal "hello-world"
|
12
|
+
@sh.str_to_alphnumeric(" hello ").must_equal "hello"
|
13
|
+
@sh.str_to_alphnumeric('hello`~!@#$%^&*()":<>?/-=[]{}world').must_equal "hello-world"
|
14
|
+
@sh.str_to_alphnumeric('one . two three').must_equal "one-two-three"
|
15
|
+
@sh.str_to_alphnumeric('one#$%').must_equal "one"
|
16
|
+
@sh.str_to_alphnumeric('#$%').must_equal ""
|
17
|
+
end
|
18
|
+
|
19
|
+
it "must camelize" do
|
20
|
+
@sh.camelize("test").must_equal "Test"
|
21
|
+
@sh.camelize("another_test_str").must_equal "AnotherTestStr"
|
22
|
+
@sh.camelize("another-test-str").must_equal "AnotherTestStr"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should call escape_for_yaml" do
|
26
|
+
str = 'test\one"two'
|
27
|
+
value = @sh.escape_for_yaml(str)
|
28
|
+
reloaded = YAML.load("key: \"#{value}\"")
|
29
|
+
reloaded["key"].must_equal str
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should call format_time" do
|
33
|
+
@sh.format_time(Time.now).must_be_instance_of String
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/archive/tar/init'
|
5
|
+
|
6
|
+
describe Siba::Archive::Tar::Init do
|
7
|
+
before do
|
8
|
+
@yml_path = File.expand_path('../yml/archive', __FILE__)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should create archive and run check_installed" do
|
12
|
+
fmock = mock_file :run_this, true, ["test installed"]
|
13
|
+
archive = Siba::Archive::Tar::Archive.new "gzip"
|
14
|
+
fmock.verify
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should run archive" do
|
18
|
+
file_name = "file"
|
19
|
+
dest_dir = "/dir"
|
20
|
+
|
21
|
+
Siba::Archive::Tar::Archive.new("none")
|
22
|
+
.archive("",dest_dir,file_name)
|
23
|
+
.must_match /^#{file_name}\.tar$/
|
24
|
+
|
25
|
+
Siba::Archive::Tar::Archive.new("gzip")
|
26
|
+
.archive("",dest_dir,file_name)
|
27
|
+
.must_match /^#{file_name}\.tar.gz$/
|
28
|
+
|
29
|
+
Siba::Archive::Tar::Archive.new("bzip2")
|
30
|
+
.archive("",dest_dir,file_name)
|
31
|
+
.must_match /^#{file_name}\.tar.bz2$/
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should run extract" do
|
35
|
+
Siba::Archive::Tar::Archive.new("gzip").extract("/path_to_archive","/dest_dir")
|
36
|
+
end
|
37
|
+
|
38
|
+
it "backup should fail" do
|
39
|
+
->{Siba::Archive::Tar::Archive.new("incorrect").archive("","","")}.must_raise Siba::CheckError
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/archive/tar/init'
|
5
|
+
|
6
|
+
describe Siba::Archive::Tar::Init do
|
7
|
+
before do
|
8
|
+
@yml_path = File.expand_path('../yml/init', __FILE__)
|
9
|
+
@plugin_category="archive"
|
10
|
+
@plugin_type="tar"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should load" do
|
14
|
+
archive = create_plugin("valid")
|
15
|
+
archive.archive.compression.must_be_instance_of String
|
16
|
+
end
|
17
|
+
|
18
|
+
it "init should raise error if compression is incorrect" do
|
19
|
+
->{create_plugin("invalid_compression")}.must_raise Siba::CheckError
|
20
|
+
end
|
21
|
+
|
22
|
+
it "init should use default compression if undefined in options" do
|
23
|
+
archive = create_plugin("default_compression")
|
24
|
+
archive.archive.compression.must_equal Siba::Archive::Tar::DefaultCompression
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should run backup" do
|
28
|
+
archive = create_plugin("valid")
|
29
|
+
archive.backup("/src-dir", "/dst-dir", "file_name").must_be_instance_of String
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should run restore" do
|
33
|
+
archive = create_plugin("valid")
|
34
|
+
archive.restore "/path-to-archive", "/to_dir"
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
type: tar
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/destination/dir/init'
|
5
|
+
|
6
|
+
describe Siba::Destination::Dir::DestDir do
|
7
|
+
before do
|
8
|
+
@dir = "/some-dir"
|
9
|
+
@cls = Siba::Destination::Dir::DestDir
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should init" do
|
13
|
+
@cls.new @dir
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should access dir" do
|
17
|
+
dest_dir = @cls.new @dir
|
18
|
+
dest_dir.dir = @dir
|
19
|
+
dest_dir.dir.must_equal @dir
|
20
|
+
end
|
21
|
+
|
22
|
+
it "init should test access to destination dir" do
|
23
|
+
dest_dir = @cls.new @dir
|
24
|
+
dest_dir.test_dir_access
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should call copy_backup_to_dest" do
|
28
|
+
dest_dir = @cls.new @dir
|
29
|
+
dest_dir.copy_backup_to_dest "/backup"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should call restore_backup_to_dir" do
|
33
|
+
dest_dir = @cls.new @dir
|
34
|
+
dest_dir.restore_backup_to_dir "name", "/backup"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should call get_backup_dir" do
|
38
|
+
dest_dir = @cls.new @dir
|
39
|
+
dest_dir.get_backups_list "my"
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/destination/dir/init'
|
5
|
+
|
6
|
+
describe Siba::Destination::Dir::Init do
|
7
|
+
before do
|
8
|
+
@yml_path = File.expand_path('../yml/init', __FILE__)
|
9
|
+
@plugin_category="destination"
|
10
|
+
@plugin_type="dir"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should load" do
|
14
|
+
plugin = create_plugin("valid")
|
15
|
+
plugin.dest_dir.must_be_instance_of Siba::Destination::Dir::DestDir
|
16
|
+
end
|
17
|
+
|
18
|
+
it "load should fail when dir is missing" do
|
19
|
+
->{create_plugin({})}.must_raise Siba::CheckError
|
20
|
+
->{create_plugin({"dir" => nil})}.must_raise Siba::CheckError
|
21
|
+
->{create_plugin({"dir" => ""})}.must_raise Siba::CheckError
|
22
|
+
->{create_plugin({"dir" => " "})}.must_raise Siba::CheckError
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should call backup" do
|
26
|
+
create_plugin("valid").backup "backup"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should call restore" do
|
30
|
+
create_plugin("valid").restore "backup", "/dir"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should call get_backups_list" do
|
34
|
+
create_plugin("valid").get_backups_list "bak"
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/encryption/gpg/init'
|
5
|
+
|
6
|
+
describe Siba::Encryption::Gpg::Encryption do
|
7
|
+
before do
|
8
|
+
@passphrase = "aj(dJ6Hja2Jj$kjask"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "init should call test_encryption" do
|
12
|
+
fmock = mock_file :run_this, nil, ["test_encryption"]
|
13
|
+
Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
14
|
+
fmock.verify
|
15
|
+
end
|
16
|
+
|
17
|
+
it "init should call check_cipher" do
|
18
|
+
fmock = mock_file :run_this, nil, ["check_cipher"]
|
19
|
+
Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
20
|
+
fmock.verify
|
21
|
+
end
|
22
|
+
|
23
|
+
it "must call encrypt" do
|
24
|
+
encryption = Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
25
|
+
path_to_archive = "/path/to/archive.tar.gz"
|
26
|
+
path_to_encrypted_file = encryption.encrypt(path_to_archive)
|
27
|
+
path_to_encrypted_file.must_equal "#{path_to_archive}.gpg"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "must call decrypt" do
|
31
|
+
encryption = Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
32
|
+
path = "/path/to/archive.tar.gz"
|
33
|
+
path_to_decrypted_file = encryption.decrypt(path + ".gpg")
|
34
|
+
path_to_decrypted_file.must_equal path
|
35
|
+
end
|
36
|
+
|
37
|
+
it "must call decrypt with output file parameter" do
|
38
|
+
encryption = Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
39
|
+
path = "/path/to/archive.tar.gz.gz"
|
40
|
+
output = "/output.file"
|
41
|
+
path_to_decrypted_file = encryption.decrypt(path + ".gpg", output)
|
42
|
+
path_to_decrypted_file.must_equal output
|
43
|
+
end
|
44
|
+
|
45
|
+
it "parse_cipher_names must work" do
|
46
|
+
parse_data = [
|
47
|
+
["text \n Cipher: a, b,\nc,d", ["A","B","C","D"]],
|
48
|
+
["text \n Cipher: a, b,\nc,d\nHash: a, b, c", ["A","B","C","D"]]
|
49
|
+
]
|
50
|
+
parse_data.each do |a|
|
51
|
+
Siba::Encryption::Gpg::Encryption.parse_cipher_names(a[0]).must_equal a[1]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it "init must warn if the password is weak" do
|
56
|
+
Siba::Encryption::Gpg::Encryption.new "passwordisweak"
|
57
|
+
must_log "warn"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "init must NOT warn if the password is strong" do
|
61
|
+
Siba::Encryption::Gpg::Encryption.new "A4n90!1j$Ox*"
|
62
|
+
wont_log "warn"
|
63
|
+
end
|
64
|
+
|
65
|
+
it "must call test_encryption" do
|
66
|
+
encryption = Siba::Encryption::Gpg::Encryption.new(@passphrase)
|
67
|
+
encryption.test_encryption
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/encryption/gpg/init'
|
5
|
+
|
6
|
+
describe Siba::Encryption::Gpg::Init do
|
7
|
+
before do
|
8
|
+
@plugin_category="encryption"
|
9
|
+
@plugin_type="gpg"
|
10
|
+
@options = {'passphrase' => "my pass word", "cipher" => "AES256"}
|
11
|
+
end
|
12
|
+
|
13
|
+
it "must init plugin" do
|
14
|
+
plugin = create_plugin(@options)
|
15
|
+
plugin.encryption.wont_be_nil
|
16
|
+
plugin.encryption.passphrase.wont_be_nil
|
17
|
+
plugin.encryption.cipher.wont_be_nil
|
18
|
+
plugin.encryption.passphrase.must_equal @options["passphrase"]
|
19
|
+
plugin.encryption.cipher.must_equal @options["cipher"]
|
20
|
+
end
|
21
|
+
|
22
|
+
it "must init with missing" do
|
23
|
+
plugin = create_plugin({'passphrase'=>'pass'})
|
24
|
+
plugin.encryption.cipher.must_be_nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it "must init with numeric passphrase" do
|
28
|
+
plugin = create_plugin({'passphrase'=>123})
|
29
|
+
plugin.encryption.passphrase.must_equal "123"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "init must fail if empty passphrase" do
|
33
|
+
->{create_plugin({'passphrase' => nil})}.must_raise Siba::CheckError
|
34
|
+
->{create_plugin({'passphrase' => ""})}.must_raise Siba::CheckError
|
35
|
+
->{create_plugin({'passphrase' => " "})}.must_raise Siba::CheckError
|
36
|
+
end
|
37
|
+
|
38
|
+
it "must call backup" do
|
39
|
+
plugin = create_plugin(@options)
|
40
|
+
plugin.backup("/path/to/archive", "/dest_dir").must_be_instance_of String
|
41
|
+
end
|
42
|
+
|
43
|
+
it "must call restore" do
|
44
|
+
plugin = create_plugin(@options)
|
45
|
+
plugin.restore("/path/to/backup", "/dest_dir").must_be_instance_of String
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/source/files/init'
|
5
|
+
|
6
|
+
describe Siba::Source::Files::Files do
|
7
|
+
before do
|
8
|
+
@f = Siba::Source::Files::Files
|
9
|
+
end
|
10
|
+
it "ignored? must NOT log if no files are excluded" do
|
11
|
+
@f.new([], [], true).ignored?("/.hidden")
|
12
|
+
wont_log "info"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "ignored? must log if files are excluded" do
|
16
|
+
@f.new([], ["*"], true).ignored?("/.hidden")
|
17
|
+
must_log "info"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should call backup" do
|
21
|
+
@f.new([], [], true).backup "/dest-dir"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should call copy_file" do
|
25
|
+
@f.new([], [], true).copy_file "/src", "/dst"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should call copy_dir" do
|
29
|
+
@f.new([], [], true).copy_dir "/src", "/dst", true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should call sub_dir_name" do
|
33
|
+
@f.sub_dir_name(1, 1, true, "/dir1/dir2/file","/root").must_equal "/root/1-file-file"
|
34
|
+
@f.sub_dir_name(1, 2, false, "/dir1/dir2/file","/root").must_equal "/root/01-dir-file"
|
35
|
+
@f.sub_dir_name(23, 1, false, "/dir1/dir2/file","/root").must_equal "/root/23-dir-file"
|
36
|
+
@f.sub_dir_name(12, 3, true, "/dir1/dir2/file","/root").must_equal "/root/012-file-file"
|
37
|
+
@f.sub_dir_name(5, 3, true, "/dir1/dir2/file","/root").must_equal "/root/005-file-file"
|
38
|
+
@f.sub_dir_name(3, 2, false, "/","/root").must_equal "/root/03-dir-root"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should call restore" do
|
42
|
+
@f.new([], [], true).restore "/from-dir"
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
require 'siba/plugins/source/files/init'
|
5
|
+
|
6
|
+
describe Siba::Source::Files::Init do
|
7
|
+
before do
|
8
|
+
@yml_path = File.expand_path('../yml', __FILE__)
|
9
|
+
@plugin_category="source"
|
10
|
+
@plugin_type="files"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should load" do
|
14
|
+
create_plugin("valid").files.ignore.must_be_instance_of Array
|
15
|
+
end
|
16
|
+
|
17
|
+
it "load should fail no include" do
|
18
|
+
-> {create_plugin("no_include")}.must_raise Siba::CheckError
|
19
|
+
end
|
20
|
+
|
21
|
+
it "load should fail include is not array" do
|
22
|
+
-> {create_plugin("include_not_array")}.must_raise Siba::CheckError
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should load ignore list" do
|
26
|
+
create_plugin("valid").files.ignore.must_be_instance_of Array
|
27
|
+
end
|
28
|
+
|
29
|
+
it "load should fail ignore is not array" do
|
30
|
+
-> {create_plugin("ignore_not_array")}.must_raise Siba::CheckError
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should load include_subdirs=true when it is missing in options" do
|
34
|
+
create_plugin("include_subdirs_missing").files.include_subdirs.must_equal true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should load include_subdirs=false" do
|
38
|
+
create_plugin("include_subdirs_false").files.include_subdirs.must_equal false
|
39
|
+
end
|
40
|
+
|
41
|
+
it "backup should copy file" do
|
42
|
+
create_plugin("valid").backup "dir"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should call restore" do
|
46
|
+
create_plugin("valid").restore "/from_dir"
|
47
|
+
end
|
48
|
+
end
|