vendorificator 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +5 -2
- data/Gemfile +0 -1
- data/README.md +9 -0
- data/Rakefile +7 -1
- data/features/chef_cookbook.feature +4 -6
- data/features/deprecated.feature +4 -4
- data/features/git.feature +41 -2
- data/features/needed.feature +8 -7
- data/features/smoke.feature +7 -5
- data/features/status.feature +15 -15
- data/features/step_definitions/aruba_ext.rb +11 -0
- data/features/step_definitions/basic.rb +16 -43
- data/features/step_definitions/git.rb +11 -11
- data/features/step_definitions/vendorificator.rb +4 -6
- data/features/support/aruba_ext.rb +23 -0
- data/features/support/env.rb +13 -20
- data/features/support/minigit.rb +37 -0
- data/features/tarball.feature +7 -7
- data/features/tarball_edit.feature +1 -1
- data/features/vendor.feature +2 -2
- data/lib/vendorificator/cli.rb +36 -61
- data/lib/vendorificator/config.rb +5 -42
- data/lib/vendorificator/environment.rb +111 -0
- data/lib/vendorificator/hooks/chef_cookbook.rb +59 -23
- data/lib/vendorificator/vendor/archive.rb +2 -2
- data/lib/vendorificator/vendor/chef_cookbook.rb +2 -2
- data/lib/vendorificator/vendor/download.rb +44 -0
- data/lib/vendorificator/vendor/git.rb +9 -11
- data/lib/vendorificator/vendor.rb +105 -48
- data/lib/vendorificator/version.rb +1 -1
- data/lib/vendorificator.rb +2 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/vendorificator/vendor_spec.rb +15 -7
- data/vendorificator.gemspec +4 -4
- metadata +24 -21
- data/features/support/world_git.rb +0 -40
- data/features/support/world_runs.rb +0 -93
- data/lib/vendorificator/repo.rb +0 -69
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -129,6 +129,15 @@ vendor 'generated', :version => '0.23' do |mod|
|
|
129
129
|
end
|
130
130
|
```
|
131
131
|
|
132
|
+
#### download
|
133
|
+
|
134
|
+
Downloads a single file:
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
download 'socks.el', :url => 'http://cvs.savannah.gnu.org/viewvc/*checkout*/w3/lisp/socks.el?root=w3&revision=HEAD'
|
138
|
+
download 'http://mumble.net/~campbell/emacs/paredit.el'
|
139
|
+
```
|
140
|
+
|
132
141
|
#### archive
|
133
142
|
|
134
143
|
Archive takes a tar.gz, tar.bz2, or zip file, downloads it, and
|
data/Rakefile
CHANGED
@@ -18,7 +18,9 @@ begin
|
|
18
18
|
require 'cucumber/rake/task'
|
19
19
|
|
20
20
|
desc 'Run Cucumber features'
|
21
|
-
Cucumber::Rake::Task.new(:features)
|
21
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
22
|
+
t.fork = false
|
23
|
+
end
|
22
24
|
rescue LoadError
|
23
25
|
desc 'Cucumber rake task not available'
|
24
26
|
task :features do
|
@@ -32,4 +34,8 @@ Rake::TestTask.new :spec do |task|
|
|
32
34
|
task.test_files = FileList['spec/**/*_spec.rb']
|
33
35
|
end
|
34
36
|
|
37
|
+
# https://github.com/jruby/jruby/issues/405
|
38
|
+
mkdir_p 'tmp'
|
39
|
+
ENV['TMPDIR'] ||= File.join(Dir.pwd, 'tmp')
|
40
|
+
|
35
41
|
task :default => [:spec, :features]
|
@@ -1,13 +1,11 @@
|
|
1
1
|
Feature: Chef cookbooks from Opscode Community website
|
2
2
|
|
3
3
|
Scenario: A single cookbook, without dependencies
|
4
|
-
|
5
|
-
Scenario: Version & checksum
|
6
4
|
Given a repository with following Vendorfile:
|
7
5
|
"""ruby
|
8
6
|
chef_cookbook 'apt'
|
9
7
|
"""
|
10
|
-
When I run
|
8
|
+
When I successfully run `vendor sync`
|
11
9
|
Then following has been conjured:
|
12
10
|
| Name | cookbooks/apt |
|
13
11
|
| With file | metadata.rb |
|
@@ -17,7 +15,7 @@ Scenario: Dependency hook
|
|
17
15
|
"""ruby
|
18
16
|
chef_cookbook 'memcached'
|
19
17
|
"""
|
20
|
-
When I run
|
18
|
+
When I successfully run `vendor sync`
|
21
19
|
Then following has been conjured:
|
22
20
|
| Name | cookbooks/memcached | cookbooks/runit |
|
23
21
|
| With file | metadata.rb | metadata.rb |
|
@@ -28,7 +26,7 @@ Scenario: Ignored dependency
|
|
28
26
|
chef_cookbook_ignore_dependencies ['runit']
|
29
27
|
chef_cookbook 'memcached'
|
30
28
|
"""
|
31
|
-
When I run
|
29
|
+
When I successfully run `vendor sync`
|
32
30
|
Then following has been conjured:
|
33
31
|
| Name | cookbooks/memcached |
|
34
32
|
| With file | metadata.rb |
|
@@ -42,7 +40,7 @@ Scenario: Ignored all dependencies
|
|
42
40
|
chef_cookbook_ignore_dependencies true
|
43
41
|
chef_cookbook 'chef-server'
|
44
42
|
"""
|
45
|
-
When I run
|
43
|
+
When I successfully run `vendor sync`
|
46
44
|
Then following has been conjured:
|
47
45
|
| Name | cookbooks/chef-server |
|
48
46
|
| With file | metadata.rb |
|
data/features/deprecated.feature
CHANGED
@@ -9,9 +9,9 @@ Background:
|
|
9
9
|
"""
|
10
10
|
|
11
11
|
Scenario: `vendorify` command prints a deprecation warning
|
12
|
-
When I run
|
13
|
-
Then
|
12
|
+
When I successfully run `vendorify`
|
13
|
+
Then the output should contain "DEPRECATED"
|
14
14
|
|
15
15
|
Scenario: `vendor` command doesn't print a deprecation warning
|
16
|
-
When I run
|
17
|
-
Then
|
16
|
+
When I successfully run `vendor`
|
17
|
+
Then the output should not contain "DEPRECATED"
|
data/features/git.feature
CHANGED
@@ -1,12 +1,51 @@
|
|
1
1
|
Feature: Git-based vendor module
|
2
2
|
|
3
|
-
Scenario:
|
3
|
+
Scenario: Vendorificating a git repo
|
4
4
|
Given a repository with following Vendorfile:
|
5
5
|
"""ruby
|
6
6
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo"
|
7
7
|
"""
|
8
|
-
When I run
|
8
|
+
When I successfully run `vendor sync`
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | testrepo |
|
11
11
|
| Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
|
12
12
|
| With file | test/alias.c |
|
13
|
+
|
14
|
+
Scenario: Vendorificating a subdirectory from a git repo
|
15
|
+
Given a repository with following Vendorfile:
|
16
|
+
"""ruby
|
17
|
+
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
18
|
+
:subdirectory => 'test'
|
19
|
+
"""
|
20
|
+
When I successfully run `vendor sync`
|
21
|
+
Then following has been conjured:
|
22
|
+
| Name | testrepo |
|
23
|
+
| Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
|
24
|
+
| With file | alias.c |
|
25
|
+
| Without file | test/alias.c |
|
26
|
+
|
27
|
+
Scenario: Vendorificating a certain branch from a git repo
|
28
|
+
Given a repository with following Vendorfile:
|
29
|
+
"""ruby
|
30
|
+
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
31
|
+
:branch => 'topic/pink'
|
32
|
+
"""
|
33
|
+
When I successfully run `vendor sync`
|
34
|
+
Then following has been conjured:
|
35
|
+
| Name | testrepo |
|
36
|
+
| Version | ecbfa229ba5f11c05b18bcc4f7c32b8f25d63f8c |
|
37
|
+
| With file | README.md |
|
38
|
+
|
39
|
+
Scenario: Vendorificating a certain revision from a git repo
|
40
|
+
Given a repository with following Vendorfile:
|
41
|
+
"""ruby
|
42
|
+
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
43
|
+
:revision => '6ff1be'
|
44
|
+
"""
|
45
|
+
When I successfully run `vendor sync`
|
46
|
+
Then following has been conjured:
|
47
|
+
| Name | testrepo |
|
48
|
+
| Version | 6ff1be9c3819c93a2f41e0ddc09f252fcf154f34 |
|
49
|
+
| With file | alias.c |
|
50
|
+
| Without file | test/alias.c |
|
51
|
+
|
data/features/needed.feature
CHANGED
@@ -6,11 +6,12 @@ Scenario: already downloaded tarball
|
|
6
6
|
archive :testrepo, :version => '0.1',
|
7
7
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
8
8
|
"""
|
9
|
-
When I run
|
9
|
+
When I successfully run `vendor sync`
|
10
10
|
Then I'm on "master" branch
|
11
|
-
And
|
12
|
-
And
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
And
|
11
|
+
And the last output should match /module\s+testrepo/
|
12
|
+
And the last output should match "testrepo-0.1.tar.gz"
|
13
|
+
|
14
|
+
When I successfully run `vendor sync`
|
15
|
+
Then the last output should match /module\s+testrepo/
|
16
|
+
And the last output should match /up to date\s+testrepo/
|
17
|
+
And the last output should not match "testrepo-0.1.tar.gz"
|
data/features/smoke.feature
CHANGED
@@ -4,11 +4,13 @@ Feature: smoke test of the test suite
|
|
4
4
|
I want to make sure that test environment itself does not emit smoke.
|
5
5
|
|
6
6
|
Scenario: The default environment
|
7
|
-
Given
|
8
|
-
|
9
|
-
|
7
|
+
Given a repository with following Vendorfile:
|
8
|
+
"""
|
9
|
+
"""
|
10
|
+
Then a file named "README" should exist
|
11
|
+
And a 0 byte file named "Vendorfile" should exist
|
10
12
|
And git repository is clean
|
11
|
-
And git history has
|
13
|
+
And git history has 1 commit
|
12
14
|
And I'm on "master" branch
|
13
15
|
And no other branch exists
|
14
|
-
|
16
|
+
|
data/features/status.feature
CHANGED
@@ -12,16 +12,16 @@ Background:
|
|
12
12
|
"""
|
13
13
|
|
14
14
|
Scenario: status new module
|
15
|
-
When I run
|
16
|
-
Then
|
15
|
+
When I successfully run `vendor status`
|
16
|
+
Then the last output should match /new\s+generated\/0.23/
|
17
17
|
|
18
18
|
Scenario: status up-to-date module
|
19
|
-
When I run
|
20
|
-
And I run
|
21
|
-
Then
|
19
|
+
When I successfully run `vendor sync`
|
20
|
+
And I successfully run `vendor status`
|
21
|
+
Then the last output should match /up to date\s+generated\/0.23/
|
22
22
|
|
23
23
|
Scenario: status outdated modules
|
24
|
-
When I run
|
24
|
+
When I successfully run `vendor sync`
|
25
25
|
And I change Vendorfile to:
|
26
26
|
"""ruby
|
27
27
|
vendor 'generated', :version => '0.42' do |v|
|
@@ -29,8 +29,8 @@ Scenario: status outdated modules
|
|
29
29
|
File.open('VERSION', 'w') { |f| f.puts v.version }
|
30
30
|
end
|
31
31
|
"""
|
32
|
-
And I run
|
33
|
-
Then
|
32
|
+
And I successfully run `vendor status`
|
33
|
+
Then the last output should match /outdated\s+generated\/0.42/
|
34
34
|
|
35
35
|
Scenario: Module's dependencies are statused if they are known
|
36
36
|
When I change Vendorfile to:
|
@@ -38,10 +38,10 @@ Scenario: Module's dependencies are statused if they are known
|
|
38
38
|
require 'vendorificator/vendor/chef_cookbook'
|
39
39
|
chef_cookbook 'memcached'
|
40
40
|
"""
|
41
|
-
And I run
|
42
|
-
Then
|
43
|
-
And
|
44
|
-
When I run
|
45
|
-
And I run
|
46
|
-
Then
|
47
|
-
And
|
41
|
+
And I successfully run `vendor status`
|
42
|
+
Then the last output should match /new\s+memcached/
|
43
|
+
And the last output should not match "runit"
|
44
|
+
When I successfully run `vendor sync`
|
45
|
+
And I successfully run `vendor status`
|
46
|
+
Then the last output should match /up to date\s+memcached/
|
47
|
+
And the last output should match /up to date\s+runit/
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Then /^the last output should match (#{PATTERN})$/ do |expected|
|
2
|
+
assert { last_output =~ expected }
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^the last output should not match (#{PATTERN})$/ do |expected|
|
6
|
+
deny { last_output =~ expected }
|
7
|
+
end
|
8
|
+
|
9
|
+
Then /^it should fail$/ do
|
10
|
+
deny { last_exit_status == 0 }
|
11
|
+
end
|
@@ -6,47 +6,20 @@ When /^nothing happens$/ do
|
|
6
6
|
nil # NOP
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
Given /^a repository with following Vendorfile:$/ do |string|
|
26
|
-
commit_file('Vendorfile', string)
|
27
|
-
end
|
28
|
-
|
29
|
-
When /^I change Vendorfile to:$/ do |string|
|
30
|
-
commit_file('Vendorfile', string, "Updated Vendorfile")
|
31
|
-
end
|
32
|
-
|
33
|
-
When /^I try to run "(.*?)"$/ do |command_string|
|
34
|
-
run command_string
|
35
|
-
end
|
36
|
-
|
37
|
-
When /^I run "(.*?)"$/ do |command_string|
|
38
|
-
step "I try to run \"#{command_string}\""
|
39
|
-
assert { command_succeeded }
|
40
|
-
end
|
41
|
-
|
42
|
-
Then /the command has failed/ do
|
43
|
-
deny { command_succeeded(false) }
|
44
|
-
end
|
45
|
-
|
46
|
-
Then /^command (output|stdout|stderr) includes (#{PATTERN})$/ do |stream, pat|
|
47
|
-
assert { command_output(stream) =~ pat }
|
48
|
-
end
|
49
|
-
|
50
|
-
Then /^command (output|stdout|stderr) does not include (#{PATTERN})$/ do |stream, pat|
|
51
|
-
deny { command_output(stream) =~ pat }
|
9
|
+
Given /^a repository with following Vendorfile:$/ do |vendorfile_contents|
|
10
|
+
create_dir 'working-repository'
|
11
|
+
cd 'working-repository'
|
12
|
+
run_simple 'git init'
|
13
|
+
# Configure Git username & email to unclutter console output
|
14
|
+
run_simple 'git config user.name Cucumber'
|
15
|
+
run_simple 'git config user.email cucumber@`hostname --fqdn`'
|
16
|
+
write_file('README', 'Lorem ipsum dolor sit amet')
|
17
|
+
write_file('Vendorfile', vendorfile_contents)
|
18
|
+
run_simple 'git add .'
|
19
|
+
run_simple 'git commit -m "New repo"'
|
20
|
+
end
|
21
|
+
|
22
|
+
When /^I change Vendorfile to:$/ do |vendorfile_contents|
|
23
|
+
write_file('Vendorfile', vendorfile_contents)
|
24
|
+
run_simple 'git commit -m "Updated Vendorfile" Vendorfile'
|
52
25
|
end
|
@@ -1,39 +1,39 @@
|
|
1
1
|
Then /^git repository is clean$/ do
|
2
|
-
assert {
|
2
|
+
assert { git.status(:porcelain => true) == '' }
|
3
3
|
end
|
4
4
|
|
5
|
-
Then /^git history has
|
6
|
-
assert { git.
|
5
|
+
Then /^git history has (\d+) commit(?:s)?$/ do |ncommits|
|
6
|
+
assert { git.rev_list(:all => true).lines.count == ncommits.to_i }
|
7
7
|
end
|
8
8
|
|
9
9
|
Then /^I\'m on "(.*?)" branch$/ do |expected_branch|
|
10
|
-
assert {
|
10
|
+
assert { git.rev_parse({:abbrev_ref => true}, 'HEAD').strip == expected_branch }
|
11
11
|
end
|
12
12
|
|
13
13
|
Then /^no other branch exists$/ do
|
14
|
-
assert {
|
14
|
+
assert { git.branch.lines.count == 1 }
|
15
15
|
end
|
16
16
|
|
17
17
|
Then /^branch "(.*?)" exists$/ do |branch_name|
|
18
|
-
assert {
|
18
|
+
assert { git.heads.include?(branch_name) }
|
19
19
|
end
|
20
20
|
|
21
21
|
Then /^branch "(.*?)" does not exist$/ do |branch_name|
|
22
|
-
deny {
|
22
|
+
deny { git.heads.include?(branch_name) }
|
23
23
|
end
|
24
24
|
|
25
25
|
Then /^tag "(.*?)" exists$/ do |tag_name|
|
26
|
-
assert { tags.include?(tag_name) }
|
26
|
+
assert { git.tags.include?(tag_name) }
|
27
27
|
end
|
28
28
|
|
29
29
|
Then /^tag "(.*?)" does not exist$/ do |tag_name|
|
30
|
-
deny { tags.include?(tag_name) }
|
30
|
+
deny { git.tags.include?(tag_name) }
|
31
31
|
end
|
32
32
|
|
33
33
|
Then /^tag matching (#{PATTERN}) exists$/ do |pat|
|
34
|
-
assert { tags.any?{|t| t=~pat} }
|
34
|
+
assert { git.tags.any? { |t| t =~ pat } }
|
35
35
|
end
|
36
36
|
|
37
37
|
Then /^tag matching (#{PATTERN}) does not exist$/ do |pat|
|
38
|
-
deny { tags.any?{|t| t=~pat} }
|
38
|
+
deny { git.tags.any? { |t| t =~ pat } }
|
39
39
|
end
|
@@ -13,15 +13,13 @@ Then /^(?:the )?following has( not)? been conjured:$/ do |not_p, table|
|
|
13
13
|
end
|
14
14
|
|
15
15
|
if mod['With file']
|
16
|
-
mod['With file'].lines.
|
17
|
-
|
18
|
-
end
|
16
|
+
check_file_presence(mod['With file'].lines.
|
17
|
+
map { |ln| File.join('vendor', mod['Name'], ln.strip) }, !not_p)
|
19
18
|
end
|
20
19
|
|
21
20
|
if mod['Without file']
|
22
|
-
mod['Without file'].lines.
|
23
|
-
|
24
|
-
end
|
21
|
+
check_file_presence(mod['Without file'].lines.
|
22
|
+
map { |ln| File.join('vendor', mod['Name'], ln.strip) }, !!not_p)
|
25
23
|
end
|
26
24
|
end
|
27
25
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Vendorificator
|
2
|
+
module TestSupport
|
3
|
+
module ArubaExt
|
4
|
+
def last_process
|
5
|
+
processes.last.last
|
6
|
+
end
|
7
|
+
|
8
|
+
def last_stdout
|
9
|
+
last_process.stdout(@aruba_keep_ansi)
|
10
|
+
end
|
11
|
+
|
12
|
+
def last_stderr
|
13
|
+
last_process.stderr(@aruba_keep_ansi)
|
14
|
+
end
|
15
|
+
|
16
|
+
def last_output
|
17
|
+
last_stdout + last_stderr
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
World(Vendorificator::TestSupport::ArubaExt)
|
data/features/support/env.rb
CHANGED
@@ -2,31 +2,24 @@ require 'fileutils'
|
|
2
2
|
require 'pathname'
|
3
3
|
require 'tmpdir'
|
4
4
|
|
5
|
+
require 'aruba/cucumber'
|
5
6
|
require 'wrong'
|
6
7
|
|
7
8
|
World(Wrong)
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
Before do
|
13
|
-
@orig_wd = Dir.getwd
|
14
|
-
@tmp_wd = Dir.mktmpdir(nil, 'tmp')
|
15
|
-
Dir.chdir(@tmp_wd)
|
10
|
+
ENV['FIXTURES_DIR'] = Pathname.new(__FILE__).
|
11
|
+
dirname.join('..', 'fixtures').realpath.to_s
|
16
12
|
|
17
|
-
|
13
|
+
# https://github.com/cucumber/aruba/pull/144
|
14
|
+
After do
|
15
|
+
processes.clear
|
18
16
|
end
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
@tmp_wd = nil
|
18
|
+
Before do
|
19
|
+
@aruba_timeout_seconds = case defined?(RUBY_ENGINE) && RUBY_ENGINE
|
20
|
+
when 'ruby', nil then 3
|
21
|
+
when 'jruby' then 20
|
22
|
+
when 'rbx' then 10
|
23
|
+
else 5
|
24
|
+
end
|
28
25
|
end
|
29
|
-
|
30
|
-
ENV['FIXTURES_DIR'] = Pathname.new(__FILE__).
|
31
|
-
dirname.join('..', 'fixtures').realpath.to_s
|
32
|
-
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'minigit'
|
2
|
+
|
3
|
+
module Vendorificator
|
4
|
+
module TestSupport
|
5
|
+
module MiniGit
|
6
|
+
module MiniGitExt
|
7
|
+
def refs(kind)
|
8
|
+
show_ref(kind => true).lines.
|
9
|
+
map { |ln| ln =~ /[0-9a-f]{40} refs\/#{kind}\// and $'.strip }.
|
10
|
+
compact
|
11
|
+
rescue ::MiniGit::GitError
|
12
|
+
[]
|
13
|
+
end
|
14
|
+
|
15
|
+
def heads
|
16
|
+
refs(:heads)
|
17
|
+
end
|
18
|
+
|
19
|
+
def tags
|
20
|
+
refs(:tags)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def git
|
25
|
+
@git ||= ::MiniGit::Capturing.new(current_dir)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class MiniGit
|
32
|
+
include Vendorificator::TestSupport::MiniGit::MiniGitExt
|
33
|
+
end
|
34
|
+
|
35
|
+
MiniGit.debug = true if ENV['DEBUG']
|
36
|
+
|
37
|
+
World(Vendorificator::TestSupport::MiniGit)
|
data/features/tarball.feature
CHANGED
@@ -5,7 +5,7 @@ Scenario: just URL as name
|
|
5
5
|
"""ruby
|
6
6
|
archive 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
7
7
|
"""
|
8
|
-
When I run
|
8
|
+
When I successfully run `vendor sync`
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | testrepo-0.1 |
|
11
11
|
| Version | testrepo-0.1.tar.gz |
|
@@ -17,7 +17,7 @@ Scenario: URL as keyword
|
|
17
17
|
archive :testrepo,
|
18
18
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
19
19
|
"""
|
20
|
-
When I run
|
20
|
+
When I successfully run `vendor sync`
|
21
21
|
Then following has been conjured:
|
22
22
|
| Name | testrepo |
|
23
23
|
| Version | testrepo-0.1.tar.gz |
|
@@ -31,7 +31,7 @@ Scenario: Version & checksum
|
|
31
31
|
:version => '0.1',
|
32
32
|
:checksum => 'ea207a896f929ffb3a1dfe128332d6134a18edab7c01b97bfb2b1c7eacebe0cb'
|
33
33
|
"""
|
34
|
-
When I run
|
34
|
+
When I successfully run `vendor sync`
|
35
35
|
Then following has been conjured:
|
36
36
|
| Name | testrepo |
|
37
37
|
| Version | 0.1 |
|
@@ -45,9 +45,9 @@ Scenario: Wrong checksum
|
|
45
45
|
:version => '0.1',
|
46
46
|
:checksum => 'incorrect'
|
47
47
|
"""
|
48
|
-
When I
|
49
|
-
Then
|
50
|
-
|
48
|
+
When I run `vendor sync`
|
49
|
+
Then it should fail
|
50
|
+
And following has not been conjured:
|
51
51
|
| Name | testrepo |
|
52
52
|
| With file | test/alias.c |
|
53
53
|
|
@@ -57,7 +57,7 @@ Scenario: Tarball without a root directory
|
|
57
57
|
archive :testrepo,
|
58
58
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1-noroot.tar.gz'
|
59
59
|
"""
|
60
|
-
When I run
|
60
|
+
When I successfully run `vendor sync`
|
61
61
|
Then following has been conjured:
|
62
62
|
| Name | testrepo |
|
63
63
|
| With file | test/alias.c |
|
data/features/vendor.feature
CHANGED
@@ -8,9 +8,9 @@ Scenario:
|
|
8
8
|
File.open('VERSION', 'w') { |f| f.puts v.version }
|
9
9
|
end
|
10
10
|
"""
|
11
|
-
When I run
|
11
|
+
When I successfully run `vendor sync`
|
12
12
|
Then the following has been conjured:
|
13
13
|
| Name | generated |
|
14
14
|
| Version | 0.23 |
|
15
15
|
| With file | README |
|
16
|
-
And file "vendor/generated/VERSION"
|
16
|
+
And the file "vendor/generated/VERSION" should contain "0.23"
|