diff --git a/Gemfile.lock b/Gemfile.lock index ede2a99..d6a14fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - testbot (0.5.9) + testbot (0.5.8) acts_as_rails3_generator daemons (>= 1.0.10) httparty (>= 0.6.1) diff --git a/lib/server/build.rb b/lib/server/build.rb index 602c090..14883fe 100644 --- a/lib/server/build.rb +++ b/lib/server/build.rb @@ -3,7 +3,7 @@ module Testbot::Server class Build < MemoryModel def initialize(hash) - super({ :success => true, :done => false, :results => '', :completed_files => [] }.merge(hash)) + super({ :success => true, :done => false, :results => '' }.merge(hash)) end def self.create_and_build_jobs(hash) diff --git a/lib/server/job.rb b/lib/server/job.rb index 28b348e..e7fb40d 100644 --- a/lib/server/job.rb +++ b/lib/server/job.rb @@ -5,11 +5,9 @@ class Job < MemoryModel def update(hash) super(hash) if self.build - all_files = self.build.files.to_s.split - completed_files = self.build.completed_files + self.files.split - done = (all_files.sort == completed_files.sort) + done = !Job.all.find { |j| !j.result && j.build == self.build } self.build.update(:results => build.results.to_s + self.result.to_s, - :done => done, :completed_files => completed_files.uniq) + :done => done) build_broken_by_job = (self.success == "false" && build.success) self.build.update(:success => false) if build_broken_by_job diff --git a/test/server/server_test.rb b/test/server/server_test.rb index d2039ec..6d71625 100644 --- a/test/server/server_test.rb +++ b/test/server/server_test.rb @@ -392,9 +392,9 @@ def app end should "make the related build done if there are no more jobs for the build" do - build = Build.create :files => 'spec/models/car_spec.rb spec/models/house_spec.rb' + build = Build.create job1 = Job.create :files => 'spec/models/car_spec.rb', :taken_at => Time.now - 30, :build => build - job2 = Job.create :files => 'spec/models/house_spec.rb', :taken_at => Time.now - 30, :build => build + job2 = Job.create :files => 'spec/models/car_spec.rb', :taken_at => Time.now - 30, :build => build put "/jobs/#{job1.id}", :result => 'test run result 1\n', :success => true put "/jobs/#{job2.id}", :result => 'test run result 2\n', :success => true assert_equal true, build.done