dk-dumpdb 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/Gemfile +0 -2
- data/README.md +275 -2
- data/dk-dumpdb.gemspec +3 -3
- data/lib/dk-dumpdb.rb +9 -1
- data/lib/dk-dumpdb/config.rb +122 -0
- data/lib/dk-dumpdb/db.rb +69 -0
- data/lib/dk-dumpdb/script.rb +83 -0
- data/lib/dk-dumpdb/task.rb +58 -0
- data/lib/dk-dumpdb/task/copy_dump.rb +16 -0
- data/lib/dk-dumpdb/task/dump.rb +16 -0
- data/lib/dk-dumpdb/task/internal_task.rb +44 -0
- data/lib/dk-dumpdb/task/restore.rb +16 -0
- data/lib/dk-dumpdb/task/setup.rb +17 -0
- data/lib/dk-dumpdb/task/teardown.rb +17 -0
- data/lib/dk-dumpdb/version.rb +1 -1
- data/test/support/factory.rb +12 -0
- data/test/support/task/internal_task.rb +27 -0
- data/test/unit/config_tests.rb +259 -0
- data/test/unit/db_tests.rb +103 -0
- data/test/unit/dk-dumpdb_tests.rb +16 -0
- data/test/unit/script_tests.rb +165 -0
- data/test/unit/task/copy_dump_tests.rb +57 -0
- data/test/unit/task/dump_tests.rb +58 -0
- data/test/unit/task/internal_task_tests.rb +106 -0
- data/test/unit/task/restore_tests.rb +58 -0
- data/test/unit/task/setup_tests.rb +60 -0
- data/test/unit/task/teardown_tests.rb +60 -0
- data/test/unit/task_tests.rb +113 -0
- metadata +46 -12
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'assert'
|
2
|
+
require 'dk-dumpdb/task/restore'
|
3
|
+
|
4
|
+
require 'test/support/task/internal_task'
|
5
|
+
|
6
|
+
class Dk::Dumpdb::Task::Restore
|
7
|
+
|
8
|
+
class UnitTests < Assert::Context
|
9
|
+
desc "Dk::Dumpdb::Task::Restore"
|
10
|
+
setup do
|
11
|
+
@task_class = Dk::Dumpdb::Task::Restore
|
12
|
+
end
|
13
|
+
subject{ @task_class}
|
14
|
+
|
15
|
+
should "be an internal task" do
|
16
|
+
assert_includes Dk::Dumpdb::Task::InternalTask, subject
|
17
|
+
end
|
18
|
+
|
19
|
+
should "know its description" do
|
20
|
+
exp = "(dk-dumpdb) run the given script's restore cmds"
|
21
|
+
assert_equal exp, subject.description
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class InitTests < UnitTests
|
27
|
+
include Dk::Dumpdb::Task::InternalTask::TestHelpers
|
28
|
+
|
29
|
+
desc "when init"
|
30
|
+
setup do
|
31
|
+
now = Factory.time
|
32
|
+
Assert.stub(Time, :now){ now }
|
33
|
+
|
34
|
+
@restore_cmds = restore_cmds = Factory.integer(3).times.map{ Factory.string }
|
35
|
+
set_dk_dumpdb_script_param do
|
36
|
+
restore_cmds.each do |cmd_str|
|
37
|
+
restore{ cmd_str }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
@runner = test_runner(@task_class, :params => @params)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
class RunTests < InitTests
|
46
|
+
desc "and run"
|
47
|
+
setup do
|
48
|
+
@runner.run
|
49
|
+
end
|
50
|
+
subject{ @runner }
|
51
|
+
|
52
|
+
should "run all restore cmds" do
|
53
|
+
assert_equal @restore_cmds, subject.runs.map(&:cmd_str)
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'assert'
|
2
|
+
require 'dk-dumpdb/task/setup'
|
3
|
+
|
4
|
+
require 'test/support/task/internal_task'
|
5
|
+
|
6
|
+
class Dk::Dumpdb::Task::Setup
|
7
|
+
|
8
|
+
class UnitTests < Assert::Context
|
9
|
+
desc "Dk::Dumpdb::Task::Setup"
|
10
|
+
setup do
|
11
|
+
@task_class = Dk::Dumpdb::Task::Setup
|
12
|
+
end
|
13
|
+
subject{ @task_class}
|
14
|
+
|
15
|
+
should "be an internal task" do
|
16
|
+
assert_includes Dk::Dumpdb::Task::InternalTask, subject
|
17
|
+
end
|
18
|
+
|
19
|
+
should "know its description" do
|
20
|
+
exp = "(dk-dumpdb) setup a script run"
|
21
|
+
assert_equal exp, subject.description
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class InitTests < UnitTests
|
27
|
+
include Dk::Dumpdb::Task::InternalTask::TestHelpers
|
28
|
+
|
29
|
+
desc "when init"
|
30
|
+
setup do
|
31
|
+
now = Factory.time
|
32
|
+
Assert.stub(Time, :now){ now }
|
33
|
+
|
34
|
+
set_dk_dumpdb_script_param
|
35
|
+
@runner = test_runner(@task_class, :params => @params)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
class RunTests < InitTests
|
41
|
+
desc "and run"
|
42
|
+
setup do
|
43
|
+
@runner.run
|
44
|
+
end
|
45
|
+
subject{ @runner }
|
46
|
+
|
47
|
+
should "run 2 cmds" do
|
48
|
+
assert_equal 2, subject.runs.size
|
49
|
+
mkdir_src, mkdir_targ = subject.runs
|
50
|
+
|
51
|
+
exp = @params['script'].dump_cmd{ "mkdir -p #{source.output_dir}" }
|
52
|
+
assert_equal exp, mkdir_src.cmd_str
|
53
|
+
|
54
|
+
exp = @params['script'].restore_cmd{ "mkdir -p #{target.output_dir}" }
|
55
|
+
assert_equal exp, mkdir_targ.cmd_str
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'assert'
|
2
|
+
require 'dk-dumpdb/task/teardown'
|
3
|
+
|
4
|
+
require 'test/support/task/internal_task'
|
5
|
+
|
6
|
+
class Dk::Dumpdb::Task::Teardown
|
7
|
+
|
8
|
+
class UnitTests < Assert::Context
|
9
|
+
desc "Dk::Dumpdb::Task::Teardown"
|
10
|
+
setup do
|
11
|
+
@task_class = Dk::Dumpdb::Task::Teardown
|
12
|
+
end
|
13
|
+
subject{ @task_class}
|
14
|
+
|
15
|
+
should "be an internal task" do
|
16
|
+
assert_includes Dk::Dumpdb::Task::InternalTask, subject
|
17
|
+
end
|
18
|
+
|
19
|
+
should "know its description" do
|
20
|
+
exp = "(dk-dumpdb) teardown a script run"
|
21
|
+
assert_equal exp, subject.description
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
class InitTests < UnitTests
|
27
|
+
include Dk::Dumpdb::Task::InternalTask::TestHelpers
|
28
|
+
|
29
|
+
desc "when init"
|
30
|
+
setup do
|
31
|
+
now = Factory.time
|
32
|
+
Assert.stub(Time, :now){ now }
|
33
|
+
|
34
|
+
set_dk_dumpdb_script_param
|
35
|
+
@runner = test_runner(@task_class, :params => @params)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
class RunTests < InitTests
|
41
|
+
desc "and run"
|
42
|
+
setup do
|
43
|
+
@runner.run
|
44
|
+
end
|
45
|
+
subject{ @runner }
|
46
|
+
|
47
|
+
should "run 2 cmds" do
|
48
|
+
assert_equal 2, subject.runs.size
|
49
|
+
rmdir_src, rmdir_targ = subject.runs
|
50
|
+
|
51
|
+
exp = @params['script'].dump_cmd{ "rm -rf #{source.output_dir}" }
|
52
|
+
assert_equal exp, rmdir_src.cmd_str
|
53
|
+
|
54
|
+
exp = @params['script'].restore_cmd{ "rm -rf #{target.output_dir}" }
|
55
|
+
assert_equal exp, rmdir_targ.cmd_str
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'assert'
|
2
|
+
require 'dk-dumpdb/task'
|
3
|
+
|
4
|
+
require 'dk/task'
|
5
|
+
require 'much-plugin'
|
6
|
+
require 'dk-dumpdb/task/copy_dump'
|
7
|
+
require 'dk-dumpdb/task/dump'
|
8
|
+
require 'dk-dumpdb/task/restore'
|
9
|
+
require 'dk-dumpdb/task/setup'
|
10
|
+
require 'dk-dumpdb/task/teardown'
|
11
|
+
|
12
|
+
module Dk::Dumpdb::Task
|
13
|
+
|
14
|
+
class UnitTests < Assert::Context
|
15
|
+
desc "Dk::Dumpdb::Task"
|
16
|
+
subject{ Dk::Dumpdb::Task }
|
17
|
+
|
18
|
+
should "use much-plugin" do
|
19
|
+
assert_includes MuchPlugin, subject
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class MixinTests < UnitTests
|
25
|
+
desc "mixin"
|
26
|
+
setup do
|
27
|
+
@task_class = Class.new do
|
28
|
+
include Dk::Dumpdb::Task
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
subject{ @task_class }
|
33
|
+
|
34
|
+
should have_imeths :script_class
|
35
|
+
|
36
|
+
should "be a Dk task" do
|
37
|
+
assert_includes Dk::Task, subject
|
38
|
+
end
|
39
|
+
|
40
|
+
should "know its script class" do
|
41
|
+
assert_nil subject.script_class
|
42
|
+
|
43
|
+
value = Factory.string
|
44
|
+
subject.script_class value
|
45
|
+
|
46
|
+
assert_equal value, subject.script_class
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
class InitTests < MixinTests
|
52
|
+
include Dk::Task::TestHelpers
|
53
|
+
|
54
|
+
desc "when init"
|
55
|
+
setup do
|
56
|
+
@runner = test_runner(@task_class)
|
57
|
+
@task = @runner.task
|
58
|
+
end
|
59
|
+
subject{ @task }
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
class RunTests < InitTests
|
64
|
+
desc "and run"
|
65
|
+
setup do
|
66
|
+
@task_class.script_class Factory.script_class
|
67
|
+
|
68
|
+
@script_init_with = nil
|
69
|
+
@script = @task_class.script_class.new
|
70
|
+
Assert.stub(@task_class.script_class, :new) do |*args|
|
71
|
+
@script_init_with = args
|
72
|
+
@script
|
73
|
+
end
|
74
|
+
|
75
|
+
@runner.run
|
76
|
+
end
|
77
|
+
subject{ @runner }
|
78
|
+
|
79
|
+
should "build an instance of its script class and run it" do
|
80
|
+
assert_equal 5, subject.runs.size
|
81
|
+
|
82
|
+
setup, dump, copydump, restore, teardown = subject.runs
|
83
|
+
|
84
|
+
assert_equal Setup, setup.task_class
|
85
|
+
assert_equal Dump, dump.task_class
|
86
|
+
assert_equal CopyDump, copydump.task_class
|
87
|
+
assert_equal Restore, restore.task_class
|
88
|
+
assert_equal Teardown, teardown.task_class
|
89
|
+
|
90
|
+
assert_equal [@runner.params], @script_init_with
|
91
|
+
|
92
|
+
subject.runs.each do |task_run|
|
93
|
+
assert_equal @script, task_run.params['script']
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
class TestHelpersTets < UnitTests
|
100
|
+
desc "TestHelpers"
|
101
|
+
setup do
|
102
|
+
@context_class = Class.new{ include Dk::Dumpdb::Task::TestHelpers }
|
103
|
+
@context = @context_class.new
|
104
|
+
end
|
105
|
+
subject{ @context }
|
106
|
+
|
107
|
+
should "include Dk task test helpers" do
|
108
|
+
assert_includes Dk::Task::TestHelpers, @context_class
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dk-dumpdb
|
3
|
-
version: &
|
4
|
-
version: 0.0
|
3
|
+
version: &id002 !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Redding
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-08-17 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: assert
|
@@ -19,26 +19,26 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.16.
|
22
|
+
version: 2.16.3
|
23
23
|
type: :development
|
24
24
|
version_requirements: *id001
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
26
|
+
name: dk
|
27
27
|
prerelease: false
|
28
|
-
requirement: &
|
28
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
|
-
-
|
32
|
-
|
33
|
-
|
34
|
-
version_requirements: *id002
|
31
|
+
- *id002
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id003
|
35
34
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
35
|
+
name: much-plugin
|
37
36
|
prerelease: false
|
38
37
|
requirement: &id004 !ruby/object:Gem::Requirement
|
39
38
|
requirements:
|
40
39
|
- - ~>
|
41
|
-
-
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.2.0
|
42
42
|
type: :runtime
|
43
43
|
version_requirements: *id004
|
44
44
|
description: Build Dk tasks to dump and restore your databases
|
@@ -58,10 +58,32 @@ files:
|
|
58
58
|
- README.md
|
59
59
|
- dk-dumpdb.gemspec
|
60
60
|
- lib/dk-dumpdb.rb
|
61
|
+
- lib/dk-dumpdb/config.rb
|
62
|
+
- lib/dk-dumpdb/db.rb
|
63
|
+
- lib/dk-dumpdb/script.rb
|
64
|
+
- lib/dk-dumpdb/task.rb
|
65
|
+
- lib/dk-dumpdb/task/copy_dump.rb
|
66
|
+
- lib/dk-dumpdb/task/dump.rb
|
67
|
+
- lib/dk-dumpdb/task/internal_task.rb
|
68
|
+
- lib/dk-dumpdb/task/restore.rb
|
69
|
+
- lib/dk-dumpdb/task/setup.rb
|
70
|
+
- lib/dk-dumpdb/task/teardown.rb
|
61
71
|
- lib/dk-dumpdb/version.rb
|
62
72
|
- log/.gitkeep
|
63
73
|
- test/helper.rb
|
64
74
|
- test/support/factory.rb
|
75
|
+
- test/support/task/internal_task.rb
|
76
|
+
- test/unit/config_tests.rb
|
77
|
+
- test/unit/db_tests.rb
|
78
|
+
- test/unit/dk-dumpdb_tests.rb
|
79
|
+
- test/unit/script_tests.rb
|
80
|
+
- test/unit/task/copy_dump_tests.rb
|
81
|
+
- test/unit/task/dump_tests.rb
|
82
|
+
- test/unit/task/internal_task_tests.rb
|
83
|
+
- test/unit/task/restore_tests.rb
|
84
|
+
- test/unit/task/setup_tests.rb
|
85
|
+
- test/unit/task/teardown_tests.rb
|
86
|
+
- test/unit/task_tests.rb
|
65
87
|
- tmp/.gitkeep
|
66
88
|
homepage: http://github.com/redding/dk-dumpdb
|
67
89
|
licenses:
|
@@ -92,3 +114,15 @@ summary: Build Dk tasks to dump and restore your databases
|
|
92
114
|
test_files:
|
93
115
|
- test/helper.rb
|
94
116
|
- test/support/factory.rb
|
117
|
+
- test/support/task/internal_task.rb
|
118
|
+
- test/unit/config_tests.rb
|
119
|
+
- test/unit/db_tests.rb
|
120
|
+
- test/unit/dk-dumpdb_tests.rb
|
121
|
+
- test/unit/script_tests.rb
|
122
|
+
- test/unit/task/copy_dump_tests.rb
|
123
|
+
- test/unit/task/dump_tests.rb
|
124
|
+
- test/unit/task/internal_task_tests.rb
|
125
|
+
- test/unit/task/restore_tests.rb
|
126
|
+
- test/unit/task/setup_tests.rb
|
127
|
+
- test/unit/task/teardown_tests.rb
|
128
|
+
- test/unit/task_tests.rb
|