Commit a3ef683108a7af10bb63342db429a47ffc5abea4

Authored by Hiroyuki Sato
1 parent 2d31a9f3

Drop support of root namespace in model

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