Skip failure reporting if repo has no issues

This commit is contained in:
Yossef Mendelssohn
2012-10-10 16:34:03 -04:00
parent b7e7455be4
commit 182486e048
2 changed files with 42 additions and 0 deletions

View File

@@ -32,12 +32,16 @@ module Boxen
end
def record_failure
return unless issues?
title = "Failed for #{config.user}"
config.api.create_issue(config.reponame, title, failure_details,
:labels => [failure_label])
end
def close_failures
return unless issues?
comment = "Succeeded at version #{checkout.sha}."
failures.each do |issue|
config.api.add_comment(config.reponame, issue.number, comment)
@@ -46,6 +50,8 @@ module Boxen
end
def failures
return [] unless issues?
issues = config.api.list_issues(config.reponame, :state => 'open',
:labels => failure_label, :creator => config.login)
issues.reject! {|i| i.labels.collect(&:name).include?(ongoing_label)}

View File

@@ -49,6 +49,8 @@ class BoxenReporterTest < Boxen::Test
end
def test_record_failure
@reporter.stubs(:issues?).returns(true)
details = 'Everything went wrong.'
@reporter.stubs(:failure_details).returns(details)
@@ -63,6 +65,15 @@ class BoxenReporterTest < Boxen::Test
@reporter.record_failure
end
def test_record_failure_no_issues
@reporter.stubs(:issues?).returns(false)
@config.api = api = mock('api')
api.expects(:create_issue).never
@reporter.record_failure
end
def test_failure_label
default = 'failure'
assert_equal default, @reporter.failure_label
@@ -139,6 +150,8 @@ class BoxenReporterTest < Boxen::Test
Label = Struct.new(:name)
def test_close_failures
@reporter.stubs(:issues?).returns(true)
@config.reponame = repo = 'some/repo'
issues = Array.new(3) { |i| Issue.new(i*2 + 2) }
@@ -156,7 +169,21 @@ class BoxenReporterTest < Boxen::Test
@reporter.close_failures
end
def test_close_failures_no_issues
@reporter.stubs(:issues?).returns(false)
@reporter.expects(:failures).never
@config.api = api = mock('api')
api.expects(:add_comment).never
api.expects(:close_issue).never
@reporter.close_failures
end
def test_failures
@reporter.stubs(:issues?).returns(true)
@config.reponame = repo = 'some/repo'
@config.login = user = 'hapless'
@@ -181,6 +208,15 @@ class BoxenReporterTest < Boxen::Test
assert_equal issues.values_at(0,1,3), @reporter.failures
end
def test_failures_no_issues
@reporter.stubs(:issues?).returns(false)
@config.api = api = mock('api')
api.expects(:list_issues).never
assert_equal [], @reporter.failures
end
RepoInfo = Struct.new(:has_issues)
def test_issues?
@config.reponame = repo = 'some/repo'