Commit 8672203baf5971acb96cf62562876887fb69623b

Authored by Dmitriy Zaporozhets
2 parents 9fabd703 a3ef6831

Merge pull request #5112 from hiroponz/drop-support-of-root-namespace

Drop support of root namespace in model
app/models/project.rb
@@ -83,6 +83,7 @@ class Project < ActiveRecord::Base @@ -83,6 +83,7 @@ class Project < ActiveRecord::Base
83 :wiki_enabled, inclusion: { in: [true, false] } 83 :wiki_enabled, inclusion: { in: [true, false] }
84 validates :issues_tracker_id, length: { within: 0..255 } 84 validates :issues_tracker_id, length: { within: 0..255 }
85 85
  86 + validates :namespace, presence: true
86 validates_uniqueness_of :name, scope: :namespace_id 87 validates_uniqueness_of :name, scope: :namespace_id
87 validates_uniqueness_of :path, scope: :namespace_id 88 validates_uniqueness_of :path, scope: :namespace_id
88 89
@@ -165,11 +166,7 @@ class Project < ActiveRecord::Base @@ -165,11 +166,7 @@ class Project < ActiveRecord::Base
165 end 166 end
166 167
167 def to_param 168 def to_param
168 - if namespace  
169 - namespace.path + "/" + path  
170 - else  
171 - path  
172 - end 169 + namespace.path + "/" + path
173 end 170 end
174 171
175 def web_url 172 def web_url
spec/contexts/issues/bulk_update_context_spec.rb
1 require 'spec_helper' 1 require 'spec_helper'
2 2
3 describe Issues::BulkUpdateContext do 3 describe Issues::BulkUpdateContext do
  4 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  5 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
4 6
5 let(:issue) { 7 let(:issue) {
6 create(:issue, project: @project) 8 create(:issue, project: @project)
@@ -9,7 +11,8 @@ describe Issues::BulkUpdateContext do @@ -9,7 +11,8 @@ describe Issues::BulkUpdateContext do
9 before do 11 before do
10 @user = create :user 12 @user = create :user
11 opts = { 13 opts = {
12 - name: "GitLab" 14 + name: "GitLab",
  15 + namespace: @user.namespace
13 } 16 }
14 @project = Projects::CreateContext.new(@user, opts).execute 17 @project = Projects::CreateContext.new(@user, opts).execute
15 end 18 end
spec/contexts/projects_create_context_spec.rb
1 require 'spec_helper' 1 require 'spec_helper'
2 2
3 describe Projects::CreateContext do 3 describe Projects::CreateContext do
  4 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  5 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
  6 +
4 describe :create_by_user do 7 describe :create_by_user do
5 before do 8 before do
6 @user = create :user 9 @user = create :user
7 @opts = { 10 @opts = {
8 - name: "GitLab" 11 + name: "GitLab",
  12 + namespace: @user.namespace
9 } 13 }
10 end 14 end
11 15
spec/models/project_spec.rb
@@ -67,6 +67,7 @@ describe Project do @@ -67,6 +67,7 @@ describe Project do
67 it { should ensure_length_of(:description).is_within(0..2000) } 67 it { should ensure_length_of(:description).is_within(0..2000) }
68 it { should validate_presence_of(:creator) } 68 it { should validate_presence_of(:creator) }
69 it { should ensure_length_of(:issues_tracker_id).is_within(0..255) } 69 it { should ensure_length_of(:issues_tracker_id).is_within(0..255) }
  70 + it { should validate_presence_of(:namespace) }
70 71
71 it "should not allow new projects beyond user limits" do 72 it "should not allow new projects beyond user limits" do
72 project2 = build(:project) 73 project2 = build(:project)
spec/requests/api/internal_spec.rb
@@ -2,6 +2,8 @@ require 'spec_helper' @@ -2,6 +2,8 @@ require 'spec_helper'
2 2
3 describe API::API do 3 describe API::API do
4 include ApiHelpers 4 include ApiHelpers
  5 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  6 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
5 7
6 let(:user) { create(:user) } 8 let(:user) { create(:user) }
7 let(:key) { create(:key, user: user) } 9 let(:key) { create(:key, user: user) }
spec/requests/api/issues_spec.rb
@@ -2,6 +2,8 @@ require 'spec_helper' @@ -2,6 +2,8 @@ require 'spec_helper'
2 2
3 describe API::API do 3 describe API::API do
4 include ApiHelpers 4 include ApiHelpers
  5 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  6 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
5 7
6 let(:user) { create(:user) } 8 let(:user) { create(:user) }
7 let!(:project) { create(:project, namespace: user.namespace ) } 9 let!(:project) { create(:project, namespace: user.namespace ) }
spec/requests/api/notes_spec.rb
@@ -2,6 +2,8 @@ require 'spec_helper' @@ -2,6 +2,8 @@ require 'spec_helper'
2 2
3 describe API::API do 3 describe API::API do
4 include ApiHelpers 4 include ApiHelpers
  5 + before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
  6 + after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
5 7
6 let(:user) { create(:user) } 8 let(:user) { create(:user) }
7 let!(:project) { create(:project, namespace: user.namespace ) } 9 let!(:project) { create(:project, namespace: user.namespace ) }
spec/services/project_transfer_service_spec.rb
@@ -21,25 +21,7 @@ describe ProjectTransferService do @@ -21,25 +21,7 @@ describe ProjectTransferService do
21 let(:user) { create(:user) } 21 let(:user) { create(:user) }
22 let(:project) { create(:project, namespace: user.namespace) } 22 let(:project) { create(:project, namespace: user.namespace) }
23 23
24 - before do  
25 - @result = service.transfer(project, nil)  
26 - end  
27 -  
28 -  
29 - it { @result.should be_true }  
30 - it { project.namespace.should == nil }  
31 - end  
32 -  
33 - context 'no namespace -> namespace' do  
34 - let(:project) { create(:project) }  
35 - let(:user) { create(:user) }  
36 -  
37 - before do  
38 - @result = service.transfer(project, user.namespace)  
39 - end  
40 -  
41 - it { @result.should be_true }  
42 - it { project.namespace.should == user.namespace } 24 + it { lambda{service.transfer(project, nil)}.should raise_error(ActiveRecord::RecordInvalid) }
43 end 25 end
44 26
45 def service 27 def service