From 3d7194f0112da12e8732df9ffe8b34fe7d0a9f6b Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Thu, 25 Apr 2013 10:15:33 -0400 Subject: Merge Request on forked projects The good: - You can do a merge request for a forked commit and it will merge properly (i.e. it does work). - Push events take into account merge requests on forked projects - Tests around merge_actions now present, spinach, and other rspec tests - Satellites now clean themselves up rather then recreate The questionable: - Events only know about target projects - Project's merge requests only hold on to MR's where they are the target - All operations performed in the satellite The bad: - Duplication between project's repositories and satellites (e.g. commits_between) (for reference: http://feedback.gitlab.com/forums/176466-general/suggestions/3456722-merge-requests-between-projects-repos) Fixes: Make test repos/satellites only create when needed -Spinach/Rspec now only initialize test directory, and setup stubs (things that are relatively cheap) -project_with_code, source_project_with_code, and target_project_with_code now create/destroy their repos individually -fixed remote removal -How to merge renders properly -Update emails to show project/branches -Edit MR doesn't set target branch -Fix some failures on editing/creating merge requests, added a test -Added back a test around merge request observer -Clean up project_transfer_spec, Remove duplicate enable/disable observers -Ensure satellite lock files are cleaned up, Attempted to add some testing around these as well -Signifant speed ups for tests -Update formatting ordering in notes_on_merge_requests -Remove wiki schema update Fixes for search/search results -Search results was using by_project for a list of projects, updated this to use in_projects -updated search results to reference the correct (target) project -udpated search results to print both sides of the merge request Change-Id: I19407990a0950945cc95d62089cbcc6262dab1a8 --- spec/lib/gitlab/satellite/action_spec.rb | 131 ++++++++++++++++++++++++ spec/lib/gitlab/satellite/merge_action_spec.rb | 136 +++++++++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 spec/lib/gitlab/satellite/action_spec.rb create mode 100644 spec/lib/gitlab/satellite/merge_action_spec.rb (limited to 'spec/lib') diff --git a/spec/lib/gitlab/satellite/action_spec.rb b/spec/lib/gitlab/satellite/action_spec.rb new file mode 100644 index 00000000000..3a2dd0bf6d3 --- /dev/null +++ b/spec/lib/gitlab/satellite/action_spec.rb @@ -0,0 +1,131 @@ +require 'spec_helper' + +describe 'Gitlab::Satellite::Action' do + + + let(:project) { create(:project_with_code) } + let(:user) { create(:user) } + + + describe '#prepare_satellite!' do + + it 'create a repository with a parking branch and one remote: origin' do + repo = project.satellite.repo + + #now lets dirty it up + + starting_remote_count = repo.git.list_remotes.size + starting_remote_count.should >= 1 + #kind of hookey way to add a second remote + origin_uri = repo.git.remote({v: true}).split(" ")[1] + begin + repo.git.remote({raise: true}, 'add', 'another-remote', origin_uri) + repo.git.branch({raise: true}, 'a-new-branch') + + repo.heads.size.should > (starting_remote_count) + repo.git.remote().split(" ").size.should > (starting_remote_count) + rescue + end + + repo.git.config({}, "user.name", "#{user.name} -- foo") + repo.git.config({}, "user.email", "#{user.email} -- foo") + repo.config['user.name'].should =="#{user.name} -- foo" + repo.config['user.email'].should =="#{user.email} -- foo" + + + #These must happen in the context of the satellite directory... + satellite_action = Gitlab::Satellite::Action.new(user, project) + project.satellite.lock { + #Now clean it up, use send to get around prepare_satellite! being protected + satellite_action.send(:prepare_satellite!, repo) + } + + #verify it's clean + heads = repo.heads.map(&:name) + heads.size.should == 1 + heads.include?(Gitlab::Satellite::Satellite::PARKING_BRANCH).should == true + remotes = repo.git.remote().split(' ') + remotes.size.should == 1 + remotes.include?('origin').should == true + repo.config['user.name'].should ==user.name + repo.config['user.email'].should ==user.email + end + + + end + + + describe '#in_locked_and_timed_satellite' do + + it 'should make use of a lockfile' do + repo = project.satellite.repo + called = false + + #set assumptions + File.rm(project.satellite.lock_file) unless !File.exists? project.satellite.lock_file + + File.exists?(project.satellite.lock_file).should be_false + + satellite_action = Gitlab::Satellite::Action.new(user, project) + satellite_action.send(:in_locked_and_timed_satellite) do |sat_repo| + repo.should == sat_repo + (File.exists? project.satellite.lock_file).should be_true + called = true + end + + called.should be_true + + end + + it 'should be able to use the satellite after locking' do + pending "can't test this, doesn't seem to be a way to the the flock status on a file, throwing piles of processes at it seems lousy too" + repo = project.satellite.repo + first_call = false + + (File.exists? project.satellite.lock_file).should be_false + + test_file = ->(called) { + File.exists?(project.satellite.lock_file).should be_true + called.should be_true + File.readlines.should == "some test code" + File.truncate(project.satellite.lock, 0) + File.readlines.should == "" + } + + write_file = ->(called, checker) { + if (File.exists?(project.satellite.lock_file)) + file = File.open(project.satellite.lock, '+w') + file.write("some test code") + file.close + checker.call(called) + end + } + + + satellite_action = Gitlab::Satellite::Action.new(user, project) + satellite_action.send(:in_locked_and_timed_satellite) do |sat_repo| + write_file.call(first_call, test_file) + first_call = true + repo.should == sat_repo + (File.exists? project.satellite.lock_file).should be_true + + end + + first_call.should be_true + puts File.stat(project.satellite.lock_file).inspect + + second_call = false + satellite_action.send(:in_locked_and_timed_satellite) do |sat_repo| + write_file.call(second_call, test_file) + second_call = true + repo.should == sat_repo + (File.exists? project.satellite.lock_file).should be_true + end + + second_call.should be_true + (File.exists? project.satellite.lock_file).should be_true + end + + end +end + diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb new file mode 100644 index 00000000000..36e6b3c7973 --- /dev/null +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -0,0 +1,136 @@ +require 'spec_helper' + +describe 'Gitlab::Satellite::MergeAction' do + before(:each) do +# TestEnv.init(mailer: false, init_repos: true, repos: true) + @master = ['master', 'bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a'] + @one_after_stable = ['stable', '6ea87c47f0f8a24ae031c3fff17bc913889ecd00'] #this commit sha is one after stable + @wiki_branch = ['wiki', '635d3e09b72232b6e92a38de6cc184147e5bcb41'] #this is the commit sha where the wiki branch goes off from master + @conflicting_metior = ['metior', '313d96e42b313a0af5ab50fa233bf43e27118b3f'] #this branch conflicts with the wiki branch + + #these commits are quite close together, itended to make string diffs/format patches small + @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3'] + @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633'] + + end + + let(:project) { create(:project_with_code) } + let(:merge_request) { create(:merge_request, source_project: project, target_project: project) } + let(:merge_request_fork) { create(:merge_request) } + describe '#commits_between' do + context 'on fork' do + it 'should get proper commits between' do + merge_request_fork.target_branch = @one_after_stable[0] + merge_request_fork.source_branch = @master[0] + commits = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).commits_between + commits.first.id.should == @one_after_stable[1] + commits.last.id.should == @master[1] + + merge_request_fork.target_branch = @wiki_branch[0] + merge_request_fork.source_branch = @master[0] + commits = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).commits_between + commits.first.id.should == @wiki_branch[1] + commits.last.id.should == @master[1] + end + end + + context 'between branches' do + it 'should get proper commits between' do + merge_request.target_branch = @one_after_stable[0] + merge_request.source_branch = @master[0] + commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between + commits.first.id.should == @one_after_stable[1] + commits.last.id.should == @master[1] + + merge_request.target_branch = @wiki_branch[0] + merge_request.source_branch = @master[0] + commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between + commits.first.id.should == @wiki_branch[1] + commits.last.id.should == @master[1] + end + end + end + + + describe '#format_patch' do + context 'on fork' do + it 'should build a format patch' do + merge_request_fork.target_branch = @close_commit1[0] + merge_request_fork.source_branch = @close_commit2[0] + patch = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).format_patch + (patch.include? "From #{@close_commit2[1]}").should be_true + (patch.include? "From #{@close_commit1[1]}").should be_true + end + end + + context 'between branches' do + it 'should build a format patch' do + merge_request.target_branch = @close_commit1[0] + merge_request.source_branch = @close_commit2[0] + patch = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).format_patch + (patch.include? "From #{@close_commit2[1]}").should be_true + (patch.include? "From #{@close_commit1[1]}").should be_true + end + end + end + + + describe '#diffs_between_satellite tested against diff_in_satellite' do + context 'on fork' do + it 'should get proper diffs' do + merge_request_fork.target_branch = @close_commit1[0] + merge_request_fork.source_branch = @master[0] + diffs = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).diffs_between_satellite + + merge_request_fork.target_branch = @close_commit1[0] + merge_request_fork.source_branch = @master[0] + diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request_fork).diffs_between_satellite + + diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + end + end + + context 'between branches' do + it 'should get proper diffs' do + merge_request.target_branch = @close_commit1[0] + merge_request.source_branch = @wiki_branch[0] + diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite + + + merge_request.target_branch = @close_commit1[0] + merge_request.source_branch = @master[0] + diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite + + diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + end + end + end + + + describe '#can_be_merged?' do + context 'on fork' do + it 'return true or false depending on if something is mergable' do + merge_request_fork.target_branch = @one_after_stable[0] + merge_request_fork.source_branch = @master[0] + Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).can_be_merged?.should be_true + + merge_request_fork.target_branch = @conflicting_metior[0] + merge_request_fork.source_branch = @wiki_branch[0] + Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).can_be_merged?.should be_false + end + end + + context 'between branches' do + it 'return true or false depending on if something is mergable' do + merge_request.target_branch = @one_after_stable[0] + merge_request.source_branch = @master[0] + Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).can_be_merged?.should be_true + + merge_request.target_branch = @conflicting_metior[0] + merge_request.source_branch = @wiki_branch[0] + Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).can_be_merged?.should be_false + end + end + end + +end \ No newline at end of file -- cgit v1.2.3 From 489fa5d72631505873b8c33f3a2bbd5919330a92 Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Mon, 3 Jun 2013 16:20:50 -0400 Subject: MR on Fork multiple fixes -Disable observers post test run -Allow db:seed_fu RAILS_ENV=test to be run more than once without error -fix diffs_in_between, was passing in the default_options for grit, but grit in this case doesn't take options, fixed the test to actually fail if the incorrect diffs are returned -make notes/commits render against proper project -MR discussion file links should reference note's project -Added tests for commit links on edit merge request -fixes edit issues (canceling an edited mr, updating an edited mr) -updates tests with checks for source code updates -still forked_merge_requests.feature (project_forked_merge_requests) test not passing (commented out -- "stable" not being set) MR API: error on bad target_project -If the target project id is specified and it is not the same as the project the request is being made on (the source), and the it isn't a fork of that project, error out, otherwise use it as the target -Fixes some busted (but hidden) test cases Conflicts: app/views/merge_requests/show/_diffs.html.haml spec/features/notes_on_merge_requests_spec.rb Change-Id: I20e595c156d0e8a63048baaead7be6330c738a05 --- spec/lib/gitlab/satellite/merge_action_spec.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'spec/lib') diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb index 36e6b3c7973..d0b59d379c8 100644 --- a/spec/lib/gitlab/satellite/merge_action_spec.rb +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -76,6 +76,13 @@ describe 'Gitlab::Satellite::MergeAction' do describe '#diffs_between_satellite tested against diff_in_satellite' do + + def is_a_matching_diff(diff, diffs) + diff_count = diff.scan('diff --git').size + diff_count.should >= 1 + diffs.size.should == diff_count + diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + end context 'on fork' do it 'should get proper diffs' do merge_request_fork.target_branch = @close_commit1[0] @@ -84,24 +91,24 @@ describe 'Gitlab::Satellite::MergeAction' do merge_request_fork.target_branch = @close_commit1[0] merge_request_fork.source_branch = @master[0] - diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request_fork).diffs_between_satellite + diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request_fork).diff_in_satellite - diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + is_a_matching_diff(diff,diffs) end end context 'between branches' do it 'should get proper diffs' do merge_request.target_branch = @close_commit1[0] - merge_request.source_branch = @wiki_branch[0] + merge_request.source_branch = @master[0] diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite merge_request.target_branch = @close_commit1[0] merge_request.source_branch = @master[0] - diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite + diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite - diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + is_a_matching_diff(diff,diffs) end end end -- cgit v1.2.3 From 5d56da6bddcaa4d510fd97a8e38d80e750e3e20f Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Thu, 6 Jun 2013 17:22:36 -0400 Subject: MR on fork: Some cleanup, test updates -The forked merge request test now tests it's componenets again, and seems to work every time (did this by reordering the branch updates so their is more time for update_branches to run) -- this could still technically fail, but after several runs it doesn't seem to. -Removed todo in merge_request, pushed wrapping of grit down to the satellite -updated action test to check flock status, made it nolonger pending -moved all logging on failure to helper method in satellite GITLAB-592 Change-Id: If0554ca35eedc3d3e8461f7d93d4b3939fa2cd75 --- spec/lib/gitlab/satellite/action_spec.rb | 61 +++++++++++--------------- spec/lib/gitlab/satellite/merge_action_spec.rb | 30 ++++++++----- 2 files changed, 44 insertions(+), 47 deletions(-) (limited to 'spec/lib') diff --git a/spec/lib/gitlab/satellite/action_spec.rb b/spec/lib/gitlab/satellite/action_spec.rb index 3a2dd0bf6d3..e37edb9614b 100644 --- a/spec/lib/gitlab/satellite/action_spec.rb +++ b/spec/lib/gitlab/satellite/action_spec.rb @@ -78,52 +78,43 @@ describe 'Gitlab::Satellite::Action' do end it 'should be able to use the satellite after locking' do - pending "can't test this, doesn't seem to be a way to the the flock status on a file, throwing piles of processes at it seems lousy too" repo = project.satellite.repo - first_call = false - - (File.exists? project.satellite.lock_file).should be_false - - test_file = ->(called) { - File.exists?(project.satellite.lock_file).should be_true - called.should be_true - File.readlines.should == "some test code" - File.truncate(project.satellite.lock, 0) - File.readlines.should == "" - } - - write_file = ->(called, checker) { - if (File.exists?(project.satellite.lock_file)) - file = File.open(project.satellite.lock, '+w') - file.write("some test code") - file.close - checker.call(called) - end - } + called = false + # Set base assumptions + if File.exists? project.satellite.lock_file + FileLockStatusChecker.new(project.satellite.lock_file).flocked?.should be_false + end satellite_action = Gitlab::Satellite::Action.new(user, project) satellite_action.send(:in_locked_and_timed_satellite) do |sat_repo| - write_file.call(first_call, test_file) - first_call = true + called = true repo.should == sat_repo (File.exists? project.satellite.lock_file).should be_true - + FileLockStatusChecker.new(project.satellite.lock_file).flocked?.should be_true end - first_call.should be_true - puts File.stat(project.satellite.lock_file).inspect + called.should be_true + FileLockStatusChecker.new(project.satellite.lock_file).flocked?.should be_false - second_call = false - satellite_action.send(:in_locked_and_timed_satellite) do |sat_repo| - write_file.call(second_call, test_file) - second_call = true - repo.should == sat_repo - (File.exists? project.satellite.lock_file).should be_true - end + end - second_call.should be_true - (File.exists? project.satellite.lock_file).should be_true + class FileLockStatusChecker < File + def flocked? &block + status = flock LOCK_EX|LOCK_NB + case status + when false + return true + when 0 + begin + block ? block.call : false + ensure + flock LOCK_UN + end + else + raise SystemCallError, status + end + end end end diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb index d0b59d379c8..3f6e5c35245 100644 --- a/spec/lib/gitlab/satellite/merge_action_spec.rb +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -8,7 +8,7 @@ describe 'Gitlab::Satellite::MergeAction' do @wiki_branch = ['wiki', '635d3e09b72232b6e92a38de6cc184147e5bcb41'] #this is the commit sha where the wiki branch goes off from master @conflicting_metior = ['metior', '313d96e42b313a0af5ab50fa233bf43e27118b3f'] #this branch conflicts with the wiki branch - #these commits are quite close together, itended to make string diffs/format patches small + #these commits are quite close together, itended to make string diffs/format patches small @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3'] @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633'] @@ -18,19 +18,23 @@ describe 'Gitlab::Satellite::MergeAction' do let(:merge_request) { create(:merge_request, source_project: project, target_project: project) } let(:merge_request_fork) { create(:merge_request) } describe '#commits_between' do + def verify_commits(commits, first_commit_sha, last_commit_sha) + commits.each { |commit| commit.class.should == Gitlab::Git::Commit } + commits.first.id.should == first_commit_sha + commits.last.id.should == last_commit_sha + end + context 'on fork' do it 'should get proper commits between' do merge_request_fork.target_branch = @one_after_stable[0] merge_request_fork.source_branch = @master[0] commits = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).commits_between - commits.first.id.should == @one_after_stable[1] - commits.last.id.should == @master[1] + verify_commits(commits, @one_after_stable[1], @master[1]) merge_request_fork.target_branch = @wiki_branch[0] merge_request_fork.source_branch = @master[0] commits = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).commits_between - commits.first.id.should == @wiki_branch[1] - commits.last.id.should == @master[1] + verify_commits(commits, @wiki_branch[1], @master[1]) end end @@ -39,14 +43,12 @@ describe 'Gitlab::Satellite::MergeAction' do merge_request.target_branch = @one_after_stable[0] merge_request.source_branch = @master[0] commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between - commits.first.id.should == @one_after_stable[1] - commits.last.id.should == @master[1] + verify_commits(commits, @one_after_stable[1], @master[1]) merge_request.target_branch = @wiki_branch[0] merge_request.source_branch = @master[0] commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between - commits.first.id.should == @wiki_branch[1] - commits.last.id.should == @master[1] + verify_commits(commits, @wiki_branch[1], @master[1]) end end end @@ -81,8 +83,12 @@ describe 'Gitlab::Satellite::MergeAction' do diff_count = diff.scan('diff --git').size diff_count.should >= 1 diffs.size.should == diff_count - diffs.each {|a_diff| (diff.include? a_diff.diff).should be_true} + diffs.each do |a_diff| + a_diff.class.should == Gitlab::Git::Diff + (diff.include? a_diff.diff).should be_true + end end + context 'on fork' do it 'should get proper diffs' do merge_request_fork.target_branch = @close_commit1[0] @@ -93,7 +99,7 @@ describe 'Gitlab::Satellite::MergeAction' do merge_request_fork.source_branch = @master[0] diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request_fork).diff_in_satellite - is_a_matching_diff(diff,diffs) + is_a_matching_diff(diff, diffs) end end @@ -108,7 +114,7 @@ describe 'Gitlab::Satellite::MergeAction' do merge_request.source_branch = @master[0] diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite - is_a_matching_diff(diff,diffs) + is_a_matching_diff(diff, diffs) end end end -- cgit v1.2.3 From d99594273d57b2d5ed7c748b3185712960b89478 Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Tue, 16 Jul 2013 17:14:03 -0400 Subject: Style changes from review with @randx -Some changes around calling origional methods for !for_fork? merge requests. Other changes to follow Change-Id: I009c716ce2475b9efa3fd07aee9215fca7a1c150 --- spec/lib/gitlab/satellite/action_spec.rb | 6 ------ spec/lib/gitlab/satellite/merge_action_spec.rb | 6 ------ 2 files changed, 12 deletions(-) (limited to 'spec/lib') diff --git a/spec/lib/gitlab/satellite/action_spec.rb b/spec/lib/gitlab/satellite/action_spec.rb index e37edb9614b..5e0a825c3c3 100644 --- a/spec/lib/gitlab/satellite/action_spec.rb +++ b/spec/lib/gitlab/satellite/action_spec.rb @@ -1,12 +1,9 @@ require 'spec_helper' describe 'Gitlab::Satellite::Action' do - - let(:project) { create(:project_with_code) } let(:user) { create(:user) } - describe '#prepare_satellite!' do it 'create a repository with a parking branch and one remote: origin' do @@ -50,11 +47,8 @@ describe 'Gitlab::Satellite::Action' do repo.config['user.name'].should ==user.name repo.config['user.email'].should ==user.email end - - end - describe '#in_locked_and_timed_satellite' do it 'should make use of a lockfile' do diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb index 3f6e5c35245..2478efe8493 100644 --- a/spec/lib/gitlab/satellite/merge_action_spec.rb +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -11,7 +11,6 @@ describe 'Gitlab::Satellite::MergeAction' do #these commits are quite close together, itended to make string diffs/format patches small @close_commit1 = ['2_3_notes_fix', '8470d70da67355c9c009e4401746b1d5410af2e3'] @close_commit2 = ['scss_refactoring', 'f0f14c8eaba69ebddd766498a9d0b0e79becd633'] - end let(:project) { create(:project_with_code) } @@ -53,7 +52,6 @@ describe 'Gitlab::Satellite::MergeAction' do end end - describe '#format_patch' do context 'on fork' do it 'should build a format patch' do @@ -76,7 +74,6 @@ describe 'Gitlab::Satellite::MergeAction' do end end - describe '#diffs_between_satellite tested against diff_in_satellite' do def is_a_matching_diff(diff, diffs) @@ -109,7 +106,6 @@ describe 'Gitlab::Satellite::MergeAction' do merge_request.source_branch = @master[0] diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite - merge_request.target_branch = @close_commit1[0] merge_request.source_branch = @master[0] diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite @@ -119,7 +115,6 @@ describe 'Gitlab::Satellite::MergeAction' do end end - describe '#can_be_merged?' do context 'on fork' do it 'return true or false depending on if something is mergable' do @@ -145,5 +140,4 @@ describe 'Gitlab::Satellite::MergeAction' do end end end - end \ No newline at end of file -- cgit v1.2.3 From 58064027408bcbfb9e6216a3157dffd9c324848d Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Wed, 17 Jul 2013 16:28:07 -0400 Subject: Raise Error for diff_between/commit_between for non fork mr's in satellite -Fixed tests to account for this -Trigger update after update_branches for list:update selecting first commit, have it also trigger sha lookup Change-Id: Ie4c3d4fbf57aeadd7d141d3704f4ea0f0684a7a5 --- spec/lib/gitlab/satellite/merge_action_spec.rb | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'spec/lib') diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb index 2478efe8493..98e475e715d 100644 --- a/spec/lib/gitlab/satellite/merge_action_spec.rb +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -38,16 +38,14 @@ describe 'Gitlab::Satellite::MergeAction' do end context 'between branches' do - it 'should get proper commits between' do + it 'should raise exception -- not expected to be used by non forks' do merge_request.target_branch = @one_after_stable[0] merge_request.source_branch = @master[0] - commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between - verify_commits(commits, @one_after_stable[1], @master[1]) + expect {Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between}.to raise_error merge_request.target_branch = @wiki_branch[0] merge_request.source_branch = @master[0] - commits = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between - verify_commits(commits, @wiki_branch[1], @master[1]) + expect {Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between}.to raise_error end end end @@ -104,13 +102,7 @@ describe 'Gitlab::Satellite::MergeAction' do it 'should get proper diffs' do merge_request.target_branch = @close_commit1[0] merge_request.source_branch = @master[0] - diffs = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite - - merge_request.target_branch = @close_commit1[0] - merge_request.source_branch = @master[0] - diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diff_in_satellite - - is_a_matching_diff(diff, diffs) + expect{Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite}.to raise_error end end end -- cgit v1.2.3