summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Mathiesen <marius@shortcut.no>2009-11-23 14:11:09 +0100
committerJohan Sørensen <johan@johansorensen.com>2009-11-30 10:00:16 +0100
commita1bc845f7c6ca826eba96f11baa9f3ae2f4e80e7 (patch)
treecfd35a8022c45921b51dfc5b5bdd97c439bce1e1
parent689185f2f64ad90074545f61ce2d9c0769a82485 (diff)
downloadgitorious-mainline-outdated-a1bc845f7c6ca826eba96f11baa9f3ae2f4e80e7.zip
gitorious-mainline-outdated-a1bc845f7c6ca826eba96f11baa9f3ae2f4e80e7.tar.gz
gitorious-mainline-outdated-a1bc845f7c6ca826eba96f11baa9f3ae2f4e80e7.tar.bz2
Load the correct merge request in various scenarios
- Repositories#config scopes merge requests on repository - MergeRequestProcessor looks up by sequence number, not id - PushEventProcessor finds merge request in repo, not directly by sequence_number - MergeRequests#show use to_param in title
-rw-r--r--app/controllers/repositories_controller.rb2
-rw-r--r--app/processors/merge_request_processor.rb4
-rw-r--r--app/processors/push_event_processor.rb2
-rw-r--r--app/views/merge_requests/show.html.erb2
-rw-r--r--test/unit/processors/merge_request_git_backend_processor_test.rb13
-rw-r--r--test/unit/processors/merge_request_processor_test.rb3
6 files changed, 7 insertions, 19 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index cef806c..9a7db2f 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -191,7 +191,7 @@ class RepositoriesController < ApplicationController
if user && result = /^refs\/merge-requests\/(\d+)$/.match(params[:git_path].to_s)
# git_path is a merge request
begin
- if merge_request = MergeRequest.find_by_sequence_number!(result[1]) and (merge_request.user == user)
+ if merge_request = @repository.merge_requests.find_by_sequence_number!(result[1]) and (merge_request.user == user)
render :text => "true" and return
end
rescue ActiveRecord::RecordNotFound # No such merge request
diff --git a/app/processors/merge_request_processor.rb b/app/processors/merge_request_processor.rb
index 3a12113..94c1a87 100644
--- a/app/processors/merge_request_processor.rb
+++ b/app/processors/merge_request_processor.rb
@@ -21,8 +21,8 @@ class MergeRequestProcessor < ApplicationProcessor
def on_message(message)
verify_connections!
json = ActiveSupport::JSON.decode(message)
- merge_request_id = json['merge_request_id']
- merge_request = MergeRequest.find(merge_request_id)
+ merge_request_id = json['merge_request_id'].to_s
+ merge_request = MergeRequest.find_by_sequence_number!(merge_request_id)
if !merge_request.target_repository.has_tracking_repository?
create_tracking_repository(merge_request)
end
diff --git a/app/processors/push_event_processor.rb b/app/processors/push_event_processor.rb
index dfa39cf..99acab1 100644
--- a/app/processors/push_event_processor.rb
+++ b/app/processors/push_event_processor.rb
@@ -164,7 +164,7 @@ class PushEventProcessor < ApplicationProcessor
@events << e
when :tag
when :review
- merge_request = MergeRequest.find_by_sequence_number!(identifier)
+ merge_request = @repository.merge_requests.find_by_sequence_number!(identifier)
merge_request.update_from_push!
end
when :delete
diff --git a/app/views/merge_requests/show.html.erb b/app/views/merge_requests/show.html.erb
index e9b75aa..5b43913 100644
--- a/app/views/merge_requests/show.html.erb
+++ b/app/views/merge_requests/show.html.erb
@@ -23,7 +23,7 @@
%>
<%= breadcrumbs_from(@merge_request) -%>
-<% @page_title = "Merge request ##{@merge_request.id}: #{h(@merge_request.summary)}" -%>
+<% @page_title = "Merge request ##{@merge_request.to_param}: #{h(@merge_request.summary)}" -%>
<h1><%= t("views.merges.show_title", :id => h(@merge_request.to_param), :summary => h(@merge_request.summary)) -%></h1>
diff --git a/test/unit/processors/merge_request_git_backend_processor_test.rb b/test/unit/processors/merge_request_git_backend_processor_test.rb
index ee8a99e..fc77113 100644
--- a/test/unit/processors/merge_request_git_backend_processor_test.rb
+++ b/test/unit/processors/merge_request_git_backend_processor_test.rb
@@ -38,9 +38,7 @@ class MergeRequestGitBackendProcessorTest < ActiveSupport::TestCase
@source_git_repo.stubs(:git).returns(@source_git)
@merge_request.source_repository.stubs(:git).returns(@source_git_repo)
@msg = {
- :merge_request_id => @merge_request.to_param,
:action => "delete",
- :target_path => @merge_request.target_repository.full_repository_path,
:target_name => @merge_request.target_repository.url_path,
:merge_branch_name => @merge_request.merge_branch_name,
:source_repository_id => @merge_request.source_repository.id,
@@ -71,16 +69,5 @@ class MergeRequestGitBackendProcessorTest < ActiveSupport::TestCase
assert_equal :delete, @processor.action
end
- should "understand the close command" do
- msg = {:merge_request_id => @merge_request.to_param, :action => "close"}
- @processor.expects(:do_close)
- @processor.on_message(msg.to_json)
- end
-
- should "understand the reopen command" do
- msg = {:merge_request_id => @merge_request.to_param, :action => "reopen"}
- @processor.expects(:do_reopen)
- @processor.on_message(msg.to_json)
- end
end
end
diff --git a/test/unit/processors/merge_request_processor_test.rb b/test/unit/processors/merge_request_processor_test.rb
index 9c15e05..e691e09 100644
--- a/test/unit/processors/merge_request_processor_test.rb
+++ b/test/unit/processors/merge_request_processor_test.rb
@@ -26,7 +26,8 @@ class MergeRequestProcessorTest < ActiveSupport::TestCase
@merge_request = merge_requests(:moes_to_johans_open)
@target_repo = @merge_request.target_repository
@merge_request.stubs(:target_repository).returns(@target_repo)
- MergeRequest.stubs(:find).returns(@merge_request)
+ MergeRequest.expects(:find_by_sequence_number!).with(@merge_request.to_param)
+ .returns(@merge_request)
@tracking_repo = mock("Tracking repository")
@tracking_repo.stubs(:real_gitdir).returns("ff0/bbc/234")
@target_repo.stubs(:create_tracking_repository).returns(@tracking_repo)