Refactor maintainer-db spec and model

This commit is contained in:
Pavel Shved 2012-06-14 14:15:42 +04:00 committed by George Vinogradov
parent 028e511409
commit a4b03b53ce
2 changed files with 4 additions and 5 deletions

View File

@ -10,7 +10,7 @@ class BuildList::Package < ActiveRecord::Base
validates :build_list_id, :project_id, :platform_id, :fullname, :package_type, :name, :release, :version, :presence => true validates :build_list_id, :project_id, :platform_id, :fullname, :package_type, :name, :release, :version, :presence => true
validates :package_type, :inclusion => PACKAGE_TYPES validates :package_type, :inclusion => PACKAGE_TYPES
# This selects only the latest record for each (platform, project) pair (by 'latest' we mean it, i.e. the greatest created_at). # This selects only the latest record for each (platform, "package") pair (by 'latest' we mean it, i.e. the greatest created_at). The "package" is identified by its name and type.
# We select the latest created_at-s, and join the table with itself. # We select the latest created_at-s, and join the table with itself.
scope :maintainers, joins('join( scope :maintainers, joins('join(
select name as j_pn, package_type as j_pt, platform_id as j_plid, max(created_at) as j_ca select name as j_pn, package_type as j_pt, platform_id as j_plid, max(created_at) as j_ca
@ -18,7 +18,7 @@ class BuildList::Package < ActiveRecord::Base
group by j_pn, j_pt, j_plid group by j_pn, j_pt, j_plid
) lastmaints ) lastmaints
on j_pn = name and j_pt = package_type and j_plid = platform_id and j_ca = created_at' on j_pn = name and j_pt = package_type and j_plid = platform_id and j_ca = created_at'
).where('created_at = j_ca') )
def assignee def assignee
project.owner.assignee project.owner.assignee

View File

@ -3,13 +3,13 @@ require 'spec_helper'
shared_examples_for 'guest user' do shared_examples_for 'guest user' do
before(:each) do before(:each) do
if APP_CONFIG['anonymous_access'] unless APP_CONFIG['anonymous_access']
else
@user = FactoryGirl.create(:user) @user = FactoryGirl.create(:user)
set_session_for(@user) set_session_for(@user)
end end
end end
# Only one action for now here
[:index].each do |action| [:index].each do |action|
it "should be able to perform #{ action } action" do it "should be able to perform #{ action } action" do
get action, :platform_id => @platform.id get action, :platform_id => @platform.id
@ -33,7 +33,6 @@ describe Platforms::MaintainersController do
it 'should not be able to get api' do it 'should not be able to get api' do
get :assignee, @assignee_rq get :assignee, @assignee_rq
puts response.headers.inspect
response.response_code.should equal(403) response.response_code.should equal(403)
end end
end end