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,18 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::Restore do
|
6
|
+
before do
|
7
|
+
@yml_path = File.expand_path('../yml', __FILE__)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should call restore" do
|
11
|
+
Siba::LoggerPlug.close
|
12
|
+
Siba::SibaLogger.quiet = true
|
13
|
+
path_to_options_file = File.join @yml_path, "valid.yml"
|
14
|
+
Siba::Restore.new.restore path_to_options_file
|
15
|
+
wont_log_from "warn"
|
16
|
+
Siba.tmp_dir_clean?.must_equal true
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::Scaffold do
|
6
|
+
before do
|
7
|
+
@obj = Siba::Scaffold.new "source", "gem___Name*%@#"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should init category and name" do
|
11
|
+
@obj.category.must_equal "source"
|
12
|
+
@obj.name.must_equal "gem-name"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should fail to init if first name character is number" do
|
16
|
+
->{Siba::Scaffold.new "source", "2gem___Name*%@#"}.must_raise Siba::Error
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should fail to init if invalid category" do
|
20
|
+
->{Siba::Scaffold.new "invalid", "name"}.must_raise Siba::Error
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should call scaffold" do
|
24
|
+
@obj.scaffold "/dest-dir"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::SibaCheck do
|
6
|
+
before do
|
7
|
+
@cls = Siba::SibaCheck
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should call options_string_array" do
|
11
|
+
obj = {"name"=>["1","2"]}
|
12
|
+
@cls.options_string_array(obj, "name", false).must_equal obj["name"]
|
13
|
+
end
|
14
|
+
|
15
|
+
it "options_string_array should raise if option is not defined" do
|
16
|
+
->{@cls.options_string_array({"name"=>["1","2"]}, "not exist")}.must_raise Siba::CheckError
|
17
|
+
end
|
18
|
+
|
19
|
+
it "options_string_array should return detaul value" do
|
20
|
+
default = ["default"]
|
21
|
+
@cls.options_string_array({"name"=>["1","2"]}, "not exist", true, default).must_equal default
|
22
|
+
end
|
23
|
+
|
24
|
+
it "options_string_array should accept a string" do
|
25
|
+
obj = {"name"=>"just a string"}
|
26
|
+
@cls.options_string_array(obj, "name", false).must_equal [obj["name"]]
|
27
|
+
@cls.options_string_array({"name"=>123}, "name", false).must_equal ["123"]
|
28
|
+
end
|
29
|
+
|
30
|
+
it "options_string_array should accept an array and convert values to strings" do
|
31
|
+
@cls.options_string_array({"name"=>[1, 5.5, "hello"]}, "name", false)
|
32
|
+
.must_equal ["1", "5.5", "hello"]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "options_string_array should fail if contains a hash" do
|
36
|
+
->{@cls.options_string_array({"name"=>{}}, "name", false)}.must_raise Siba::CheckError
|
37
|
+
end
|
38
|
+
|
39
|
+
it "options_string_array should fail if it contains empty or nil values" do
|
40
|
+
->{@cls.options_string_array({"name"=>" "}, "name", false)}.must_raise Siba::CheckError
|
41
|
+
->{@cls.options_string_array({"name"=>nil}, "name", false)}.must_raise Siba::CheckError
|
42
|
+
->{@cls.options_string_array({"name"=>["1", " "]}, "name", false)}.must_raise Siba::CheckError
|
43
|
+
->{@cls.options_string_array({"name"=>["1", nil]}, "name", false)}.must_raise Siba::CheckError
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should call options_bool" do
|
47
|
+
@cls.options_bool({"name"=>true},"name").must_equal true
|
48
|
+
@cls.options_bool({"name"=>false},"name").must_equal false
|
49
|
+
end
|
50
|
+
|
51
|
+
it "options_bool should raise error" do
|
52
|
+
->{@cls.options_bool({"name"=>true},"missing")}.must_raise Siba::CheckError
|
53
|
+
->{@cls.options_bool({"name"=>"non bool"},"name")}.must_raise Siba::CheckError
|
54
|
+
end
|
55
|
+
|
56
|
+
it "options_bool should return default_value if missing" do
|
57
|
+
@cls.options_bool({"name"=>true},"missing", true).must_equal false
|
58
|
+
@cls.options_bool({"name"=>true},"missing", true, true).must_equal true
|
59
|
+
@cls.options_bool({"name"=>true},"missing", true, false).must_equal false
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should call options_hash" do
|
63
|
+
hash = {"key"=>"value"}
|
64
|
+
options = {"name" =>hash}
|
65
|
+
@cls.options_hash(options,"name").must_equal hash
|
66
|
+
@cls.options_hash(options,"missing", true).must_be_nil
|
67
|
+
def_hash = {"one"=>"two"}
|
68
|
+
@cls.options_hash(options,"missing", true, def_hash).must_equal def_hash
|
69
|
+
end
|
70
|
+
|
71
|
+
it "options_hash should raise error" do
|
72
|
+
->{@cls.options_hash({"name"=>true},"missing")}.must_raise Siba::CheckError
|
73
|
+
->{@cls.options_hash({"name"=>"non hash"},"name")}.must_raise Siba::CheckError
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should call hash" do
|
77
|
+
hash = {"key"=>"value"}
|
78
|
+
@cls.hash(hash, "name").must_equal hash
|
79
|
+
@cls.hash(nil, "name", true).must_be_nil
|
80
|
+
end
|
81
|
+
|
82
|
+
it "hash should raise errors" do
|
83
|
+
->{@cls.hash("non hash","name")}.must_raise Siba::CheckError
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should call options_string" do
|
87
|
+
@cls.options_string({"name"=>"value"},"name").must_equal "value"
|
88
|
+
@cls.options_string({"name"=>123},"name").must_equal "123"
|
89
|
+
@cls.options_string({"name"=>1000000000000000000000000000000},"name").must_equal "1000000000000000000000000000000"
|
90
|
+
@cls.options_string({"name"=>123.12},"name").must_equal "123.12"
|
91
|
+
@cls.options_string({"name"=>"value"},"missing", true, "default").must_equal "default"
|
92
|
+
@cls.options_string({"name"=>"value"},"missing", true, nil).must_be_nil
|
93
|
+
end
|
94
|
+
|
95
|
+
it "options_string should fail if value is array or hash" do
|
96
|
+
->{@cls.options_string({"name"=>[1,2,3]},"name")}.must_raise Siba::CheckError
|
97
|
+
->{@cls.options_string({"name"=>{:name=>:value}},"name")}.must_raise Siba::CheckError
|
98
|
+
end
|
99
|
+
|
100
|
+
it "options_string should fail if value missing" do
|
101
|
+
->{@cls.options_string({"name"=>"value"},"missing")}.must_raise Siba::CheckError
|
102
|
+
->{@cls.options_string({"name"=>nil},"name")}.must_raise Siba::CheckError
|
103
|
+
->{@cls.options_string({"name"=>""},"name")}.must_raise Siba::CheckError
|
104
|
+
->{@cls.options_string({"name"=>" "},"name")}.must_raise Siba::CheckError
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should call try_to_s" do
|
108
|
+
@cls.try_to_s("str", "name").must_equal "str"
|
109
|
+
@cls.try_to_s(22, "name").must_equal "22"
|
110
|
+
@cls.try_to_s(11.12, "name").must_equal "11.12"
|
111
|
+
@cls.try_to_s(10000000000000000000000000000000000, "name").must_equal "10000000000000000000000000000000000"
|
112
|
+
end
|
113
|
+
|
114
|
+
it "try_to_s should fail" do
|
115
|
+
->{@cls.try_to_s([1], "name")}.must_raise Siba::CheckError
|
116
|
+
->{@cls.try_to_s(" ", "name")}.must_raise Siba::CheckError
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::SibaLogger do
|
6
|
+
before do
|
7
|
+
@logger = Siba::SibaLogger.new "Test", nil
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "when access class" do
|
11
|
+
it "must access quiet" do
|
12
|
+
Siba::SibaLogger.quiet = true
|
13
|
+
Siba::SibaLogger.quiet.must_equal true
|
14
|
+
end
|
15
|
+
|
16
|
+
it "must access verbose" do
|
17
|
+
Siba::SibaLogger.verbose = true
|
18
|
+
Siba::SibaLogger.verbose.must_equal true
|
19
|
+
end
|
20
|
+
|
21
|
+
it "must access no_log" do
|
22
|
+
Siba::SibaLogger.no_log = true
|
23
|
+
Siba::SibaLogger.no_log.must_equal true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "must contain LogLevels" do
|
27
|
+
Siba::SibaLogger::LogLevels.must_include "debug"
|
28
|
+
Siba::SibaLogger::LogLevels.must_include "info"
|
29
|
+
Siba::SibaLogger::LogLevels.must_include "warn"
|
30
|
+
Siba::SibaLogger::LogLevels.must_include "error"
|
31
|
+
Siba::SibaLogger::LogLevels.must_include "fatal"
|
32
|
+
Siba::SibaLogger::LogLevels.must_include "unknown"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "must check given log level" do
|
36
|
+
Siba::SibaLogger.log_level?("info").must_equal true
|
37
|
+
Siba::SibaLogger.log_level?("chelyabinsk").must_equal false
|
38
|
+
end
|
39
|
+
|
40
|
+
it "must have check_log_level method" do
|
41
|
+
Siba::SibaLogger::check_log_level "info"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "check_log_level must raise for unsupported level" do
|
45
|
+
-> { Siba::SibaLogger::check_log_level("weird") }.must_raise RuntimeError
|
46
|
+
end
|
47
|
+
|
48
|
+
it "must return log level integer" do
|
49
|
+
Siba::SibaLogger.level_to_i("debug").must_equal 0
|
50
|
+
Siba::SibaLogger.level_to_i("info").must_equal 1
|
51
|
+
Siba::SibaLogger.level_to_i("warn").must_equal 2
|
52
|
+
Siba::SibaLogger.level_to_i("error").must_equal 3
|
53
|
+
Siba::SibaLogger.level_to_i("fatal").must_equal 4
|
54
|
+
Siba::SibaLogger.level_to_i("unknown").must_equal 5
|
55
|
+
end
|
56
|
+
|
57
|
+
it "must call count" do
|
58
|
+
Siba::SibaLogger.count.must_equal 1
|
59
|
+
end
|
60
|
+
|
61
|
+
it "count should work when logger is closed" do
|
62
|
+
Siba::LoggerPlug.close
|
63
|
+
Siba::SibaLogger.messages = nil
|
64
|
+
Siba::SibaLogger.count("warn").must_equal 0
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "when access logger" do
|
69
|
+
it "must initialize SibaLogger" do
|
70
|
+
@logger.wont_be_nil
|
71
|
+
Siba::SibaLogger.count("info").must_equal 1, "Must contain 'log start' message"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "must initialize variables" do
|
75
|
+
Siba::SibaLogger.messages.must_be_instance_of Array
|
76
|
+
Siba::SibaLogger.count.must_equal 1
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should call log methods" do
|
80
|
+
@logger.debug "msg"
|
81
|
+
@logger.info "msg"
|
82
|
+
@logger.warn "msg"
|
83
|
+
@logger.error "msg"
|
84
|
+
@logger.fatal "msg"
|
85
|
+
@logger.unknown "msg"
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should contains messages" do
|
89
|
+
@logger.debug "msg1"
|
90
|
+
@logger.info "msg2"
|
91
|
+
@logger.warn "msg3"
|
92
|
+
|
93
|
+
Siba::SibaLogger.messages.size.must_equal 4
|
94
|
+
Siba::SibaLogger.messages[1].must_be_instance_of Siba::LogMessage
|
95
|
+
Siba::SibaLogger.messages[1].msg.must_equal "msg1"
|
96
|
+
Siba::SibaLogger.messages[1].level.must_equal Siba::SibaLogger.level_to_i("debug")
|
97
|
+
Siba::SibaLogger.messages[1].time.must_be_instance_of Time
|
98
|
+
Siba::SibaLogger.messages[3].msg.must_equal "msg3"
|
99
|
+
Siba::SibaLogger.messages[3].level.must_equal Siba::SibaLogger.level_to_i("warn")
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should raise when called missing method" do
|
103
|
+
->{ @logger.this_is_a_missing_method("msg") }.must_raise NoMethodError
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should log on different levels" do
|
107
|
+
Siba::SibaLogger::LogLevels.each do |level|
|
108
|
+
Siba::SibaLogger.count(level, true).must_equal (level == "info" ? 1 : 0)
|
109
|
+
end
|
110
|
+
|
111
|
+
Siba::SibaLogger::LogLevels.each do |level|
|
112
|
+
@logger.send(level,"#{level} message")
|
113
|
+
end
|
114
|
+
|
115
|
+
Siba::SibaLogger::LogLevels.each do |level|
|
116
|
+
Siba::SibaLogger.count(level, true).must_equal (level == "info" ? 2 : 1)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
it "count must return correct number of message for severity lever" do
|
121
|
+
@logger.debug "msg1"
|
122
|
+
@logger.info "msg2"
|
123
|
+
@logger.info "msg3"
|
124
|
+
@logger.warn "msg4"
|
125
|
+
@logger.error "msg5"
|
126
|
+
@logger.error "msg6"
|
127
|
+
@logger.error "msg7"
|
128
|
+
@logger.fatal "msg8"
|
129
|
+
@logger.fatal "msg9"
|
130
|
+
@logger.unknown "msg10"
|
131
|
+
|
132
|
+
Siba::SibaLogger.count.must_equal 11
|
133
|
+
Siba::SibaLogger.count("debug", false).must_equal 11
|
134
|
+
Siba::SibaLogger.count("debug").must_equal 1
|
135
|
+
Siba::SibaLogger.count("info", false).must_equal 10
|
136
|
+
Siba::SibaLogger.count("info").must_equal 3
|
137
|
+
Siba::SibaLogger.count("warn", false).must_equal 7
|
138
|
+
Siba::SibaLogger.count("error", false).must_equal 6
|
139
|
+
Siba::SibaLogger.count("error").must_equal 3
|
140
|
+
Siba::SibaLogger.count("fatal", false).must_equal 3
|
141
|
+
Siba::SibaLogger.count("fatal", true).must_equal 2
|
142
|
+
end
|
143
|
+
|
144
|
+
it "must call log_exception" do
|
145
|
+
@logger.log_exception Exception.new "hello"
|
146
|
+
Siba::SibaLogger.count("debug",true).must_equal 1
|
147
|
+
end
|
148
|
+
|
149
|
+
it "must call log backtrace with_exception" do
|
150
|
+
ex = Exception.new "hello"
|
151
|
+
ex.set_backtrace ["one","two","tree"]
|
152
|
+
@logger.log_exception ex
|
153
|
+
Siba::SibaLogger.count("debug",true).must_equal 2
|
154
|
+
end
|
155
|
+
|
156
|
+
it "must close logger" do
|
157
|
+
@logger.close
|
158
|
+
Siba::SibaLogger.count.must_equal 2
|
159
|
+
->{@logger.info "hi"}.must_raise Siba::Error, "Error if trying to use closed log"
|
160
|
+
end
|
161
|
+
|
162
|
+
it "to_s should show logs string" do
|
163
|
+
test_message = "this is a test message"
|
164
|
+
@logger.info test_message
|
165
|
+
@logger.to_s.must_match /#{test_message}$/
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should access :show_finish_message" do
|
169
|
+
@logger.show_finish_message = false
|
170
|
+
@logger.close
|
171
|
+
Siba::SibaLogger.messages.size.must_equal 1
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'helper/require_unit'
|
4
|
+
|
5
|
+
describe Siba::TmpDir do
|
6
|
+
before do
|
7
|
+
@tmp_dir_obj = Siba::TmpDir.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should call get" do
|
11
|
+
@tmp_dir_obj.get
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should call test_access" do
|
15
|
+
Siba::TmpDir.test_access
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should call cleanup" do
|
19
|
+
@tmp_dir_obj.cleanup
|
20
|
+
end
|
21
|
+
end
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
this is text
|
@@ -0,0 +1,20 @@
|
|
1
|
+
source:
|
2
|
+
type: files
|
3
|
+
include:
|
4
|
+
- dir1
|
5
|
+
- dir2/subdir2
|
6
|
+
- file1
|
7
|
+
- /folder
|
8
|
+
|
9
|
+
archive:
|
10
|
+
type: tar
|
11
|
+
|
12
|
+
encryption:
|
13
|
+
type: gpg
|
14
|
+
passphrase: "this is a passphrase"
|
15
|
+
|
16
|
+
destination:
|
17
|
+
type: dir
|
18
|
+
dir: /dest-dir
|
19
|
+
|
20
|
+
current_dir: /tmp/dir
|
metadata
ADDED
@@ -0,0 +1,240 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: siba
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.3
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Evgeny Neumerzhitskiy
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-01-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: minitest
|
16
|
+
requirement: &70797610 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.10'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70797610
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70797180 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.9'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70797180
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: guard-minitest
|
38
|
+
requirement: &70796680 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.4'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70796680
|
47
|
+
description: ! 'This is a backup and restore utility. SIBA implements backup rotation
|
48
|
+
scheme. It retains a one year history of backups by keeping up to 23 files: 6 daily,
|
49
|
+
5 weekly and 12 monthly backups. Backups are compressed and encrypted. Various backup
|
50
|
+
sources and destinations can be added through extension gems.'
|
51
|
+
email:
|
52
|
+
- sausageskin@gmail.com
|
53
|
+
executables:
|
54
|
+
- siba
|
55
|
+
extensions: []
|
56
|
+
extra_rdoc_files: []
|
57
|
+
files:
|
58
|
+
- .gitignore
|
59
|
+
- Gemfile
|
60
|
+
- Guardfile
|
61
|
+
- LICENSE
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- bin/siba
|
65
|
+
- lib/siba.rb
|
66
|
+
- lib/siba/backup.rb
|
67
|
+
- lib/siba/console.rb
|
68
|
+
- lib/siba/errors.rb
|
69
|
+
- lib/siba/generator.rb
|
70
|
+
- lib/siba/globals.rb
|
71
|
+
- lib/siba/helpers/encoding_helper.rb
|
72
|
+
- lib/siba/helpers/file_helper.rb
|
73
|
+
- lib/siba/helpers/gem_helper.rb
|
74
|
+
- lib/siba/helpers/password_strength.rb
|
75
|
+
- lib/siba/helpers/security_helper.rb
|
76
|
+
- lib/siba/helpers/string_helper.rb
|
77
|
+
- lib/siba/helpers/test/extend_test.rb
|
78
|
+
- lib/siba/helpers/test/file_mock.rb
|
79
|
+
- lib/siba/helpers/test/helper.rb
|
80
|
+
- lib/siba/helpers/test/kernel_mock.rb
|
81
|
+
- lib/siba/helpers/test/removable_constants.rb
|
82
|
+
- lib/siba/helpers/test/require.rb
|
83
|
+
- lib/siba/logger_plug.rb
|
84
|
+
- lib/siba/options_backup.rb
|
85
|
+
- lib/siba/options_loader.rb
|
86
|
+
- lib/siba/plugins/archive/tar/archive.rb
|
87
|
+
- lib/siba/plugins/archive/tar/init.rb
|
88
|
+
- lib/siba/plugins/archive/tar/options.yml
|
89
|
+
- lib/siba/plugins/destination/dir/dest_dir.rb
|
90
|
+
- lib/siba/plugins/destination/dir/init.rb
|
91
|
+
- lib/siba/plugins/destination/dir/options.yml
|
92
|
+
- lib/siba/plugins/encryption/gpg/encryption.rb
|
93
|
+
- lib/siba/plugins/encryption/gpg/init.rb
|
94
|
+
- lib/siba/plugins/encryption/gpg/options.yml
|
95
|
+
- lib/siba/plugins/installed_plugins.rb
|
96
|
+
- lib/siba/plugins/plugin_loader.rb
|
97
|
+
- lib/siba/plugins/plugins.rb
|
98
|
+
- lib/siba/plugins/plugins.yml
|
99
|
+
- lib/siba/plugins/source/files/files.rb
|
100
|
+
- lib/siba/plugins/source/files/init.rb
|
101
|
+
- lib/siba/plugins/source/files/options.yml
|
102
|
+
- lib/siba/restore.rb
|
103
|
+
- lib/siba/scaffold.rb
|
104
|
+
- lib/siba/siba_check.rb
|
105
|
+
- lib/siba/siba_file.rb
|
106
|
+
- lib/siba/siba_kernel.rb
|
107
|
+
- lib/siba/siba_logger.rb
|
108
|
+
- lib/siba/tasks/siba_task.rb
|
109
|
+
- lib/siba/tasks/siba_tasks.rb
|
110
|
+
- lib/siba/test_files.rb
|
111
|
+
- lib/siba/test_files/a_file
|
112
|
+
- lib/siba/test_files/files_and_dirs/.hidden
|
113
|
+
- lib/siba/test_files/files_and_dirs/.hidden_dir/file10
|
114
|
+
- lib/siba/test_files/files_and_dirs/File With Spaces
|
115
|
+
- lib/siba/test_files/files_and_dirs/dir1/file10
|
116
|
+
- lib/siba/test_files/files_and_dirs/dir1/sub-dir/file111.txt
|
117
|
+
- lib/siba/test_files/files_and_dirs/file1
|
118
|
+
- lib/siba/test_files/files_and_dirs/file2.txt
|
119
|
+
- lib/siba/tmp_dir.rb
|
120
|
+
- lib/siba/version.rb
|
121
|
+
- scaffolds/archive.rb
|
122
|
+
- scaffolds/destination.rb
|
123
|
+
- scaffolds/encryption.rb
|
124
|
+
- scaffolds/project/.gitignore
|
125
|
+
- scaffolds/project/Gemfile
|
126
|
+
- scaffolds/project/Guardfile
|
127
|
+
- scaffolds/project/LICENSE
|
128
|
+
- scaffolds/project/README.md
|
129
|
+
- scaffolds/project/Rakefile
|
130
|
+
- scaffolds/project/lib/siba-c6y-demo.rb
|
131
|
+
- scaffolds/project/lib/siba-c6y-demo/options.yml
|
132
|
+
- scaffolds/project/lib/siba-c6y-demo/version.rb
|
133
|
+
- scaffolds/project/siba-c6y-demo.gemspec
|
134
|
+
- scaffolds/project/test/helper/require_integration.rb
|
135
|
+
- scaffolds/project/test/helper/require_unit.rb
|
136
|
+
- scaffolds/project/test/integration/i9n_init.rb
|
137
|
+
- scaffolds/project/test/unit/test_init.rb
|
138
|
+
- scaffolds/project/test/unit/yml/valid.yml
|
139
|
+
- scaffolds/shared/examples.rb
|
140
|
+
- scaffolds/shared/init_example.rb
|
141
|
+
- scaffolds/source.rb
|
142
|
+
- siba.gemspec
|
143
|
+
- test/helper/require_integration.rb
|
144
|
+
- test/helper/require_unit.rb
|
145
|
+
- test/integration/helpers/i9n_file_helper.rb
|
146
|
+
- test/integration/i9n_backup.rb
|
147
|
+
- test/integration/i9n_console.rb
|
148
|
+
- test/integration/i9n_generator.rb
|
149
|
+
- test/integration/i9n_options_backup.rb
|
150
|
+
- test/integration/i9n_scaffold.rb
|
151
|
+
- test/integration/i9n_siba_file.rb
|
152
|
+
- test/integration/i9n_test_unicode_files.rb
|
153
|
+
- test/integration/i9n_tmp_dir.rb
|
154
|
+
- test/integration/plugins/archive/tar/i9n_archive.rb
|
155
|
+
- test/integration/plugins/destination/dir/i9n_dest_dir.rb
|
156
|
+
- test/integration/plugins/encryption/gpg/i9n_encryption.rb
|
157
|
+
- test/integration/plugins/i9n_installed_plugins.rb
|
158
|
+
- test/integration/plugins/source/files/i9n_files.rb
|
159
|
+
- test/integration/tasks/i9n_siba_tasks.rb
|
160
|
+
- test/integration/yml/valid.yml
|
161
|
+
- test/unit/helpers/test_encoding_helper.rb
|
162
|
+
- test/unit/helpers/test_gem_helper.rb
|
163
|
+
- test/unit/helpers/test_security_helper.rb
|
164
|
+
- test/unit/helpers/test_string_helper.rb
|
165
|
+
- test/unit/plugins/archive/tar/test_archive.rb
|
166
|
+
- test/unit/plugins/archive/tar/test_init.rb
|
167
|
+
- test/unit/plugins/archive/tar/yml/archive/check_installed.yml
|
168
|
+
- test/unit/plugins/archive/tar/yml/init/default_compression.yml
|
169
|
+
- test/unit/plugins/archive/tar/yml/init/invalid_compression.yml
|
170
|
+
- test/unit/plugins/archive/tar/yml/init/valid.yml
|
171
|
+
- test/unit/plugins/destination/dir/test_dest_dir.rb
|
172
|
+
- test/unit/plugins/destination/dir/test_init.rb
|
173
|
+
- test/unit/plugins/destination/dir/yml/init/valid.yml
|
174
|
+
- test/unit/plugins/encryption/gpg/test_encryption.rb
|
175
|
+
- test/unit/plugins/encryption/gpg/test_init.rb
|
176
|
+
- test/unit/plugins/source/files/test_files.rb
|
177
|
+
- test/unit/plugins/source/files/test_init.rb
|
178
|
+
- test/unit/plugins/source/files/test_path_match.rb
|
179
|
+
- test/unit/plugins/source/files/yml/ignore_list.yml
|
180
|
+
- test/unit/plugins/source/files/yml/ignore_not_array.yml
|
181
|
+
- test/unit/plugins/source/files/yml/include_not_array.yml
|
182
|
+
- test/unit/plugins/source/files/yml/include_subdirs_false.yml
|
183
|
+
- test/unit/plugins/source/files/yml/include_subdirs_missing.yml
|
184
|
+
- test/unit/plugins/source/files/yml/no_ignore.yml
|
185
|
+
- test/unit/plugins/source/files/yml/no_include.yml
|
186
|
+
- test/unit/plugins/source/files/yml/valid.yml
|
187
|
+
- test/unit/plugins/test_installed_plugins.rb
|
188
|
+
- test/unit/plugins/test_plugin_loader.rb
|
189
|
+
- test/unit/plugins/test_plugins.rb
|
190
|
+
- test/unit/tasks/test_siba_task.rb
|
191
|
+
- test/unit/tasks/test_siba_tasks.rb
|
192
|
+
- test/unit/tasks/yml/task/invalid.yml
|
193
|
+
- test/unit/tasks/yml/task/valid.yml
|
194
|
+
- test/unit/test_backup.rb
|
195
|
+
- test/unit/test_console.rb
|
196
|
+
- test/unit/test_generator.rb
|
197
|
+
- test/unit/test_globals.rb
|
198
|
+
- test/unit/test_log_message.rb
|
199
|
+
- test/unit/test_logger_plug.rb
|
200
|
+
- test/unit/test_options_backup.rb
|
201
|
+
- test/unit/test_options_loader.rb
|
202
|
+
- test/unit/test_password_strength.rb
|
203
|
+
- test/unit/test_restore.rb
|
204
|
+
- test/unit/test_scaffold.rb
|
205
|
+
- test/unit/test_siba_check.rb
|
206
|
+
- test/unit/test_siba_logger.rb
|
207
|
+
- test/unit/test_tmp_dir.rb
|
208
|
+
- test/unit/yml/options_loader/array.yml
|
209
|
+
- test/unit/yml/options_loader/empty.yml
|
210
|
+
- test/unit/yml/options_loader/invalid.yml
|
211
|
+
- test/unit/yml/options_loader/string.yml
|
212
|
+
- test/unit/yml/options_loader/utf8_with_bom.yml
|
213
|
+
- test/unit/yml/options_loader/valid.yml
|
214
|
+
- test/unit/yml/siba_options_backup.yml
|
215
|
+
- test/unit/yml/valid.yml
|
216
|
+
homepage: ''
|
217
|
+
licenses: []
|
218
|
+
post_install_message:
|
219
|
+
rdoc_options: []
|
220
|
+
require_paths:
|
221
|
+
- lib
|
222
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
223
|
+
none: false
|
224
|
+
requirements:
|
225
|
+
- - ! '>='
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
|
+
none: false
|
230
|
+
requirements:
|
231
|
+
- - ~>
|
232
|
+
- !ruby/object:Gem::Version
|
233
|
+
version: '1.8'
|
234
|
+
requirements: []
|
235
|
+
rubyforge_project: siba
|
236
|
+
rubygems_version: 1.8.11
|
237
|
+
signing_key:
|
238
|
+
specification_version: 3
|
239
|
+
summary: Simple backup and restore utility.
|
240
|
+
test_files: []
|