#416: sends email when build list status is 'Unpermitted architecture'
This commit is contained in:
parent
43ab29a135
commit
e7a24a27a3
|
@ -182,7 +182,7 @@ class BuildList < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
after_transition on: :cancel, do: :cancel_job
|
after_transition on: :cancel, do: :cancel_job
|
||||||
|
|
||||||
after_transition on: [:published, :fail_publish, :build_error, :tests_failed], do: :notify_users
|
after_transition on: %i(published fail_publish build_error tests_failed unpermitted_arch), do: :notify_users
|
||||||
after_transition on: :build_success, do: :notify_users,
|
after_transition on: :build_success, do: :notify_users,
|
||||||
unless: ->(build_list) { build_list.auto_publish? || build_list.auto_publish_into_testing? }
|
unless: ->(build_list) { build_list.auto_publish? || build_list.auto_publish_into_testing? }
|
||||||
|
|
||||||
|
|
|
@ -58,20 +58,16 @@ describe BuildList do
|
||||||
end
|
end
|
||||||
|
|
||||||
context "#notify_users" do
|
context "#notify_users" do
|
||||||
let!(:user) { FactoryGirl.create(:user) }
|
let(:user) { FactoryGirl.build(:user) }
|
||||||
let!(:build_list) { FactoryGirl.create(:build_list,
|
let!(:build_list) {
|
||||||
|
FactoryGirl.create(:build_list,
|
||||||
user: user,
|
user: user,
|
||||||
auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_NONE) }
|
auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_NONE,
|
||||||
let!(:build_list_package) { FactoryGirl.create(:build_list_package,
|
status: BuildList::BUILD_STARTED
|
||||||
build_list: build_list,
|
)
|
||||||
project: build_list.project) }
|
}
|
||||||
|
|
||||||
|
|
||||||
before(:all) { ActionMailer::Base.deliveries = [] }
|
before(:all) { ActionMailer::Base.deliveries = [] }
|
||||||
before do
|
|
||||||
build_list.update_attributes({commit_hash: build_list.project.repo.commits('master').last.id,
|
|
||||||
status: BuildList::BUILD_STARTED}, without_protection: true)
|
|
||||||
end
|
|
||||||
after { ActionMailer::Base.deliveries = [] }
|
after { ActionMailer::Base.deliveries = [] }
|
||||||
|
|
||||||
shared_examples_for 'build list notifications by email' do
|
shared_examples_for 'build list notifications by email' do
|
||||||
|
@ -85,51 +81,58 @@ describe BuildList do
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "gets notification by email when status - Unpermitted architecture" do
|
||||||
|
build_list.unpermitted_arch
|
||||||
|
should have(1).item
|
||||||
|
end
|
||||||
|
|
||||||
it "gets notification by email when auto_publish and status - Build error" do
|
it "gets notification by email when auto_publish and status - Build error" do
|
||||||
build_list.update_attributes(auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT)
|
build_list.auto_publish_status = BuildList::AUTO_PUBLISH_STATUS_DEFAULT
|
||||||
build_list.build_error
|
build_list.build_error
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gets notification by email when status - Failed publish" do
|
it "gets notification by email when status - Failed publish" do
|
||||||
build_list.update_attributes({status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
build_list.status = BuildList::BUILD_PUBLISH
|
||||||
build_list.fail_publish
|
build_list.fail_publish
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gets notification by email when auto_publish and status - Failed publish" do
|
it "gets notification by email when auto_publish and status - Failed publish" do
|
||||||
build_list.update_attributes({auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT, status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
build_list.auto_publish_status = BuildList::AUTO_PUBLISH_STATUS_DEFAULT
|
||||||
|
build_list.status = BuildList::BUILD_PUBLISH
|
||||||
build_list.fail_publish
|
build_list.fail_publish
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gets notification by email when status - Build published" do
|
it "gets notification by email when status - Build published" do
|
||||||
build_list.update_attributes({status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
build_list.status = BuildList::BUILD_PUBLISH
|
||||||
build_list.published
|
build_list.published
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
it "gets notification by email when auto_publish and status - Build published" do
|
it "gets notification by email when auto_publish and status - Build published" do
|
||||||
build_list.update_attributes({auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT, status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
build_list.auto_publish_status = BuildList::AUTO_PUBLISH_STATUS_DEFAULT
|
||||||
|
build_list.status = BuildList::BUILD_PUBLISH
|
||||||
build_list.published
|
build_list.published
|
||||||
should have(1).item
|
should have(1).item
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't get notification by email when auto_publish and status - Build complete" do
|
it "doesn't get notification by email when auto_publish and status - Build complete" do
|
||||||
build_list.update_attributes(auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT)
|
build_list.auto_publish_status = BuildList::AUTO_PUBLISH_STATUS_DEFAULT
|
||||||
build_list.build_success
|
build_list.build_success
|
||||||
should have(:no).items
|
should have(:no).items
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't get notification by email when auto_publish_into_testing and status - Build complete" do
|
it "doesn't get notification by email when auto_publish_into_testing and status - Build complete" do
|
||||||
build_list.update_attributes(auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_TESTING)
|
build_list.auto_publish_status =BuildList::AUTO_PUBLISH_STATUS_TESTING
|
||||||
build_list.build_success
|
build_list.build_success
|
||||||
should have(:no).items
|
should have(:no).items
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't get notification by email when mass build" do
|
it "doesn't get notification by email when mass build" do
|
||||||
mb = FactoryGirl.build(:mass_build)
|
build_list.mass_build_id = 123
|
||||||
build_list.update_attributes(mass_build_id: mb.id, status: BuildList::BUILD_PUBLISH)
|
build_list.status = BuildList::BUILD_PUBLISH
|
||||||
build_list.published
|
build_list.published
|
||||||
should have(:no).items
|
should have(:no).items
|
||||||
end
|
end
|
||||||
|
@ -146,20 +149,21 @@ describe BuildList do
|
||||||
context "user created build task" do
|
context "user created build task" do
|
||||||
let!(:notifier) { user.notifier }
|
let!(:notifier) { user.notifier }
|
||||||
before do
|
before do
|
||||||
notifier.update_attributes(new_associated_build: false)
|
allow(notifier).to receive(:new_associated_build?).and_return(false)
|
||||||
build_list.project.owner.notifier.update_attributes(can_notify: false)
|
build_list.project.owner.notifier.update_attributes(can_notify: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
it_should_behave_like 'build list notifications by email'
|
it_should_behave_like 'build list notifications by email'
|
||||||
|
|
||||||
it "doesn't get notification by email when 'build list' notifications has been disabled" do
|
it "doesn't get notification by email when 'build list' notifications has been disabled" do
|
||||||
notifier.update_attributes(new_build: false)
|
allow(notifier).to receive(:new_build?).and_return(false)
|
||||||
build_list.build_success
|
build_list.build_success
|
||||||
should have(:no).items
|
should have(:no).items
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't get notification by email when 'build list' notifications - enabled, email notifications - disabled" do
|
it "doesn't get notification by email when 'build list' notifications - enabled, email notifications - disabled" do
|
||||||
notifier.update_attributes(can_notify: false, new_build: true)
|
allow(notifier).to receive(:can_notify?).and_return(false)
|
||||||
|
allow(notifier).to receive(:new_build?).and_return(true)
|
||||||
build_list.build_success
|
build_list.build_success
|
||||||
should have(:no).items
|
should have(:no).items
|
||||||
end
|
end
|
||||||
|
@ -194,7 +198,6 @@ describe BuildList do
|
||||||
auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT,
|
auto_publish_status: BuildList::AUTO_PUBLISH_STATUS_DEFAULT,
|
||||||
project: project
|
project: project
|
||||||
)
|
)
|
||||||
FactoryGirl.create(:build_list_package, build_list: bl, project: bl.project)
|
|
||||||
bl.update_attributes({commit_hash: bl.project.repo.commits('master').last.id,
|
bl.update_attributes({commit_hash: bl.project.repo.commits('master').last.id,
|
||||||
status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
status: BuildList::BUILD_PUBLISH}, without_protection: true)
|
||||||
bl.published
|
bl.published
|
||||||
|
|
Loading…
Reference in New Issue