berkshelf 7.0.7 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/Rakefile +4 -4
  4. data/berkshelf.gemspec +10 -12
  5. data/bin/berks +5 -0
  6. data/lib/berkshelf.rb +8 -9
  7. data/lib/berkshelf/api_client/chef_server_connection.rb +3 -2
  8. data/lib/berkshelf/api_client/connection.rb +1 -1
  9. data/lib/berkshelf/api_client/remote_cookbook.rb +1 -1
  10. data/lib/berkshelf/berksfile.rb +41 -39
  11. data/lib/berkshelf/cached_cookbook.rb +6 -4
  12. data/lib/berkshelf/chef_config_compat.rb +2 -1
  13. data/lib/berkshelf/chef_repo_universe.rb +6 -4
  14. data/lib/berkshelf/cli.rb +6 -6
  15. data/lib/berkshelf/commands/shelf.rb +1 -1
  16. data/lib/berkshelf/community_rest.rb +6 -6
  17. data/lib/berkshelf/config.rb +3 -3
  18. data/lib/berkshelf/cookbook_store.rb +2 -4
  19. data/lib/berkshelf/core_ext.rb +1 -1
  20. data/lib/berkshelf/core_ext/file_utils.rb +3 -3
  21. data/lib/berkshelf/dependency.rb +1 -1
  22. data/lib/berkshelf/downloader.rb +9 -6
  23. data/lib/berkshelf/errors.rb +5 -2
  24. data/lib/berkshelf/file_syncer.rb +7 -12
  25. data/lib/berkshelf/formatters/human.rb +1 -1
  26. data/lib/berkshelf/formatters/json.rb +4 -4
  27. data/lib/berkshelf/installer.rb +1 -1
  28. data/lib/berkshelf/location.rb +3 -3
  29. data/lib/berkshelf/locations/git.rb +6 -12
  30. data/lib/berkshelf/lockfile.rb +14 -14
  31. data/lib/berkshelf/logger.rb +4 -2
  32. data/lib/berkshelf/mixin/git.rb +3 -3
  33. data/lib/berkshelf/packager.rb +5 -7
  34. data/lib/berkshelf/resolver.rb +1 -1
  35. data/lib/berkshelf/ridley_compat.rb +1 -1
  36. data/lib/berkshelf/shell.rb +2 -1
  37. data/lib/berkshelf/shell_out.rb +4 -3
  38. data/lib/berkshelf/source.rb +8 -7
  39. data/lib/berkshelf/source_uri.rb +1 -1
  40. data/lib/berkshelf/ssl_policies.rb +5 -9
  41. data/lib/berkshelf/thor.rb +1 -1
  42. data/lib/berkshelf/thor_ext.rb +1 -1
  43. data/lib/berkshelf/uploader.rb +11 -9
  44. data/lib/berkshelf/validator.rb +2 -8
  45. data/lib/berkshelf/version.rb +1 -1
  46. data/lib/berkshelf/visualizer.rb +3 -3
  47. data/spec/config/knife.rb +1 -1
  48. data/spec/spec_helper.rb +1 -1
  49. data/spec/support/chef_server.rb +2 -2
  50. data/spec/support/git.rb +18 -18
  51. data/spec/support/path_helpers.rb +4 -4
  52. data/spec/unit/berkshelf/berksfile_spec.rb +7 -7
  53. data/spec/unit/berkshelf/cli_spec.rb +1 -2
  54. data/spec/unit/berkshelf/community_rest_spec.rb +1 -1
  55. data/spec/unit/berkshelf/core_ext/file_utils_spec.rb +2 -2
  56. data/spec/unit/berkshelf/dependency_spec.rb +5 -5
  57. data/spec/unit/berkshelf/downloader_spec.rb +4 -8
  58. data/spec/unit/berkshelf/locations/base_spec.rb +1 -2
  59. data/spec/unit/berkshelf/locations/git_spec.rb +2 -5
  60. data/spec/unit/berkshelf/locations/path_spec.rb +1 -2
  61. data/spec/unit/berkshelf/lockfile_spec.rb +9 -18
  62. data/spec/unit/berkshelf/ridley_compat_spec.rb +2 -2
  63. data/spec/unit/berkshelf/source_spec.rb +30 -19
  64. data/spec/unit/berkshelf/ssl_policies_spec.rb +3 -6
  65. data/spec/unit/berkshelf/uploader_spec.rb +6 -10
  66. data/spec/unit/berkshelf/validator_spec.rb +0 -13
  67. metadata +39 -193
  68. data/.github/lock.yml +0 -1
  69. data/.gitignore +0 -30
  70. data/.rubocop.yml +0 -12
  71. data/.travis.yml +0 -73
  72. data/CHANGELOG.legacy.md +0 -307
  73. data/CHANGELOG.md +0 -1589
  74. data/CONTRIBUTING.md +0 -68
  75. data/Gemfile.lock +0 -292
  76. data/PLUGINS.md +0 -25
  77. data/README.md +0 -72
  78. data/Thorfile +0 -61
  79. data/appveyor.yml +0 -31
  80. data/docs/berkshelf_for_newcomers.md +0 -64
  81. data/features/artifactory.feature +0 -70
  82. data/features/berksfile.feature +0 -46
  83. data/features/commands/apply.feature +0 -41
  84. data/features/commands/contingent.feature +0 -47
  85. data/features/commands/info.feature +0 -141
  86. data/features/commands/install.feature +0 -646
  87. data/features/commands/list.feature +0 -78
  88. data/features/commands/outdated.feature +0 -176
  89. data/features/commands/package.feature +0 -17
  90. data/features/commands/search.feature +0 -17
  91. data/features/commands/shelf/list.feature +0 -32
  92. data/features/commands/shelf/show.feature +0 -113
  93. data/features/commands/shelf/uninstall.feature +0 -96
  94. data/features/commands/show.feature +0 -83
  95. data/features/commands/update.feature +0 -142
  96. data/features/commands/upload.feature +0 -499
  97. data/features/commands/vendor.feature +0 -154
  98. data/features/commands/verify.feature +0 -29
  99. data/features/commands/viz.feature +0 -66
  100. data/features/community_site.feature +0 -37
  101. data/features/help.feature +0 -11
  102. data/features/json_formatter.feature +0 -158
  103. data/features/lifecycle.feature +0 -378
  104. data/features/lockfile.feature +0 -378
  105. data/features/step_definitions/berksfile_steps.rb +0 -54
  106. data/features/step_definitions/chef/config_steps.rb +0 -12
  107. data/features/step_definitions/chef_server_steps.rb +0 -60
  108. data/features/step_definitions/cli_steps.rb +0 -18
  109. data/features/step_definitions/config_steps.rb +0 -46
  110. data/features/step_definitions/environment_steps.rb +0 -11
  111. data/features/step_definitions/filesystem_steps.rb +0 -286
  112. data/features/step_definitions/gem_steps.rb +0 -13
  113. data/features/step_definitions/json_steps.rb +0 -29
  114. data/features/step_definitions/utility_steps.rb +0 -11
  115. data/features/support/aruba.rb +0 -12
  116. data/features/support/env.rb +0 -77
  117. data/spec/fixtures/cookbooks/example_cookbook/.gitignore +0 -2
  118. data/spec/fixtures/cookbooks/example_cookbook/.kitchen.yml +0 -26
