cerberus 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,11 @@
1
1
  = Cerberus Changelog
2
2
 
3
+ == Version 0.4.2
4
+ RSpec builder bugfixes
5
+
6
+ * Fixed bugs with rspec builder not giving correct error count
7
+ * Extracted rspec-specific code to the rspec builder
8
+
3
9
  == Version 0.4.1
4
10
  Minor bugfixes
5
11
 
data/Rakefile CHANGED
@@ -158,7 +158,7 @@ task :www => :webgen
158
158
  end
159
159
 
160
160
  task :publish_site => :webgen do
161
- sh %{scp -r -q doc/site/output/* #{RUBYFORGE_USER}@rubyforge.org:/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/}
161
+ sh %{scp -r -q doc/site/out/* #{RUBYFORGE_USER}@rubyforge.org:/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/}
162
162
  end
163
163
 
164
164
  task :release => [:release_files, :publish_news, :publish_site]
@@ -5,9 +5,23 @@ class Cerberus::Builder::RSpec < Cerberus::Builder::RubyBase
5
5
  super(config, "rspec", "spec")
6
6
  end
7
7
 
8
+ def run
9
+ Dir.chdir @config[:application_root]
10
+ @output = if @config[:builder, @name.to_sym, :task]
11
+ `#{@config[:bin_path]}rake #{@config[:builder, @name.to_sym, :task]} 2>&1`
12
+ else
13
+ `#{@config[:bin_path]}rake #{choose_exec()} 2>&1`
14
+ end
15
+ successful?
16
+ end
17
+
8
18
  def brokeness
9
- if @output =~ /\d+ examples, (\d+) failures/
19
+ if @output =~ /\d+ examples, (\d+) failures?/
10
20
  $1.to_i
11
21
  end
12
22
  end
23
+
24
+ def successful?
25
+ $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!") and @output.include?("0 failures")
26
+ end
13
27
  end
@@ -16,22 +16,12 @@ class Cerberus::Builder::RubyBase
16
16
  end
17
17
 
18
18
  def successful?
19
- if @output.include?("errors")
20
- $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!") and @output.include?("0 failures, 0 errors")
21
- else
22
- $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!") and @output.include?("0 failures")
23
- end
19
+ $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!") and @output.include?("0 failures, 0 errors")
24
20
  end
25
21
 
26
22
  def brokeness
27
- if @output.include?("errors")
28
- if @output =~ /\d+ tests, \d+ assertions, (\d+) failures, (\d+) errors/
29
- return $1.to_i + $2.to_i
30
- end
31
- else
32
- if @output =~ /\d+ examples, (\d+) failures, 1 pending/
33
- return $1.to_i
34
- end
23
+ if @output =~ /\d+ tests, \d+ assertions, (\d+) failures, (\d+) errors/
24
+ return $1.to_i + $2.to_i
35
25
  end
36
26
  end
37
27
 
@@ -4,5 +4,5 @@ module Cerberus
4
4
 
5
5
  LOCK_WAIT = 30 * 60 #30 minutes
6
6
 
7
- VERSION = '0.4.1'
7
+ VERSION = '0.4.2'
8
8
  end
@@ -1,4 +1,6 @@
1
1
  require 'cerberus/publisher/base'
2
+ require 'time'
3
+ require 'builder'
2
4
 
3
5
  class Cerberus::Publisher::RSS < Cerberus::Publisher::Base
4
6
  def self.publish(state, manager, options)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -8,4 +8,28 @@ class DummyManager
8
8
  @scm = DummyScm.new(last_commit_message, current_revision, last_author)
9
9
  @builder = DummyBuilder.new(output)
10
10
  end
11
- end
11
+ end
12
+
13
+ class DummyStatus
14
+ attr_reader :previous_brokeness, :current_brokeness
15
+
16
+ def initialize(param)
17
+ @hash = param
18
+ @current_build_sucessful = @hash['state']
19
+ @previous_build_successful = @hash['previous_build'] || false
20
+ @previous_brokeness = @hash['previous_brokeness'] || ''
21
+ @current_brokeness = @hash['current_brokeness'] || ''
22
+ end
23
+
24
+ def current_state
25
+ if @current_build_successful
26
+ if @previous_build_sucessful.nil?
27
+ :setup
28
+ else
29
+ @previous_build_successful ? :successful : :revival
30
+ end
31
+ else
32
+ @previous_build_successful ? :failed : :broken
33
+ end
34
+ end
35
+ end
File without changes
@@ -0,0 +1,100 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ require 'cerberus/builder/rspec'
4
+ require 'tmpdir'
5
+
6
+ class Cerberus::Builder::RSpec
7
+ attr_writer :output
8
+ end
9
+
10
+ class RSpecBuilderTest < Test::Unit::TestCase
11
+ def test_builder
12
+ tmp = Dir::tmpdir
13
+ builder = Cerberus::Builder::RSpec.new(:application_root => tmp)
14
+
15
+ builder.output = RSPEC_TEST_OK_OUTPUT
16
+ assert builder.successful?
17
+
18
+ builder.output = RSPEC_TEST_OK_OUTPUT_WITH_PENDING
19
+ assert builder.successful?
20
+
21
+ builder.output = RSPEC_TEST_ERROR_OUTPUT
22
+ assert !builder.successful?
23
+ assert_equal 1, builder.brokeness
24
+
25
+ builder.output = RSPEC_TEST_ERROR_OUTPUT_WITH_PENDING
26
+ assert !builder.successful?
27
+ assert_equal 1, builder.brokeness
28
+ end
29
+ end
30
+
31
+ RSPEC_TEST_OK_OUTPUT =<<-END
32
+ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /Library/Ruby/Gems/1.8/gems/rspec-1.1.12/bin/spec spec/views/clients/show.html.erb_spec.rb spec/models/role_spec.rb spec/models/dashboard_spec.rb spec/models/client_spec.rb spec/helpers/admin/users_helper_spec.rb spec/controllers/sessions_controller_spec.rb spec/models/query_dates_spec.rb spec/helpers/heatmaps_helper_spec.rb spec/helpers/passwords_helper_spec.rb spec/controllers/admin/reports_controller_spec.rb spec/models/role_assignment_spec.rb spec/models/default_role_spec.rb spec/controllers/sites_controller_spec.rb spec/controllers/dashboards_controller_spec.rb spec/models/widget_instance_spec.rb spec/models/widget_spec.rb spec/controllers/admin/roles_controller_spec.rb spec/models/user_spec.rb spec/models/right_spec.rb spec/views/clients/new.html.erb_spec.rb spec/helpers/reports_helper_spec.rb spec/controllers/reports_controller_spec.rb spec/models/site_spec.rb spec/helpers/admin/rights_helper_spec.rb spec/models/data_warehouse_spec.rb spec/helpers/users_helper_spec.rb spec/helpers/clients_helper_spec.rb spec/helpers/admin/roles_helper_spec.rb spec/views/clients/index.html.erb_spec.rb spec/controllers/users_controller_spec.rb spec/controllers/clients_routing_spec.rb spec/controllers/clients_controller_spec.rb spec/controllers/admin/users_controller_spec.rb spec/controllers/access_control_spec.rb spec/models/query_cache_key_spec.rb spec/views/clients/edit.html.erb_spec.rb spec/controllers/passwords_controller_spec.rb spec/controllers/authenticated_system_spec.rb spec/helpers/application_helper_spec.rb spec/models/report_spec.rb spec/models/query_spec.rb spec/helpers/admin/reports_helper_spec.rb spec/controllers/queries_controller_spec.rb spec/controllers/application_controller_spec.rb spec/models/excel_export_spec.rb spec/controllers/admin/rights_controller_spec.rb -O spec/spec.opts
33
+ ..............................................................................................................................................................................................................................................*....*..................................................................................................................................................................................................................*.................................................................................................................*..*....*.................................................................................................................................................................................................
34
+
35
+ Pending:
36
+
37
+ SessionsController logout_keeping_session! forgets me (Not Yet Implemented)
38
+ /src/parkassist/paseweb/vendor/gems/rspec-rails-1.1.12/lib/spec/rails/example/controller_example_group.rb:109:in `initialize'
39
+
40
+ SessionsController logout_killing_session! forgets me (Not Yet Implemented)
41
+ /src/parkassist/paseweb/vendor/gems/rspec-rails-1.1.12/lib/spec/rails/example/controller_example_group.rb:109:in `initialize'
42
+
43
+ Report query_data should return a hash of all queries via :dom_id => :data (TODO)
44
+ ./spec/models/report_spec.rb:109
45
+
46
+ ReportsController GET show xls format request should return an excel spreadsheet (TODO)
47
+ ./spec/controllers/reports_controller_spec.rb:56
48
+
49
+ ReportsController GET show should query the DataWarehouse (TODO)
50
+ ./spec/controllers/reports_controller_spec.rb:39
51
+
52
+ DashboardsController it should save user-customized layout should check access before saving (TODO)
53
+ ./spec/controllers/dashboards_controller_spec.rb:280
54
+
55
+ Finished in 41.688393 seconds
56
+
57
+ 770 examples, 0 failures, 6 pending
58
+ END
59
+
60
+ RSPEC_TEST_OK_OUTPUT_WITH_PENDING =<<-END
61
+ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /Library/Ruby/Gems/1.8/gems/rspec-1.1.12/bin/spec spec/views/clients/show.html.erb_spec.rb spec/models/role_spec.rb spec/models/dashboard_spec.rb spec/models/client_spec.rb spec/helpers/admin/users_helper_spec.rb spec/controllers/sessions_controller_spec.rb spec/models/query_dates_spec.rb spec/helpers/heatmaps_helper_spec.rb spec/helpers/passwords_helper_spec.rb spec/controllers/admin/reports_controller_spec.rb spec/models/role_assignment_spec.rb spec/models/default_role_spec.rb spec/controllers/sites_controller_spec.rb spec/controllers/dashboards_controller_spec.rb spec/models/widget_instance_spec.rb spec/models/widget_spec.rb spec/controllers/admin/roles_controller_spec.rb spec/models/user_spec.rb spec/models/right_spec.rb spec/views/clients/new.html.erb_spec.rb spec/helpers/reports_helper_spec.rb spec/controllers/reports_controller_spec.rb spec/models/site_spec.rb spec/helpers/admin/rights_helper_spec.rb spec/models/data_warehouse_spec.rb spec/helpers/users_helper_spec.rb spec/helpers/clients_helper_spec.rb spec/helpers/admin/roles_helper_spec.rb spec/views/clients/index.html.erb_spec.rb spec/controllers/users_controller_spec.rb spec/controllers/clients_routing_spec.rb spec/controllers/clients_controller_spec.rb spec/controllers/admin/users_controller_spec.rb spec/controllers/access_control_spec.rb spec/models/query_cache_key_spec.rb spec/views/clients/edit.html.erb_spec.rb spec/controllers/passwords_controller_spec.rb spec/controllers/authenticated_system_spec.rb spec/helpers/application_helper_spec.rb spec/models/report_spec.rb spec/models/query_spec.rb spec/helpers/admin/reports_helper_spec.rb spec/controllers/queries_controller_spec.rb spec/controllers/application_controller_spec.rb spec/models/excel_export_spec.rb spec/controllers/admin/rights_controller_spec.rb -O spec/spec.opts
62
+ ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
63
+
64
+ Finished in 23.895298 seconds
65
+
66
+ 764 examples, 0 failures
67
+ END
68
+
69
+ RSPEC_TEST_ERROR_OUTPUT =<<-END
70
+ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /Library/Ruby/Gems/1.8/gems/rspec-1.1.12/bin/spec spec/models/site_spec.rb -O spec/spec.opts
71
+ ...........F...
72
+
73
+ 1)
74
+ 'Site being created increments Site#count' FAILED
75
+ count should not have changed, but did change from 1 to 2
76
+ ./spec/models/site_spec.rb:21:
77
+
78
+ Finished in 0.433946 seconds
79
+
80
+ 15 examples, 1 failure
81
+ END
82
+
83
+ RSPEC_TEST_ERROR_OUTPUT_WITH_PENDING =<<-END
84
+ /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby /Library/Ruby/Gems/1.8/gems/rspec-1.1.12/bin/spec spec/models/site_spec.rb -O spec/spec.opts
85
+ ...........F..*
86
+
87
+ Pending:
88
+
89
+ Site should respond to :client (TODO)
90
+ ./spec/models/site_spec.rb:31
91
+
92
+ 1)
93
+ 'Site being created increments Site#count' FAILED
94
+ count should not have changed, but did change from 1 to 2
95
+ ./spec/models/site_spec.rb:21:
96
+
97
+ Finished in 0.245002 seconds
98
+
99
+ 15 examples, 1 failure, 1 pending
100
+ END
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + '/test_helper'
3
3
  require 'cerberus/publisher/rss'
4
4
  require 'mock/manager'
5
5
  require 'tempfile'
6
+ require 'rexml/document'
6
7
 
7
8
  class RSSPublisherTest < Test::Unit::TestCase
8
9
  def test_publisher
@@ -5,6 +5,7 @@ require 'test/unit'
5
5
  require 'fileutils'
6
6
 
7
7
  require 'cerberus/utils'
8
+ require 'mock/manager'
8
9
 
9
10
  class Test::Unit::TestCase
10
11
  TEMP_DIR = File.expand_path(File.dirname(__FILE__)) + '/__workdir'
@@ -110,7 +111,7 @@ end"
110
111
  end
111
112
 
112
113
  def build_status(successful)
113
- Cerberus::Status.new('state' => successful)
114
+ DummyStatus.new('state' => successful)
114
115
  end
115
116
  end
116
117
 
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cerberus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anatol Pomozov
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-06 00:00:00 -08:00
12
+ date: 2009-01-26 00:00:00 -05:00
13
13
  default_executable: cerberus
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -93,61 +93,62 @@ extra_rdoc_files: []
93
93
  files:
94
94
  - bin/cerberus
95
95
  - lib/cerberus
96
- - lib/cerberus/config.example.yml
96
+ - lib/cerberus/builder
97
+ - lib/cerberus/builder/base.rb
98
+ - lib/cerberus/builder/bjam.rb
99
+ - lib/cerberus/builder/maven2.rb
100
+ - lib/cerberus/builder/rake.rb
101
+ - lib/cerberus/builder/rant.rb
102
+ - lib/cerberus/builder/rspec.rb
103
+ - lib/cerberus/builder/ruby_base.rb
104
+ - lib/cerberus/cli.rb
97
105
  - lib/cerberus/component_lazy_loader.rb
106
+ - lib/cerberus/config.example.yml
107
+ - lib/cerberus/config.rb
98
108
  - lib/cerberus/config_migration.rb
109
+ - lib/cerberus/constants.rb
110
+ - lib/cerberus/latch.rb
111
+ - lib/cerberus/manager.rb
99
112
  - lib/cerberus/publisher
100
- - lib/cerberus/publisher/mail.rb
113
+ - lib/cerberus/publisher/base.rb
114
+ - lib/cerberus/publisher/campfire.rb
101
115
  - lib/cerberus/publisher/gmailer.rb
116
+ - lib/cerberus/publisher/irc.rb
117
+ - lib/cerberus/publisher/jabber.rb
118
+ - lib/cerberus/publisher/mail.rb
102
119
  - lib/cerberus/publisher/netsmtp_tls_fix.rb
103
- - lib/cerberus/publisher/campfire.rb
104
120
  - lib/cerberus/publisher/rss.rb
105
- - lib/cerberus/publisher/base.rb
106
121
  - lib/cerberus/publisher/twitter.rb
107
- - lib/cerberus/publisher/irc.rb
108
- - lib/cerberus/publisher/jabber.rb
109
- - lib/cerberus/builder
110
- - lib/cerberus/builder/ruby_base.rb
111
- - lib/cerberus/builder/rspec.rb
112
- - lib/cerberus/builder/bjam.rb
113
- - lib/cerberus/builder/rant.rb
114
- - lib/cerberus/builder/base.rb
115
- - lib/cerberus/builder/maven2.rb
116
- - lib/cerberus/builder/rake.rb
117
- - lib/cerberus/config.rb
118
122
  - lib/cerberus/scm
123
+ - lib/cerberus/scm/cvs.rb
124
+ - lib/cerberus/scm/darcs.rb
119
125
  - lib/cerberus/scm/git.rb
120
- - lib/cerberus/scm/svn.rb
121
126
  - lib/cerberus/scm/perforce.rb
122
- - lib/cerberus/scm/darcs.rb
123
- - lib/cerberus/scm/cvs.rb
124
- - lib/cerberus/latch.rb
127
+ - lib/cerberus/scm/svn.rb
125
128
  - lib/cerberus/utils.rb
126
- - lib/cerberus/constants.rb
127
- - lib/cerberus/manager.rb
128
- - lib/cerberus/cli.rb
129
- - test/integration_test.rb
130
- - test/config_test.rb
131
- - test/rss_publisher_test.rb
132
- - test/perforce_scm_test.rb
133
- - test/jabber_publisher_test.rb
134
- - test/test_helper.rb
135
- - test/twitter_publisher_test.rb
136
129
  - test/bjam_builder_test.rb
137
- - test/mock
138
- - test/mock/marshmallow.rb
139
- - test/mock/twitter.rb
140
- - test/mock/manager.rb
141
- - test/mock/xmpp4r.rb
142
- - test/mock/irc.rb
130
+ - test/config_test.rb
143
131
  - test/data
144
- - test/data/subversion.dump
145
132
  - test/data/darcs.zip
146
133
  - test/data/git.zip
134
+ - test/data/subversion.dump
147
135
  - test/functional_test.rb
148
- - test/maven2_builer_test.rb
149
- - test/mail_publisher_test.rb
136
+ - test/integration_test.rb
150
137
  - test/irc_publisher_test.rb
138
+ - test/jabber_publisher_test.rb
139
+ - test/mail_publisher_test.rb
140
+ - test/maven2_builer_test.rb
141
+ - test/mock
142
+ - test/mock/irc.rb
143
+ - test/mock/manager.rb
144
+ - test/mock/marshmallow.rb
145
+ - test/mock/twitter.rb
146
+ - test/mock/xmpp4r.rb
147
+ - test/perforce_scm_test.rb
148
+ - test/rspec_builder_test.rb
149
+ - test/rss_publisher_test.rb
150
+ - test/test_helper.rb
151
+ - test/twitter_publisher_test.rb
151
152
  - LICENSE
152
153
  - README
153
154
  - CHANGES
@@ -180,14 +181,15 @@ signing_key:
180
181
  specification_version: 2
181
182
  summary: Cerberus is a Continuous Integration tool that could be easily run from Cron.
182
183
  test_files:
183
- - test/integration_test.rb
184
- - test/config_test.rb
185
- - test/rss_publisher_test.rb
186
- - test/perforce_scm_test.rb
187
- - test/jabber_publisher_test.rb
188
- - test/twitter_publisher_test.rb
189
184
  - test/bjam_builder_test.rb
185
+ - test/config_test.rb
190
186
  - test/functional_test.rb
191
- - test/maven2_builer_test.rb
192
- - test/mail_publisher_test.rb
187
+ - test/integration_test.rb
193
188
  - test/irc_publisher_test.rb
189
+ - test/jabber_publisher_test.rb
190
+ - test/mail_publisher_test.rb
191
+ - test/maven2_builer_test.rb
192
+ - test/perforce_scm_test.rb
193
+ - test/rspec_builder_test.rb
194
+ - test/rss_publisher_test.rb
195
+ - test/twitter_publisher_test.rb