librarian 0.0.9 → 0.0.10
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/CHANGELOG.md +4 -0
- data/lib/librarian.rb +5 -178
- data/lib/librarian/action.rb +5 -0
- data/lib/librarian/action/base.rb +22 -0
- data/lib/librarian/action/clean.rb +56 -0
- data/lib/librarian/action/ensure.rb +24 -0
- data/lib/librarian/action/install.rb +101 -0
- data/lib/librarian/action/resolve.rb +81 -0
- data/lib/librarian/action/update.rb +76 -0
- data/lib/librarian/chef/cli.rb +7 -2
- data/lib/librarian/chef/dsl.rb +0 -3
- data/lib/librarian/chef/environment.rb +19 -0
- data/lib/librarian/chef/extension.rb +1 -16
- data/lib/librarian/chef/integration/knife.rb +9 -16
- data/lib/librarian/chef/source/git.rb +0 -2
- data/lib/librarian/chef/source/local.rb +1 -74
- data/lib/librarian/chef/source/local/manifest.rb +82 -0
- data/lib/librarian/chef/source/path.rb +0 -2
- data/lib/librarian/chef/source/site.rb +9 -89
- data/lib/librarian/chef/source/site/manifest.rb +94 -0
- data/lib/librarian/cli.rb +56 -17
- data/lib/librarian/dependency.rb +2 -2
- data/lib/librarian/dsl.rb +15 -5
- data/lib/librarian/dsl/receiver.rb +2 -0
- data/lib/librarian/dsl/target.rb +13 -1
- data/lib/librarian/environment.rb +94 -0
- data/lib/librarian/error.rb +4 -0
- data/lib/librarian/helpers/debug.rb +6 -6
- data/lib/librarian/lockfile.rb +7 -5
- data/lib/librarian/lockfile/compiler.rb +5 -4
- data/lib/librarian/lockfile/parser.rb +6 -5
- data/lib/librarian/manifest.rb +2 -2
- data/lib/librarian/mock/cli.rb +6 -1
- data/lib/librarian/mock/dsl.rb +0 -3
- data/lib/librarian/mock/environment.rb +24 -0
- data/lib/librarian/mock/extension.rb +1 -20
- data/lib/librarian/mock/source/mock.rb +7 -7
- data/lib/librarian/mock/source/mock/registry.rb +16 -12
- data/lib/librarian/resolver.rb +5 -116
- data/lib/librarian/resolver/implementation.rb +117 -0
- data/lib/librarian/source/git.rb +8 -7
- data/lib/librarian/source/git/repository.rb +7 -5
- data/lib/librarian/source/local.rb +1 -1
- data/lib/librarian/source/path.rb +7 -6
- data/lib/librarian/spec_change_set.rb +6 -5
- data/lib/librarian/specfile.rb +10 -4
- data/lib/librarian/version.rb +1 -1
- data/librarian.gemspec +1 -0
- data/spec/functional/chef/source/git_spec.rb +177 -89
- data/spec/functional/chef/source/site_spec.rb +111 -52
- data/spec/unit/action/base_spec.rb +18 -0
- data/spec/unit/action/clean_spec.rb +133 -0
- data/spec/unit/action/ensure_spec.rb +37 -0
- data/spec/unit/action/install_spec.rb +113 -0
- data/spec/unit/dsl_spec.rb +15 -13
- data/spec/unit/environment_spec.rb +9 -0
- data/spec/unit/lockfile_spec.rb +15 -4
- data/spec/unit/mock/source/mock.rb +22 -0
- data/spec/unit/resolver_spec.rb +24 -24
- data/spec/unit/spec_change_set_spec.rb +29 -25
- metadata +47 -19
- data/lib/librarian/chef/particularity.rb +0 -9
- data/lib/librarian/mock/particularity.rb +0 -9
- data/lib/librarian/particularity.rb +0 -7
data/spec/unit/dsl_spec.rb
CHANGED
@@ -6,11 +6,13 @@ module Librarian
|
|
6
6
|
|
7
7
|
describe Dsl do
|
8
8
|
|
9
|
+
let(:env) { Environment.new }
|
10
|
+
|
9
11
|
context "a single dependency but no applicable source" do
|
10
12
|
|
11
13
|
it "should not run without any sources" do
|
12
14
|
expect do
|
13
|
-
|
15
|
+
env.dsl do
|
14
16
|
dep 'dependency-1'
|
15
17
|
end
|
16
18
|
end.to raise_error(Dsl::Error)
|
@@ -18,7 +20,7 @@ module Librarian
|
|
18
20
|
|
19
21
|
it "should not run when a block source is defined but the dependency is outside the block" do
|
20
22
|
expect do
|
21
|
-
|
23
|
+
env.dsl do
|
22
24
|
src 'source-1' do end
|
23
25
|
dep 'dependency-1'
|
24
26
|
end
|
@@ -30,7 +32,7 @@ module Librarian
|
|
30
32
|
context "a simple specfile - a single source, a single dependency, no transitive dependencies" do
|
31
33
|
|
32
34
|
it "should run with a hash source" do
|
33
|
-
spec =
|
35
|
+
spec = env.dsl do
|
34
36
|
dep 'dependency-1',
|
35
37
|
:src => 'source-1'
|
36
38
|
end
|
@@ -41,7 +43,7 @@ module Librarian
|
|
41
43
|
end
|
42
44
|
|
43
45
|
it "should run with a shortcut source" do
|
44
|
-
spec =
|
46
|
+
spec = env.dsl do
|
45
47
|
dep 'dependency-1',
|
46
48
|
:source => :a
|
47
49
|
end
|
@@ -52,7 +54,7 @@ module Librarian
|
|
52
54
|
end
|
53
55
|
|
54
56
|
it "should run with a block hash source" do
|
55
|
-
spec =
|
57
|
+
spec = env.dsl do
|
56
58
|
source :src => 'source-1' do
|
57
59
|
dep 'dependency-1'
|
58
60
|
end
|
@@ -64,7 +66,7 @@ module Librarian
|
|
64
66
|
end
|
65
67
|
|
66
68
|
it "should run with a block named source" do
|
67
|
-
spec =
|
69
|
+
spec = env.dsl do
|
68
70
|
src 'source-1' do
|
69
71
|
dep 'dependency-1'
|
70
72
|
end
|
@@ -76,7 +78,7 @@ module Librarian
|
|
76
78
|
end
|
77
79
|
|
78
80
|
it "should run with a default hash source" do
|
79
|
-
spec =
|
81
|
+
spec = env.dsl do
|
80
82
|
source :src => 'source-1'
|
81
83
|
dep 'dependency-1'
|
82
84
|
end
|
@@ -88,7 +90,7 @@ module Librarian
|
|
88
90
|
end
|
89
91
|
|
90
92
|
it "should run with a default named source" do
|
91
|
-
spec =
|
93
|
+
spec = env.dsl do
|
92
94
|
src 'source-1'
|
93
95
|
dep 'dependency-1'
|
94
96
|
end
|
@@ -100,7 +102,7 @@ module Librarian
|
|
100
102
|
end
|
101
103
|
|
102
104
|
it "should run with a default shortcut source" do
|
103
|
-
spec =
|
105
|
+
spec = env.dsl do
|
104
106
|
source :a
|
105
107
|
dep 'dependency-1'
|
106
108
|
end
|
@@ -112,7 +114,7 @@ module Librarian
|
|
112
114
|
end
|
113
115
|
|
114
116
|
it "should run with a shortcut source hash definition" do
|
115
|
-
spec =
|
117
|
+
spec = env.dsl do
|
116
118
|
source :b, :src => 'source-b'
|
117
119
|
dep 'dependency-1', :source => :b
|
118
120
|
end
|
@@ -123,7 +125,7 @@ module Librarian
|
|
123
125
|
end
|
124
126
|
|
125
127
|
it "should run with a shortcut source block definition" do
|
126
|
-
spec =
|
128
|
+
spec = env.dsl do
|
127
129
|
source :b, proc { src 'source-b' }
|
128
130
|
dep 'dependency-1', :source => :b
|
129
131
|
end
|
@@ -134,7 +136,7 @@ module Librarian
|
|
134
136
|
end
|
135
137
|
|
136
138
|
it "should run with a default shortcut source hash definition" do
|
137
|
-
spec =
|
139
|
+
spec = env.dsl do
|
138
140
|
source :b, :src => 'source-b'
|
139
141
|
source :b
|
140
142
|
dep 'dependency-1'
|
@@ -147,7 +149,7 @@ module Librarian
|
|
147
149
|
end
|
148
150
|
|
149
151
|
it "should run with a default shortcut source block definition" do
|
150
|
-
spec =
|
152
|
+
spec = env.dsl do
|
151
153
|
source :b, proc { src 'source-b' }
|
152
154
|
source :b
|
153
155
|
dep 'dependency-1'
|
data/spec/unit/lockfile_spec.rb
CHANGED
@@ -4,8 +4,10 @@ require 'librarian/mock'
|
|
4
4
|
module Librarian
|
5
5
|
describe Lockfile do
|
6
6
|
|
7
|
+
let(:env) { Mock::Environment.new }
|
8
|
+
|
7
9
|
before do
|
8
|
-
|
10
|
+
env.registry :clear => true do
|
9
11
|
source 'source-1' do
|
10
12
|
spec 'alpha', '1.1'
|
11
13
|
end
|
@@ -13,13 +15,13 @@ module Librarian
|
|
13
15
|
end
|
14
16
|
|
15
17
|
let(:spec) do
|
16
|
-
|
18
|
+
env.dsl do
|
17
19
|
src 'source-1'
|
18
20
|
dep 'alpha', '1.1'
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
|
-
let(:resolver) {
|
24
|
+
let(:resolver) { env.resolver }
|
23
25
|
let(:resolution) { resolver.resolve(spec) }
|
24
26
|
|
25
27
|
context "sanity" do
|
@@ -27,11 +29,12 @@ module Librarian
|
|
27
29
|
subject { resolution }
|
28
30
|
|
29
31
|
it { should be_correct }
|
32
|
+
it { should have(1).manifests }
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
36
|
describe "#save" do
|
34
|
-
let(:lockfile) {
|
37
|
+
let(:lockfile) { env.ephemeral_lockfile }
|
35
38
|
let(:lockfile_text) { lockfile.save(resolution) }
|
36
39
|
|
37
40
|
context "just saving" do
|
@@ -40,6 +43,14 @@ module Librarian
|
|
40
43
|
end
|
41
44
|
end
|
42
45
|
|
46
|
+
context "saving and reloading" do
|
47
|
+
let(:reloaded_resolution) { lockfile.load(lockfile_text) }
|
48
|
+
|
49
|
+
it "should have the expected manifests" do
|
50
|
+
reloaded_resolution.manifests.count.should == resolution.manifests.count
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
43
54
|
context "bouncing" do
|
44
55
|
let(:bounced_resolution) { lockfile.load(lockfile_text) }
|
45
56
|
let(:bounced_lockfile_text) { lockfile.save(bounced_resolution) }
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "librarian/mock"
|
2
|
+
|
3
|
+
module Librarian
|
4
|
+
module Mock
|
5
|
+
module Source
|
6
|
+
describe Mock do
|
7
|
+
|
8
|
+
let(:env) { Librarian::Mock::Environment.new }
|
9
|
+
|
10
|
+
describe ".new" do
|
11
|
+
|
12
|
+
let(:source) { described_class.new(env, "source-a", {}) }
|
13
|
+
subject { source }
|
14
|
+
|
15
|
+
its(:environment) { should_not be_nil }
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/unit/resolver_spec.rb
CHANGED
@@ -1,22 +1,25 @@
|
|
1
|
-
require 'librarian'
|
1
|
+
require 'librarian/resolver'
|
2
|
+
require 'librarian/spec_change_set'
|
2
3
|
require 'librarian/mock'
|
3
4
|
|
4
5
|
module Librarian
|
5
6
|
describe Resolver do
|
6
7
|
|
8
|
+
let(:env) { Mock::Environment.new }
|
9
|
+
let(:resolver) { env.resolver }
|
10
|
+
|
7
11
|
context "a simple specfile" do
|
8
12
|
|
9
13
|
it "should work" do
|
10
|
-
|
14
|
+
env.registry :clear => true do
|
11
15
|
source 'source-1' do
|
12
16
|
spec 'butter', '1.1'
|
13
17
|
end
|
14
18
|
end
|
15
|
-
spec =
|
19
|
+
spec = env.dsl do
|
16
20
|
src 'source-1'
|
17
21
|
dep 'butter'
|
18
22
|
end
|
19
|
-
resolver = Mock.resolver
|
20
23
|
resolution = resolver.resolve(spec)
|
21
24
|
resolution.should be_correct
|
22
25
|
end
|
@@ -26,7 +29,7 @@ module Librarian
|
|
26
29
|
context "a specfile with a dep from one src depending on a dep from another src" do
|
27
30
|
|
28
31
|
it "should work" do
|
29
|
-
|
32
|
+
env.registry :clear => true do
|
30
33
|
source 'source-1' do
|
31
34
|
spec 'butter', '1.1'
|
32
35
|
end
|
@@ -36,13 +39,12 @@ module Librarian
|
|
36
39
|
end
|
37
40
|
end
|
38
41
|
end
|
39
|
-
spec =
|
42
|
+
spec = env.dsl do
|
40
43
|
src 'source-1'
|
41
44
|
src 'source-2' do
|
42
45
|
dep 'jam'
|
43
46
|
end
|
44
47
|
end
|
45
|
-
resolver = Mock.resolver
|
46
48
|
resolution = resolver.resolve(spec)
|
47
49
|
resolution.should be_correct
|
48
50
|
end
|
@@ -52,18 +54,17 @@ module Librarian
|
|
52
54
|
context "a specfile with a dep depending on a nonexistent dep" do
|
53
55
|
|
54
56
|
it "should not work" do
|
55
|
-
|
57
|
+
env.registry :clear => true do
|
56
58
|
source 'source-1' do
|
57
59
|
spec 'jam', '1.2' do
|
58
60
|
dependency 'butter', '>= 1.0'
|
59
61
|
end
|
60
62
|
end
|
61
63
|
end
|
62
|
-
spec =
|
64
|
+
spec = env.dsl do
|
63
65
|
src 'source-1'
|
64
66
|
dep 'jam'
|
65
67
|
end
|
66
|
-
resolver = Mock.resolver
|
67
68
|
resolution = resolver.resolve(spec)
|
68
69
|
resolution.should_not be_correct
|
69
70
|
end
|
@@ -73,7 +74,7 @@ module Librarian
|
|
73
74
|
context "a specfile with conflicting constraints" do
|
74
75
|
|
75
76
|
it "should not work" do
|
76
|
-
|
77
|
+
env.registry :clear => true do
|
77
78
|
source 'source-1' do
|
78
79
|
spec 'butter', '1.0'
|
79
80
|
spec 'butter', '1.1'
|
@@ -82,12 +83,11 @@ module Librarian
|
|
82
83
|
end
|
83
84
|
end
|
84
85
|
end
|
85
|
-
spec =
|
86
|
+
spec = env.dsl do
|
86
87
|
src 'source-1'
|
87
88
|
dep 'butter', '1.0'
|
88
89
|
dep 'jam'
|
89
90
|
end
|
90
|
-
resolver = Mock.resolver
|
91
91
|
resolution = resolver.resolve(spec)
|
92
92
|
resolution.should_not be_correct
|
93
93
|
end
|
@@ -97,7 +97,7 @@ module Librarian
|
|
97
97
|
context "updating" do
|
98
98
|
|
99
99
|
it "should not work" do
|
100
|
-
|
100
|
+
env.registry :clear => true do
|
101
101
|
source 'source-1' do
|
102
102
|
spec 'butter', '1.0'
|
103
103
|
spec 'butter', '1.1'
|
@@ -106,24 +106,24 @@ module Librarian
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
109
|
-
first_spec =
|
109
|
+
first_spec = env.dsl do
|
110
110
|
src 'source-1'
|
111
111
|
dep 'butter', '1.1'
|
112
112
|
dep 'jam'
|
113
113
|
end
|
114
|
-
first_resolution =
|
114
|
+
first_resolution = resolver.resolve(first_spec)
|
115
115
|
first_resolution.should be_correct
|
116
116
|
first_manifests = first_resolution.manifests
|
117
117
|
first_manifests_index = Hash[first_manifests.map{|m| [m.name, m]}]
|
118
118
|
first_manifests_index['butter'].version.to_s.should == '1.1'
|
119
119
|
|
120
|
-
second_spec =
|
120
|
+
second_spec = env.dsl do
|
121
121
|
src 'source-1'
|
122
122
|
dep 'butter', '1.0'
|
123
123
|
dep 'jam'
|
124
124
|
end
|
125
125
|
locked_manifests = ManifestSet.deep_strip(first_manifests, ['butter'])
|
126
|
-
second_resolution =
|
126
|
+
second_resolution =resolver.resolve(second_spec, locked_manifests)
|
127
127
|
second_resolution.should be_correct
|
128
128
|
second_manifests = second_resolution.manifests
|
129
129
|
second_manifests_index = Hash[second_manifests.map{|m| [m.name, m]}]
|
@@ -135,7 +135,7 @@ module Librarian
|
|
135
135
|
context "a change to the spec" do
|
136
136
|
|
137
137
|
it "should work" do
|
138
|
-
|
138
|
+
env.registry :clear => true do
|
139
139
|
source 'source-1' do
|
140
140
|
spec 'butter', '1.0'
|
141
141
|
end
|
@@ -143,22 +143,22 @@ module Librarian
|
|
143
143
|
spec 'butter', '1.0'
|
144
144
|
end
|
145
145
|
end
|
146
|
-
spec =
|
146
|
+
spec = env.dsl do
|
147
147
|
src 'source-1'
|
148
148
|
dep 'butter'
|
149
149
|
end
|
150
|
-
lock =
|
150
|
+
lock = resolver.resolve(spec)
|
151
151
|
lock.should be_correct
|
152
152
|
|
153
|
-
spec =
|
153
|
+
spec = env.dsl do
|
154
154
|
src 'source-1'
|
155
155
|
dep 'butter', :src => 'source-2'
|
156
156
|
end
|
157
|
-
changes =
|
157
|
+
changes = SpecChangeSet.new(env, spec, lock)
|
158
158
|
changes.should_not be_same
|
159
159
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
160
160
|
manifests.should_not have_key('butter')
|
161
|
-
lock =
|
161
|
+
lock = resolver.resolve(spec, changes.analyze)
|
162
162
|
lock.should be_correct
|
163
163
|
lock.manifests.map{|m| m.name}.should include('butter')
|
164
164
|
manifest = lock.manifests.find{|m| m.name == 'butter'}
|
@@ -1,31 +1,35 @@
|
|
1
1
|
require 'librarian'
|
2
|
+
require 'librarian/spec_change_set'
|
2
3
|
require 'librarian/mock'
|
3
4
|
|
4
5
|
module Librarian
|
5
6
|
describe SpecChangeSet do
|
6
7
|
|
8
|
+
let(:env) { Mock::Environment.new }
|
9
|
+
let(:resolver) { env.resolver }
|
10
|
+
|
7
11
|
context "a simple root removal" do
|
8
12
|
|
9
13
|
it "should work" do
|
10
|
-
|
14
|
+
env.registry :clear => true do
|
11
15
|
source 'source-1' do
|
12
16
|
spec 'butter', '1.0'
|
13
17
|
spec 'jam', '1.0'
|
14
18
|
end
|
15
19
|
end
|
16
|
-
spec =
|
20
|
+
spec = env.dsl do
|
17
21
|
src 'source-1'
|
18
22
|
dep 'butter'
|
19
23
|
dep 'jam'
|
20
24
|
end
|
21
|
-
lock =
|
25
|
+
lock = resolver.resolve(spec)
|
22
26
|
lock.should be_correct
|
23
27
|
|
24
|
-
spec =
|
28
|
+
spec = env.dsl do
|
25
29
|
src 'source-1'
|
26
30
|
dep 'jam'
|
27
31
|
end
|
28
|
-
changes =
|
32
|
+
changes = described_class.new(env, spec, lock)
|
29
33
|
changes.should_not be_same
|
30
34
|
|
31
35
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
@@ -38,25 +42,25 @@ module Librarian
|
|
38
42
|
context "a simple root add" do
|
39
43
|
|
40
44
|
it "should work" do
|
41
|
-
|
45
|
+
env.registry :clear => true do
|
42
46
|
source 'source-1' do
|
43
47
|
spec 'butter', '1.0'
|
44
48
|
spec 'jam', '1.0'
|
45
49
|
end
|
46
50
|
end
|
47
|
-
spec =
|
51
|
+
spec = env.dsl do
|
48
52
|
src 'source-1'
|
49
53
|
dep 'jam'
|
50
54
|
end
|
51
|
-
lock =
|
55
|
+
lock = resolver.resolve(spec)
|
52
56
|
lock.should be_correct
|
53
57
|
|
54
|
-
spec =
|
58
|
+
spec = env.dsl do
|
55
59
|
src 'source-1'
|
56
60
|
dep 'butter'
|
57
61
|
dep 'jam'
|
58
62
|
end
|
59
|
-
changes =
|
63
|
+
changes = described_class.new(env, spec, lock)
|
60
64
|
changes.should_not be_same
|
61
65
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
62
66
|
manifests.should have_key('jam')
|
@@ -70,27 +74,27 @@ module Librarian
|
|
70
74
|
context "when the change is consistent" do
|
71
75
|
|
72
76
|
it "should work" do
|
73
|
-
|
77
|
+
env.registry :clear => true do
|
74
78
|
source 'source-1' do
|
75
79
|
spec 'butter', '1.0'
|
76
80
|
spec 'jam', '1.0'
|
77
81
|
spec 'jam', '1.1'
|
78
82
|
end
|
79
83
|
end
|
80
|
-
spec =
|
84
|
+
spec = env.dsl do
|
81
85
|
src 'source-1'
|
82
86
|
dep 'butter'
|
83
87
|
dep 'jam', '= 1.1'
|
84
88
|
end
|
85
|
-
lock =
|
89
|
+
lock = resolver.resolve(spec)
|
86
90
|
lock.should be_correct
|
87
91
|
|
88
|
-
spec =
|
92
|
+
spec = env.dsl do
|
89
93
|
src 'source-1'
|
90
94
|
dep 'butter'
|
91
95
|
dep 'jam', '>= 1.0'
|
92
96
|
end
|
93
|
-
changes =
|
97
|
+
changes = described_class.new(env, spec, lock)
|
94
98
|
changes.should_not be_same
|
95
99
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
96
100
|
manifests.should have_key('butter')
|
@@ -102,27 +106,27 @@ module Librarian
|
|
102
106
|
context "when the change is inconsistent" do
|
103
107
|
|
104
108
|
it "should work" do
|
105
|
-
|
109
|
+
env.registry :clear => true do
|
106
110
|
source 'source-1' do
|
107
111
|
spec 'butter', '1.0'
|
108
112
|
spec 'jam', '1.0'
|
109
113
|
spec 'jam', '1.1'
|
110
114
|
end
|
111
115
|
end
|
112
|
-
spec =
|
116
|
+
spec = env.dsl do
|
113
117
|
src 'source-1'
|
114
118
|
dep 'butter'
|
115
119
|
dep 'jam', '= 1.0'
|
116
120
|
end
|
117
|
-
lock =
|
121
|
+
lock = resolver.resolve(spec)
|
118
122
|
lock.should be_correct
|
119
123
|
|
120
|
-
spec =
|
124
|
+
spec = env.dsl do
|
121
125
|
src 'source-1'
|
122
126
|
dep 'butter'
|
123
127
|
dep 'jam', '>= 1.1'
|
124
128
|
end
|
125
|
-
changes =
|
129
|
+
changes = described_class.new(env, spec, lock)
|
126
130
|
changes.should_not be_same
|
127
131
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
128
132
|
manifests.should have_key('butter')
|
@@ -135,7 +139,7 @@ module Librarian
|
|
135
139
|
|
136
140
|
context "a simple root source change" do
|
137
141
|
it "should work" do
|
138
|
-
|
142
|
+
env.registry :clear => true do
|
139
143
|
source 'source-1' do
|
140
144
|
spec 'butter', '1.0'
|
141
145
|
end
|
@@ -143,18 +147,18 @@ module Librarian
|
|
143
147
|
spec 'butter', '1.0'
|
144
148
|
end
|
145
149
|
end
|
146
|
-
spec =
|
150
|
+
spec = env.dsl do
|
147
151
|
src 'source-1'
|
148
152
|
dep 'butter'
|
149
153
|
end
|
150
|
-
lock =
|
154
|
+
lock = resolver.resolve(spec)
|
151
155
|
lock.should be_correct
|
152
156
|
|
153
|
-
spec =
|
157
|
+
spec = env.dsl do
|
154
158
|
src 'source-1'
|
155
159
|
dep 'butter', :src => 'source-2'
|
156
160
|
end
|
157
|
-
changes =
|
161
|
+
changes = described_class.new(env, spec, lock)
|
158
162
|
changes.should_not be_same
|
159
163
|
manifests = ManifestSet.new(changes.analyze).to_hash
|
160
164
|
manifests.should_not have_key('butter')
|