belly 0.3.4 → 0.3.5
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/VERSION +1 -1
- data/belly.gemspec +3 -3
- data/bin/belly +1 -1
- data/features/support/env.rb +3 -0
- data/features/support/fake_hub.rb +5 -14
- data/lib/belly/cli.rb +1 -1
- data/lib/belly/cli/rerun.rb +15 -0
- data/lib/belly/client/hub_proxy.rb +41 -16
- data/lib/belly/rerun.rb +13 -0
- metadata +5 -5
- data/lib/belly/cli/rerun_cucumber.rb +0 -15
- data/lib/belly/cucumber_rerun.rb +0 -11
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/belly.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{belly}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Wynne"]
|
@@ -40,15 +40,15 @@ Gem::Specification.new do |s|
|
|
40
40
|
"lib/belly.rb",
|
41
41
|
"lib/belly/cli.rb",
|
42
42
|
"lib/belly/cli/init.rb",
|
43
|
-
"lib/belly/cli/
|
43
|
+
"lib/belly/cli/rerun.rb",
|
44
44
|
"lib/belly/client.rb",
|
45
45
|
"lib/belly/client/config.rb",
|
46
46
|
"lib/belly/client/default_config.rb",
|
47
47
|
"lib/belly/client/fakeweb_hack.rb",
|
48
48
|
"lib/belly/client/hub_proxy.rb",
|
49
|
-
"lib/belly/cucumber_rerun.rb",
|
50
49
|
"lib/belly/for/cucumber.rb",
|
51
50
|
"lib/belly/messages/cucumber_scenario_result_message.rb",
|
51
|
+
"lib/belly/rerun.rb",
|
52
52
|
"spec/belly/project_initializer_spec.rb",
|
53
53
|
"spec/spec_helper.rb"
|
54
54
|
]
|
data/bin/belly
CHANGED
@@ -11,7 +11,7 @@ Trollop::options do
|
|
11
11
|
=== Commands
|
12
12
|
|
13
13
|
init Initialize this project for use with Belly
|
14
|
-
rerun
|
14
|
+
rerun Show tests that need to be re-run
|
15
15
|
help <command> Get some help on a particular command
|
16
16
|
|
17
17
|
EOS
|
data/features/support/env.rb
CHANGED
@@ -18,10 +18,6 @@ module Belly
|
|
18
18
|
@requests ||= []
|
19
19
|
end
|
20
20
|
|
21
|
-
def add(data)
|
22
|
-
all << data
|
23
|
-
end
|
24
|
-
|
25
21
|
def clear!
|
26
22
|
@requests = []
|
27
23
|
end
|
@@ -34,16 +30,11 @@ module Belly
|
|
34
30
|
end
|
35
31
|
|
36
32
|
post '*' do
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
Requests.add({
|
43
|
-
'type' => request.env['REQUEST_METHOD'],
|
44
|
-
'path' => path,
|
45
|
-
'data' => request.body.read }
|
46
|
-
)
|
33
|
+
Requests.all << {
|
34
|
+
'type' => env['REQUEST_METHOD'],
|
35
|
+
'path' => env["PATH_INFO"],
|
36
|
+
'data' => request.body.read
|
37
|
+
}
|
47
38
|
''
|
48
39
|
end
|
49
40
|
end
|
data/lib/belly/cli.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'belly/rerun'
|
2
|
+
|
3
|
+
options = Trollop::options do
|
4
|
+
banner <<-EOF
|
5
|
+
This is the help for the rerun command. To see all commands availlable, type belly --help
|
6
|
+
|
7
|
+
Usage: belly rerun
|
8
|
+
|
9
|
+
Show the Cucumber scenarios that need to be rerun
|
10
|
+
|
11
|
+
EOF
|
12
|
+
opt :name, "Name of the project", :default => File.basename(Dir.pwd)
|
13
|
+
end
|
14
|
+
|
15
|
+
Belly::Rerun.new(options).run(Trollop)
|
@@ -1,5 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'uri'
|
1
|
+
require 'rest_client'
|
3
2
|
|
4
3
|
module Belly::Client
|
5
4
|
class HubProxy
|
@@ -7,24 +6,50 @@ module Belly::Client
|
|
7
6
|
@config = config
|
8
7
|
end
|
9
8
|
|
10
|
-
def post_test_result(
|
11
|
-
request
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
9
|
+
def post_test_result(json_data)
|
10
|
+
request(:post, '/test_results', json_data, :content_type => :json)
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_failing_scenarios_for_project_named(project_name)
|
14
|
+
project_id = get_project_id_by_name(project_name)
|
15
|
+
response = request(:get, "/projects/#{project_id}/cucumber_scenarios.json?status=failed")
|
16
|
+
JSON.parse(response)["cucumber_scenarios"]
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_project_id_by_name(project_name)
|
20
|
+
response = request(:get, "/projects.json?name=#{project_name}")
|
21
|
+
projects = JSON.parse(response)["projects"]
|
22
|
+
raise("Couldn't find a project named #{project_name}") unless projects.any?
|
23
|
+
projects.first["id"].to_i
|
24
24
|
end
|
25
25
|
|
26
26
|
def around_request(&block)
|
27
27
|
@around_request_block = block
|
28
28
|
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def request(method, path, data = nil, options = nil)
|
33
|
+
url = @config.url + path
|
34
|
+
args = [url]
|
35
|
+
args << data if data
|
36
|
+
args << options if options
|
37
|
+
Belly.log("Sending #{method} request to #{url}")
|
38
|
+
request_block = lambda { RestClient.send(method, *args) }
|
39
|
+
|
40
|
+
response = if @around_request_block
|
41
|
+
@around_request_block.call(request_block)
|
42
|
+
else
|
43
|
+
request_block.call
|
44
|
+
end
|
45
|
+
|
46
|
+
unless response.code == 200
|
47
|
+
raise("Failed to talk to belly hub: Response #{response.code} #{response.message}: #{response.body}")
|
48
|
+
end
|
49
|
+
|
50
|
+
Belly.log("response: #{response}")
|
51
|
+
|
52
|
+
response
|
53
|
+
end
|
29
54
|
end
|
30
55
|
end
|
data/lib/belly/rerun.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Belly
|
2
|
+
class Rerun
|
3
|
+
def initialize(options)
|
4
|
+
|
5
|
+
end
|
6
|
+
|
7
|
+
def run(ui)
|
8
|
+
Belly.hub.get_failing_scenarios_for_project_named(Belly.config.project).each do |scenario|
|
9
|
+
puts "#{scenario["file_name"]}:#{scenario["line_number"]}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: belly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Wynne
|
@@ -77,15 +77,15 @@ files:
|
|
77
77
|
- lib/belly.rb
|
78
78
|
- lib/belly/cli.rb
|
79
79
|
- lib/belly/cli/init.rb
|
80
|
-
- lib/belly/cli/
|
80
|
+
- lib/belly/cli/rerun.rb
|
81
81
|
- lib/belly/client.rb
|
82
82
|
- lib/belly/client/config.rb
|
83
83
|
- lib/belly/client/default_config.rb
|
84
84
|
- lib/belly/client/fakeweb_hack.rb
|
85
85
|
- lib/belly/client/hub_proxy.rb
|
86
|
-
- lib/belly/cucumber_rerun.rb
|
87
86
|
- lib/belly/for/cucumber.rb
|
88
87
|
- lib/belly/messages/cucumber_scenario_result_message.rb
|
88
|
+
- lib/belly/rerun.rb
|
89
89
|
- spec/belly/project_initializer_spec.rb
|
90
90
|
- spec/spec_helper.rb
|
91
91
|
has_rdoc: true
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'belly/cucumber_rerun'
|
2
|
-
|
3
|
-
options = Trollop::options do
|
4
|
-
banner <<-EOF
|
5
|
-
This is the help for the rerun:cucumber command. To see all commands availlable, type belly --help
|
6
|
-
|
7
|
-
Usage: belly rerun:cucumber
|
8
|
-
|
9
|
-
Show the Cucumber scenarios that need to be rerun
|
10
|
-
|
11
|
-
EOF
|
12
|
-
opt :name, "Name of the project", :default => File.basename(Dir.pwd)
|
13
|
-
end
|
14
|
-
|
15
|
-
Belly::CucumberRerun.new(options).run(Trollop)
|