siba 0.4.3
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.
- 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
|