@@ -1,378 +0,0 @@
1
- #
2
- # The lifecycle feature contains a series of "long-running" lifecycle commands.
3
- # These tests do not fit into a single command as they are cross-cutting and
4
- # require more setup than a typical test.
5
- #
6
- # These tests are designed to mirror the real-world use cases for Berkshelf in
7
- # day-to-day work. It also contains a collection of previously known bugs to
8
- # prevent regressions.
9
- #
10
- Feature: Lifecycle commands
11
- Background:
12
- * the cookbook store has the cookbooks:
13
- | ekaf | 1.0.0 |
14
- | fake | 1.0.0 |
15
-
16
- Scenario: A trusted lockfile does not fetch the dependency index
17
- * I have a Berksfile pointing at the local Berkshelf API with:
18
- """
19
- cookbook 'fake', '1.0.0'
20
- """
21
- * I write to "Berksfile.lock" with:
22
- """
23
- DEPENDENCIES
24
- fake (= 1.0.0)
25
-
26
- GRAPH
27
- fake (1.0.0)
28
- """
29
- * I successfully run `berks install`
30
- * the output should not contain "Fetching cookbook index"
31
- * the output should contain "Using fake (1.0.0)"
32
-
33
- Scenario: An untrusted lockfile fetches the dependency index
34
- * I have a Berksfile pointing at the local Berkshelf API with:
35
- """
36
- cookbook 'fake', '1.0.0'
37
- """
38
- * I successfully run `berks install`
39
- * the output should contain "Fetching cookbook index"
40
- * the file "Berksfile.lock" should contain:
41
- """
42
- DEPENDENCIES
43
- fake (= 1.0.0)
44
-
45
- GRAPH
46
- fake (1.0.0)
47
- """
48
- * I append to "Berksfile" with:
49
- """
50
-
51
- cookbook 'ekaf', '1.0.0'
52
- """
53
- * I successfully run `berks install`
54
- * the file "Berksfile.lock" should contain:
55
- """
56
- DEPENDENCIES
57
- ekaf (= 1.0.0)
58
- fake (= 1.0.0)
59
-
60
- GRAPH
61
- ekaf (1.0.0)
62
- fake (1.0.0)
63
- """
64
- * the output should contain "Using ekaf (1.0.0)"
65
- * the output should contain "Using fake (1.0.0)"
66
-
67
- Scenario: Removing a direct dependency
68
- * I have a Berksfile pointing at the local Berkshelf API with:
69
- """
70
- cookbook 'fake', '1.0.0'
71
- """
72
- * I write to "Berksfile.lock" with:
73
- """
74
- DEPENDENCIES
75
- ekaf (= 1.0.0)
76
- fake (= 1.0.0)
77
-
78
- GRAPH
79
- ekaf (1.0.0)
80
- fake (1.0.0)
81
- """
82
- * I successfully run `berks install`
83
- * the file "Berksfile.lock" should contain:
84
- """
85
- DEPENDENCIES
86
- fake (= 1.0.0)
87
-
88
- GRAPH
89
- fake (1.0.0)
90
- """
91
- * the output should not contain "Using ekaf (1.0.0)"
92
- * the output should contain "Using fake (1.0.0)"
93
-
94
- Scenario: A trusted lockfile with transitive dependencies does not fetch the dependency index
95
- * I have a Berksfile pointing at the local Berkshelf API with:
96
- """
97
- metadata
98
- """
99
- * I write to "metadata.rb" with:
100
- """
101
- name 'transitive'
102
- version '1.2.3'
103
- depends 'fake', '1.0.0'
104
- """
105
- * I write to "Berksfile.lock" with:
106
- """
107
- DEPENDENCIES
108
- transitive
109
- path: .
110
- metadata: true
111
-
112
- GRAPH
113
- fake (1.0.0)
114
- transitive (1.2.3)
115
- fake (= 1.0.0)
116
- """
117
- * I successfully run `berks install`
118
- * the output should not contain "Fetching cookbook index"
119
- * the output should contain "Using fake (1.0.0)"
120
- * the output should contain "Using transitive (1.2.3)"
121
-
122
- Scenario: An utrusted lockfile because of transitive dependencies fetches the dependency index
123
- * I have a Berksfile pointing at the local Berkshelf API with:
124
- """
125
- metadata
126
- """
127
- * I write to "metadata.rb" with:
128
- """
129
- name 'transitive'
130
- version '1.2.3'
131
- depends 'fake', '1.0.0'
132
- """
133
- * I successfully run `berks install`
134
- * the output should contain "Fetching cookbook index"
135
- * the file "Berksfile.lock" should contain:
136
- """
137
- DEPENDENCIES
138
- transitive
139
- path: .
140
- metadata: true
141
-
142
- GRAPH
143
- fake (1.0.0)
144
- transitive (1.2.3)
145
- fake (= 1.0.0)
146
- """
147
- * I append to "metadata.rb" with:
148
- """
149
-
150
- depends 'ekaf', '1.0.0'
151
- """
152
- * I successfully run `berks install`
153
- * the file "Berksfile.lock" should contain:
154
- """
155
- DEPENDENCIES
156
- transitive
157
- path: .
158
- metadata: true
159
-
160
- GRAPH
161
- ekaf (1.0.0)
162
- fake (1.0.0)
163
- transitive (1.2.3)
164
- ekaf (= 1.0.0)
165
- fake (= 1.0.0)
166
- """
167
- * the output should contain "Using ekaf (1.0.0)"
168
- * the output should contain "Using fake (1.0.0)"
169
- * the output should contain "Using transitive (1.2.3)"
170
-
171
- Scenario: Removing a transitive dependency
172
- * I have a Berksfile pointing at the local Berkshelf API with:
173
- """
174
- metadata
175
- """
176
- * I write to "metadata.rb" with:
177
- """
178
- name 'transitive'
179
- version '1.2.3'
180
- depends 'fake', '1.0.0'
181
- """
182
- * I write to "Berksfile.lock" with:
183
- """
184
- DEPENDENCIES
185
- transitive
186
- path: .
187
- metadata: true
188
-
189
- GRAPH
190
- ekaf (1.0.0)
191
- fake (1.0.0)
192
- transitive (1.2.3)
193
- ekaf (= 1.0.0)
194
- fake (= 1.0.0)
195
- """
196
- * I successfully run `berks install`
197
- * the file "Berksfile.lock" should contain:
198
- """
199
- DEPENDENCIES
200
- transitive
201
- path: .
202
- metadata: true
203
-
204
- GRAPH
205
- fake (1.0.0)
206
- transitive (1.2.3)
207
- fake (= 1.0.0)
208
- """
209
- * the output should not contain "Using ekaf (1.0.0)"
210
- * the output should contain "Using fake (1.0.0)"
211
-
212
- Scenario: Moving a transitive dependency to a direct dependency
213
- * I have a Berksfile pointing at the local Berkshelf API with:
214
- """
215
- metadata
216
- """
217
- * I write to "metadata.rb" with:
218
- """
219
- name 'transitive'
220
- version '1.2.3'
221
- depends 'fake', '1.0.0'
222
- """
223
- * I successfully run `berks install`
224
- * the file "Berksfile.lock" should contain:
225
- """
226
- DEPENDENCIES
227
- transitive
228
- path: .
229
- metadata: true
230
-
231
- GRAPH
232
- fake (1.0.0)
233
- transitive (1.2.3)
234
- fake (= 1.0.0)
235
- """
236
- * the output should not contain "Using ekaf (1.0.0)"
237
- * the output should contain "Using fake (1.0.0)"
238
- * I write to "fake/metadata.rb" with:
239
- """
240
- name 'fake'
241
- version '1.0.0'
242
- """
243
- * I have a Berksfile pointing at the local Berkshelf API with:
244
- """
245
- metadata
246
- cookbook 'fake', path: 'fake'
247
- """
248
- * I successfully run `berks install`
249
- * the file "Berksfile.lock" should contain:
250
- """
251
- DEPENDENCIES
252
- fake
253
- path: fake
254
- transitive
255
- path: .
256
- metadata: true
257
-
258
- GRAPH
259
- fake (1.0.0)
260
- transitive (1.2.3)
261
- fake (= 1.0.0)
262
- """
263
-
264
- Scenario: Moving a transitive dependency to a direct dependency and then removing it
265
- * I have a Berksfile pointing at the local Berkshelf API with:
266
- """
267
- metadata
268
- """
269
- * I write to "metadata.rb" with:
270
- """
271
- name 'transitive'
272
- version '1.2.3'
273
- depends 'fake'
274
- """
275
- * I successfully run `berks install`
276
- * I write to "fake/metadata.rb" with:
277
- """
278
- name 'fake'
279
- version '1.0.0'
280
- """
281
- * I have a Berksfile pointing at the local Berkshelf API with:
282
- """
283
- metadata
284
- cookbook 'fake', path: 'fake'
285
- """
286
- * I successfully run `berks install`
287
- * I have a Berksfile pointing at the local Berkshelf API with:
288
- """
289
- metadata
290
- """
291
- * I successfully run `berks install`
292
- * the file "Berksfile.lock" should contain:
293
- """
294
- DEPENDENCIES
295
- transitive
296
- path: .
297
- metadata: true
298
-
299
- GRAPH
300
- fake (1.0.0)
301
- transitive (1.2.3)
302
- fake (>= 0.0.0)
303
- """
304
-
305
- Scenario: Bumping the version of a local cookbook
306
- * I have a Berksfile pointing at the local Berkshelf API with:
307
- """
308
- metadata
309
- """
310
- * I write to "metadata.rb" with:
311
- """
312
- name 'fake'
313
- version '1.0.0'
314
- """
315
- * I successfully run `berks install`
316
- * the file "Berksfile.lock" should contain:
317
- """
318
- DEPENDENCIES
319
- fake
320
- path: .
321
- metadata: true
322
-
323
- GRAPH
324
- fake (1.0.0)
325
- """
326
- * I write to "metadata.rb" with:
327
- """
328
- name 'fake'
329
- version '1.0.1'
330
- """
331
- * I successfully run `berks install`
332
- * the file "Berksfile.lock" should contain:
333
- """
334
- DEPENDENCIES
335
- fake
336
- path: .
337
- metadata: true
338
-
339
- GRAPH
340
- fake (1.0.1)
341
- """
342
- * the output should contain "Using fake (1.0.1)"
343
-
344
- Scenario: Switching a dependency to a new location
345
- * I have a Berksfile pointing at the local Berkshelf API with:
346
- """
347
- cookbook 'fake'
348
- """
349
- * I write to "Berksfile.lock" with:
350
- """
351
- DEPENDENCIES
352
- fake
353
-
354
- GRAPH
355
- fake (1.0.0)
356
- """
357
- * I have a Berksfile pointing at the local Berkshelf API with:
358
- """
359
- cookbook 'fake', path: './fake'
360
- """
361
- * I write to "fake/metadata.rb" with:
362
-
363
- """
364
- name 'fake'
365
- version '2.0.0'
366
- """
367
- * I successfully run `berks install`
368
- * the file "Berksfile.lock" should contain:
369
- """
370
- DEPENDENCIES
371
- fake
372
- path: fake
373
-
374
- GRAPH
375
- fake (2.0.0)
376
- """
377
- * the output should not contain "Using fake (1.0.0)"
378
- * the output should contain "Using fake (2.0.0)"
@@ -1,378 +0,0 @@
1
- @api_server
2
- Feature: Creating and reading the Berkshelf lockfile
3
- Background:
4
- * the cookbook store has the cookbooks:
5
- | fake | 0.1.0 |
6
- | fake | 0.2.0 |
7
- | fake | 1.0.0 |
8
- * the cookbook store has the git cookbooks:
9
- | berkshelf-cookbook-fixture | 0.2.0 | 70a527e17d91f01f031204562460ad1c17f972ee |
10
- | berkshelf-cookbook-fixture | 1.0.0 | 919afa0c402089df23ebdf36637f12271b8a96b4 |
11
- | berkshelf-cookbook-fixture | 1.0.0 | a97b9447cbd41a5fe58eee2026e48ccb503bd3bc |
12
- | berkshelf-cookbook-fixture | 1.0.0 | 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a |
13
-
14
- Scenario: Writing the Berksfile.lock
15
- Given I have a Berksfile pointing at the local Berkshelf API with:
16
- """
17
- cookbook 'fake', '1.0.0'
18
- """
19
- When I successfully run `berks install`
20
- Then the file "Berksfile.lock" should contain:
21
- """
22
- DEPENDENCIES
23
- fake (= 1.0.0)
24
-
25
- GRAPH
26
- fake (1.0.0)
27
- """
28
-
29
- Scenario: Writing the Berksfile.lock when a 2.0 lockfile is present
30
- Given I have a Berksfile pointing at the local Berkshelf API with:
31
- """
32
- cookbook 'fake', '1.0.0'
33
- """
34
- And I write to "Berksfile.lock" with:
35
- """
36
- {
37
- "sources": {
38
- "fake": {
39
- "locked_version": "1.0.0"
40
- }
41
- }
42
- }
43
- """
44
- When I successfully run `berks install`
45
- Then the output should contain:
46
- """
47
- It looks like you are using an older version of the lockfile.
48
- """
49
- And the file "Berksfile.lock" should contain:
50
- """
51
- DEPENDENCIES
52
- fake (= 1.0.0)
53
-
54
- GRAPH
55
- fake (1.0.0)
56
- """
57
-
58
- Scenario: Reading the Berksfile.lock when it contains an invalid path location
59
- Given I have a Berksfile pointing at the local Berkshelf API with:
60
- """
61
- cookbook 'fake'
62
- """
63
- And I write to "Berksfile.lock" with:
64
- """
65
- DEPENDENCIES
66
- non-existent (~> 0.1)
67
- path: /this/path/does/not/exist
68
- """
69
- When I successfully run `berks install`
70
- And the file "Berksfile.lock" should contain:
71
- """
72
- DEPENDENCIES
73
- fake
74
-
75
- GRAPH
76
- fake (1.0.0)
77
- """
78
-
79
- Scenario: Installing a cookbook with dependencies
80
- Given the cookbook store has the cookbooks:
81
- | dep | 1.0.0 |
82
- And the cookbook store contains a cookbook "fake" "1.0.0" with dependencies:
83
- | dep | ~> 1.0.0 |
84
- And I have a Berksfile pointing at the local Berkshelf API with:
85
- """
86
- cookbook 'fake', '1.0.0'
87
- """
88
- When I successfully run `berks install`
89
- Then the file "Berksfile.lock" should contain:
90
- """
91
- DEPENDENCIES
92
- fake (= 1.0.0)
93
-
94
- GRAPH
95
- dep (1.0.0)
96
- fake (1.0.0)
97
- dep (~> 1.0.0)
98
- """
99
-
100
- Scenario: Writing the Berksfile.lock with a pessimistic lock
101
- And I have a Berksfile pointing at the local Berkshelf API with:
102
- """
103
- cookbook 'fake', '~> 1.0.0'
104
- """
105
- And I write to "Berksfile.lock" with:
106
- """
107
- DEPENDENCIES
108
- fake (~> 1.0.0)
109
-
110
- GRAPH
111
- fake (1.0.0)
112
- """
113
- When I successfully run `berks install`
114
- Then the file "Berksfile.lock" should contain:
115
- """
116
- DEPENDENCIES
117
- fake (~> 1.0.0)
118
-
119
- GRAPH
120
- fake (1.0.0)
121
- """
122
-
123
- Scenario: Updating with a Berksfile.lock with pessimistic lock
124
- Given I have a Berksfile pointing at the local Berkshelf API with:
125
- """
126
- cookbook 'fake', '~> 0.1'
127
- """
128
- And I write to "Berksfile.lock" with:
129
- """
130
- DEPENDENCIES
131
- fake (~> 0.1)
132
-
133
- GRAPH
134
- fake (0.1.0)
135
- """
136
- When I successfully run `berks update fake`
137
- Then the file "Berksfile.lock" should contain:
138
- """
139
- DEPENDENCIES
140
- fake (~> 0.1)
141
-
142
- GRAPH
143
- fake (0.2.0)
144
- """
145
-
146
- Scenario: Updating with a Berksfile.lock with hard lock
147
- And I have a Berksfile pointing at the local Berkshelf API with:
148
- """
149
- cookbook 'fake', '0.1.0'
150
- """
151
- And I write to "Berksfile.lock" with:
152
- """
153
- DEPENDENCIES
154
- fake (= 0.1.0)
155
-
156
- GRAPH
157
- fake (0.1.0)
158
- """
159
- When I successfully run `berks update fake`
160
- Then the file "Berksfile.lock" should contain:
161
- """
162
- DEPENDENCIES
163
- fake (= 0.1.0)
164
-
165
- GRAPH
166
- fake (0.1.0)
167
- """
168
-
169
- Scenario: Updating a Berksfile.lock with a git location
170
- Given I have a Berksfile pointing at the local Berkshelf API with:
171
- """
172
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', ref: '919afa0c4'
173
- """
174
- When I successfully run `berks install`
175
- Then the file "Berksfile.lock" should contain:
176
- """
177
- DEPENDENCIES
178
- berkshelf-cookbook-fixture
179
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
180
- revision: 919afa0c402089df23ebdf36637f12271b8a96b4
181
- ref: 919afa0
182
-
183
- GRAPH
184
- berkshelf-cookbook-fixture (1.0.0)
185
- """
186
-
187
- Scenario: Updating a Berksfile.lock with a git location and a branch
188
- Given I have a Berksfile pointing at the local Berkshelf API with:
189
- """
190
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', branch: 'master'
191
- """
192
- When I successfully run `berks install`
193
- Then the file "Berksfile.lock" should contain:
194
- """
195
- DEPENDENCIES
196
- berkshelf-cookbook-fixture
197
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
198
- revision: a97b9447cbd41a5fe58eee2026e48ccb503bd3bc
199
- branch: master
200
-
201
- GRAPH
202
- berkshelf-cookbook-fixture (1.0.0)
203
- """
204
-
205
- Scenario: Updating a Berksfile.lock with a git location and a tag
206
- Given I have a Berksfile pointing at the local Berkshelf API with:
207
- """
208
- cookbook 'berkshelf-cookbook-fixture', git: 'git://github.com/RiotGames/berkshelf-cookbook-fixture.git', tag: 'v0.2.0'
209
- """
210
- When I successfully run `berks install`
211
- Then the file "Berksfile.lock" should contain:
212
- """
213
- DEPENDENCIES
214
- berkshelf-cookbook-fixture
215
- git: git://github.com/RiotGames/berkshelf-cookbook-fixture.git
216
- revision: 70a527e17d91f01f031204562460ad1c17f972ee
217
- tag: v0.2.0
218
-
219
- GRAPH
220
- berkshelf-cookbook-fixture (0.2.0)
221
- """
222
-
223
- Scenario: Updating a Berksfile.lock with a GitHub location
224
- Given I have a Berksfile pointing at the local Berkshelf API with:
225
- """
226
- cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', ref: '919afa0c4'
227
- """
228
- When I successfully run `berks install`
229
- Then the file "Berksfile.lock" should contain:
230
- """
231
- DEPENDENCIES
232
- berkshelf-cookbook-fixture
233
- git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
234
- revision: 919afa0c402089df23ebdf36637f12271b8a96b4
235
- ref: 919afa0
236
-
237
- GRAPH
238
- berkshelf-cookbook-fixture (1.0.0)
239
- """
240
-
241
- Scenario: Updating a Berksfile.lock when a git location with :rel
242
- Given I have a Berksfile pointing at the local Berkshelf API with:
243
- """
244
- cookbook 'berkshelf-cookbook-fixture', github: 'RiotGames/berkshelf-cookbook-fixture', branch: 'rel', rel: 'cookbooks/berkshelf-cookbook-fixture'
245
- """
246
- When I successfully run `berks install`
247
- Then the file "Berksfile.lock" should contain:
248
- """
249
- DEPENDENCIES
250
- berkshelf-cookbook-fixture
251
- git: https://github.com/RiotGames/berkshelf-cookbook-fixture.git
252
- revision: 93f5768b7d14df45e10d16c8bf6fe98ba3ff809a
253
- branch: rel
254
- rel: cookbooks/berkshelf-cookbook-fixture
255
-
256
- GRAPH
257
- berkshelf-cookbook-fixture (1.0.0)
258
- """
259
-
260
- Scenario: Updating a Berksfile.lock with a path location
261
- Given a cookbook named "fake"
262
- And I have a Berksfile pointing at the local Berkshelf API with:
263
- """
264
- cookbook 'fake', path: './fake'
265
- """
266
- When I successfully run `berks install`
267
- Then the file "Berksfile.lock" should contain:
268
- """
269
- DEPENDENCIES
270
- fake
271
- path: fake
272
-
273
- GRAPH
274
- fake (0.0.0)
275
- """
276
-
277
- Scenario: Installing a Berksfile with a metadata location
278
- Given a cookbook named "fake"
279
- And I cd to "fake"
280
- And I have a Berksfile pointing at the local Berkshelf API with:
281
- """
282
- metadata
283
- """
284
- When I successfully run `berks install`
285
- Then the file "Berksfile.lock" should contain:
286
- """
287
- DEPENDENCIES
288
- fake
289
- path: .
290
- metadata: true
291
-
292
- GRAPH
293
- fake (0.0.0)
294
- """
295
-
296
- Scenario: Installing a Berksfile with a locked metadata location
297
- Given a cookbook named "fake"
298
- And I cd to "fake"
299
- And I have a Berksfile pointing at the local Berkshelf API with:
300
- """
301
- metadata
302
- """
303
- And I write to "Berksfile.lock" with:
304
- """
305
- DEPENDENCIES
306
- fake
307
- path: .
308
- metadata: true
309
-
310
- GRAPH
311
- fake (0.0.0)
312
- """
313
- When I successfully run `berks install`
314
- Then the file "Berksfile.lock" should contain:
315
- """
316
- DEPENDENCIES
317
- fake
318
- path: .
319
- metadata: true
320
-
321
- GRAPH
322
- fake (0.0.0)
323
- """
324
-
325
- Scenario: Installing when the locked version is no longer satisfied
326
- Given I have a Berksfile pointing at the local Berkshelf API with:
327
- """
328
- cookbook 'fake', '~> 1.3.0'
329
- """
330
- And I write to "Berksfile.lock" with:
331
- """
332
- DEPENDENCIES
333
- fake (~> 1.3.0)
334
-
335
- GRAPH
336
- fake (1.0.0)
337
- """
338
- When I run `berks install`
339
- Then the output should contain:
340
- """
341
- Berkshelf could not find compatible versions for cookbook 'fake':
342
- In Berksfile:
343
- fake (~> 1.3.0)
344
-
345
- In Berksfile.lock:
346
- fake (1.0.0)
347
-
348
- Try running `berks update fake`, which will try to find 'fake' matching '~> 1.3.0'
349
- """
350
- And the exit status should be "OutdatedDependency"
351
-
352
- Scenario: Installing when the Lockfile is empty
353
- Given I have a Berksfile pointing at the local Berkshelf API with:
354
- """
355
- cookbook 'fake', '1.0.0'
356
- """
357
- And an empty file named "Berksfile.lock"
358
- When I successfully run `berks install`
359
- Then the output should contain:
360
- """
361
- Using fake (1.0.0)
362
- """
363
-
364
- Scenario: Installing when the Lockfile is in a bad state
365
- Given I have a Berksfile pointing at the local Berkshelf API with:
366
- """
367
- cookbook 'fake', '1.0.0'
368
- """
369
- Given I write to "Berksfile.lock" with:
370
- """
371
- this is totally not valid
372
- """
373
- When I run `berks install`
374
- Then the output should contain:
375
- """
376
- Error reading the Berkshelf lockfile:
377
- """
378
- And the exit status should be "LockfileParserError"