Commit 8a08fdcd32ec58bc538ce5b6fc9df3fbe61d05e1

Authored by Dmitriy Zaporozhets
1 parent 80e984ee

Fix worker specs to parse namespaces

app/workers/post_receive.rb
@@ -2,8 +2,9 @@ class PostReceive @@ -2,8 +2,9 @@ class PostReceive
2 @queue = :post_receive 2 @queue = :post_receive
3 3
4 def self.perform(repo_path, oldrev, newrev, ref, identifier) 4 def self.perform(repo_path, oldrev, newrev, ref, identifier)
5 - repo_path = repo_path.gsub(Gitlab.config.git_base_path, "")  
6 - repo_path = repo_path.gsub(/.git$/, "") 5 + repo_path.gsub!(Gitlab.config.git_base_path.to_s, "")
  6 + repo_path.gsub!(/.git$/, "")
  7 + repo_path.gsub!(/^\//, "")
7 8
8 project = Project.find_with_namespace(repo_path) 9 project = Project.find_with_namespace(repo_path)
9 return false if project.nil? 10 return false if project.nil?
spec/workers/post_receive_spec.rb
@@ -14,8 +14,8 @@ describe PostReceive do @@ -14,8 +14,8 @@ describe PostReceive do
14 let(:key_id) { key.identifier } 14 let(:key_id) { key.identifier }
15 15
16 it "fetches the correct project" do 16 it "fetches the correct project" do
17 - Project.should_receive(:find_by_path).with(project.path).and_return(project)  
18 - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id) 17 + Project.should_receive(:find_by_path).with(project.path_with_namespace).and_return(project)
  18 + PostReceive.perform(pwd(project), 'sha-old', 'sha-new', 'refs/heads/master', key_id)
19 end 19 end
20 20
21 it "does not run if the author is not in the project" do 21 it "does not run if the author is not in the project" do
@@ -24,7 +24,7 @@ describe PostReceive do @@ -24,7 +24,7 @@ describe PostReceive do
24 project.should_not_receive(:observe_push) 24 project.should_not_receive(:observe_push)
25 project.should_not_receive(:execute_hooks) 25 project.should_not_receive(:execute_hooks)
26 26
27 - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id).should be_false 27 + PostReceive.perform(pwd(project), 'sha-old', 'sha-new', 'refs/heads/master', key_id).should be_false
28 end 28 end
29 29
30 it "asks the project to trigger all hooks" do 30 it "asks the project to trigger all hooks" do
@@ -34,7 +34,11 @@ describe PostReceive do @@ -34,7 +34,11 @@ describe PostReceive do
34 project.should_receive(:update_merge_requests) 34 project.should_receive(:update_merge_requests)
35 project.should_receive(:observe_push) 35 project.should_receive(:observe_push)
36 36
37 - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id) 37 + PostReceive.perform(pwd(project), 'sha-old', 'sha-new', 'refs/heads/master', key_id)
38 end 38 end
39 end 39 end
  40 +
  41 + def pwd(project)
  42 + File.join(Gitlab.config.git_base_path, project.path_with_namespace)
  43 + end
40 end 44 end