bahia 0.1.0 → 0.2.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.
- data/.gemspec +2 -1
- data/CHANGELOG.rdoc +4 -0
- data/README.md +7 -3
- data/Rakefile +1 -1
- data/lib/bahia.rb +9 -3
- data/spec/bahia_spec.rb +76 -0
- data/spec/deps.rip +1 -0
- metadata +42 -22
data/.gemspec
CHANGED
@@ -11,7 +11,8 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "aruba for non-cucumber test frameworks"
|
12
12
|
s.description = "Bahia - where commandline acceptance tests are easy, the people are festive and onde nasceu capoeira. In other words, aruba for any non-cucumber test framework."
|
13
13
|
s.required_rubygems_version = ">= 1.3.6"
|
14
|
-
s.
|
14
|
+
s.add_development_dependency 'rspec', '~> 2.7.0'
|
15
|
+
s.files = Dir.glob(%w[{lib,spec}/**/*.rb bin/* [A-Z]*.{md,txt,rdoc} ext/**/*.{rb,c} **/deps.rip]) + %w{Rakefile .gemspec}
|
15
16
|
s.extra_rdoc_files = ["README.md", "LICENSE.txt"]
|
16
17
|
s.license = 'MIT'
|
17
18
|
end
|
data/CHANGELOG.rdoc
CHANGED
data/README.md
CHANGED
@@ -60,7 +60,11 @@ About
|
|
60
60
|
Bahia uses open3 and is dead simple - so simple that you probably should've read
|
61
61
|
the source instead of this readme. Ha!
|
62
62
|
|
63
|
-
|
64
|
-
|
63
|
+
Contributing
|
64
|
+
============
|
65
|
+
[See here](http://tagaholic.me/contributing.html)
|
65
66
|
|
66
|
-
|
67
|
+
Credits
|
68
|
+
=======
|
69
|
+
|
70
|
+
* @spicycode
|
data/Rakefile
CHANGED
data/lib/bahia.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'open3'
|
2
2
|
|
3
3
|
module Bahia
|
4
|
-
VERSION = '0.
|
4
|
+
VERSION = '0.2.0'
|
5
5
|
|
6
6
|
class DetectionError < StandardError
|
7
7
|
def initialize(name)
|
@@ -31,7 +31,13 @@ module Bahia
|
|
31
31
|
arr[0][/^([^:]+):\d+/] or raise DetectionError.new(:project_directory)
|
32
32
|
file = $1
|
33
33
|
raise DetectionError.new(:project_directory) unless File.exists?(file)
|
34
|
-
|
35
|
-
|
34
|
+
|
35
|
+
dir = File.dirname(file)
|
36
|
+
# Assume test directory called spec or test
|
37
|
+
until dir[%r{/(spec|test)$}]
|
38
|
+
raise DetectionError.new(:project_directory) if dir == '/'
|
39
|
+
dir = File.dirname(dir)
|
40
|
+
end
|
41
|
+
File.dirname dir
|
36
42
|
end
|
37
43
|
end
|
data/spec/bahia_spec.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'bahia'
|
2
|
+
require 'rspec'
|
3
|
+
|
4
|
+
describe Bahia do
|
5
|
+
let(:test_class) { Class.new }
|
6
|
+
|
7
|
+
before do
|
8
|
+
Bahia.command = Bahia.project_directory = Bahia.command_method = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def stub_directory(dir)
|
12
|
+
Bahia.should_receive(:caller).and_return(["#{dir}/helper.rb:5"])
|
13
|
+
File.should_receive(:exists?).and_return(true)
|
14
|
+
end
|
15
|
+
|
16
|
+
subject { test_class.send :include, Bahia }
|
17
|
+
|
18
|
+
context "fails to include and raises DetectionError" do
|
19
|
+
it "if directory not detected" do
|
20
|
+
Bahia.should_receive(:caller).and_return(["(eval)"])
|
21
|
+
msg = Bahia::DetectionError.new(:project_directory).message
|
22
|
+
expect { subject }.to raise_error(msg)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "if directory does not exist" do
|
26
|
+
Bahia.should_receive(:caller).and_return(["(irb):5"])
|
27
|
+
msg = Bahia::DetectionError.new(:project_directory).message
|
28
|
+
expect { subject }.to raise_error(msg)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "if test directory is not test or spec" do
|
32
|
+
stub_directory '/dir/my_test'
|
33
|
+
msg = Bahia::DetectionError.new(:project_directory).message
|
34
|
+
expect { subject }.to raise_error(msg)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "if command isn't detected" do
|
38
|
+
stub_directory '/dir/spec'
|
39
|
+
Dir.should_receive(:[]).with('/dir/bin/*').and_return([])
|
40
|
+
msg = Bahia::DetectionError.new(:command).message
|
41
|
+
expect { subject }.to raise_error(msg)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context "on successful inclusion" do
|
46
|
+
let(:executable) { '/dir/bin/blarg' }
|
47
|
+
|
48
|
+
before do
|
49
|
+
stub_directory '/dir/spec'
|
50
|
+
Dir.stub(:[]).with('/dir/bin/*').and_return([executable])
|
51
|
+
subject
|
52
|
+
end
|
53
|
+
|
54
|
+
it "sets project_directory" do
|
55
|
+
Bahia.project_directory.should == '/dir'
|
56
|
+
end
|
57
|
+
|
58
|
+
it "sets command" do
|
59
|
+
Bahia.command.should == executable
|
60
|
+
end
|
61
|
+
|
62
|
+
it "sets command_method" do
|
63
|
+
Bahia.command_method.should == 'blarg'
|
64
|
+
end
|
65
|
+
|
66
|
+
it "defines helper method named blarg" do
|
67
|
+
Bahia.instance_method(:blarg).should_not be_nil
|
68
|
+
end
|
69
|
+
|
70
|
+
it "helper method blarg calls Open3.capture with correct args" do
|
71
|
+
Open3.should_receive(:capture3).with(
|
72
|
+
{'RUBYLIB' => "/dir/lib:#{ENV['RUBYLIB']}"}, executable, 'arg1', 'arg2')
|
73
|
+
test_class.new.blarg('arg1 arg2')
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/spec/deps.rip
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rspec ~>2.7.0
|
metadata
CHANGED
@@ -1,54 +1,74 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: bahia
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Gabriel Horner
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
|
13
|
+
date: 2011-12-16 00:00:00 -05:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rspec
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 2.7.0
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
description: Bahia - where commandline acceptance tests are easy, the people are festive and onde nasceu capoeira. In other words, aruba for any non-cucumber test framework.
|
16
28
|
email: gabriel.horner@gmail.com
|
17
29
|
executables: []
|
30
|
+
|
18
31
|
extensions: []
|
19
|
-
|
32
|
+
|
33
|
+
extra_rdoc_files:
|
20
34
|
- README.md
|
21
35
|
- LICENSE.txt
|
22
|
-
files:
|
36
|
+
files:
|
23
37
|
- lib/bahia.rb
|
38
|
+
- spec/bahia_spec.rb
|
24
39
|
- README.md
|
25
40
|
- LICENSE.txt
|
26
41
|
- CHANGELOG.rdoc
|
42
|
+
- spec/deps.rip
|
27
43
|
- Rakefile
|
28
44
|
- .gemspec
|
45
|
+
has_rdoc: true
|
29
46
|
homepage: http://github.com/cldwalker/bahia
|
30
|
-
licenses:
|
47
|
+
licenses:
|
31
48
|
- MIT
|
32
49
|
post_install_message:
|
33
50
|
rdoc_options: []
|
34
|
-
|
51
|
+
|
52
|
+
require_paths:
|
35
53
|
- lib
|
36
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
55
|
none: false
|
38
|
-
requirements:
|
39
|
-
- -
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version:
|
42
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: "0"
|
60
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
61
|
none: false
|
44
|
-
requirements:
|
45
|
-
- -
|
46
|
-
- !ruby/object:Gem::Version
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
47
65
|
version: 1.3.6
|
48
66
|
requirements: []
|
67
|
+
|
49
68
|
rubyforge_project:
|
50
|
-
rubygems_version: 1.
|
69
|
+
rubygems_version: 1.6.2
|
51
70
|
signing_key:
|
52
71
|
specification_version: 3
|
53
72
|
summary: aruba for non-cucumber test frameworks
|
54
73
|
test_files: []
|
74
|
+
|