#167: added specs for regenerate metadata for repository of main platform

This commit is contained in:
Vokhmin Alexey V 2013-06-14 00:52:38 +04:00
parent 97465fd106
commit e0b4225796
1 changed files with 39 additions and 7 deletions

View File

@ -15,7 +15,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
subject { AbfWorker::BuildListsPublishTaskManager } subject { AbfWorker::BuildListsPublishTaskManager }
let(:build_list) { FactoryGirl.create(:build_list_core, :new_core => true) } let(:build_list) { FactoryGirl.create(:build_list_core, :new_core => true) }
describe 'when no items for publishing' do context 'when no items for publishing' do
before do before do
stub_redis stub_redis
subject.new.run subject.new.run
@ -41,7 +41,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
describe 'when one build_list for publishing' do context 'when one build_list for publishing' do
before do before do
stub_redis stub_redis
build_list.update_column(:status, BuildList::BUILD_PUBLISH) build_list.update_column(:status, BuildList::BUILD_PUBLISH)
@ -75,7 +75,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
describe 'grouping build lists for publishing into same repository' do context 'grouping build lists for publishing into same repository' do
let(:build_list2) { FactoryGirl.create(:build_list_core, let(:build_list2) { FactoryGirl.create(:build_list_core,
:new_core => true, :new_core => true,
:save_to_platform => build_list.save_to_platform, :save_to_platform => build_list.save_to_platform,
@ -117,7 +117,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
describe 'creates not more than 4 tasks for publishing' do context 'creates not more than 4 tasks for publishing' do
before do before do
stub_redis stub_redis
build_list.update_column(:status, BuildList::BUILD_PUBLISH) build_list.update_column(:status, BuildList::BUILD_PUBLISH)
@ -142,7 +142,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
describe 'creates task for removing project from repository' do context 'creates task for removing project from repository' do
before do before do
stub_redis stub_redis
build_list.update_column(:status, BuildList::BUILD_PUBLISHED) build_list.update_column(:status, BuildList::BUILD_PUBLISHED)
@ -179,7 +179,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
describe 'grouping build lists for publishing and tasks for removing project from repository' do context 'grouping build lists for publishing and tasks for removing project from repository' do
let(:build_list2) { FactoryGirl.create(:build_list_core, let(:build_list2) { FactoryGirl.create(:build_list_core,
:new_core => true, :new_core => true,
:save_to_platform => build_list.save_to_platform, :save_to_platform => build_list.save_to_platform,
@ -233,7 +233,7 @@ describe AbfWorker::BuildListsPublishTaskManager do
end end
end end
describe 'resign packages in repository' do context 'resign packages in repository' do
before do before do
stub_redis stub_redis
build_list.update_column(:status, BuildList::BUILD_PUBLISH) build_list.update_column(:status, BuildList::BUILD_PUBLISH)
@ -262,6 +262,38 @@ describe AbfWorker::BuildListsPublishTaskManager do
@redis_instance.lrange('queue:publish_worker_default', 0, -1).should have(1).item @redis_instance.lrange('queue:publish_worker_default', 0, -1).should have(1).item
end end
end
context 'regenerate metadata' do
before do
stub_redis
end
context 'for repository of main platform' do
let(:repository) { FactoryGirl.create(:repository) }
before do
AbfWorker::BuildListsPublishTaskManager.repository_regenerate_metadata repository, repository.platform
AbfWorker::BuildListsPublishTaskManager.new.run
end
it "ensure that 'locked rep and platforms' has only one item" do
queue = @redis_instance.lrange(subject::LOCKED_REP_AND_PLATFORMS, 0, -1)
queue.should have(1).item
queue.should include("#{repository.id}-#{repository.platform.id}")
end
it "ensure that 'regenerate metadata' queue without items" do
queue = @redis_instance.lrange(subject::REGENERATE_METADATA, 0, -1)
queue.should be_empty
end
it 'ensure that new task has been created' do
@redis_instance.lrange('queue:publish_worker_default', 0, -1).should have(1).item
end
end
end end