Commit 216d5e2c1adb8470421a99943f09c45e4e515d5b

Authored by Izaak Alpert
1 parent 5d56da6b

Fix intermittently failing notification_service test

Change-Id: Ic23cb46901f8adc77943bf3cc79566587364e22a
spec/requests/api/repositories_spec.rb
@@ -3,6 +3,7 @@ require 'spec_helper' @@ -3,6 +3,7 @@ require 'spec_helper'
3 describe API::API do 3 describe API::API do
4 include ApiHelpers 4 include ApiHelpers
5 before(:each) { enable_observers } 5 before(:each) { enable_observers }
  6 + after(:each) {disable_observers}
6 7
7 let(:user) { create(:user) } 8 let(:user) { create(:user) }
8 let(:user2) { create(:user) } 9 let(:user2) { create(:user) }
spec/services/notification_service_spec.rb
@@ -2,7 +2,6 @@ require 'spec_helper' @@ -2,7 +2,6 @@ require 'spec_helper'
2 2
3 describe NotificationService do 3 describe NotificationService do
4 let(:notification) { NotificationService.new } 4 let(:notification) { NotificationService.new }
5 -  
6 describe 'Keys' do 5 describe 'Keys' do
7 describe :new_key do 6 describe :new_key do
8 let(:key) { create(:personal_key) } 7 let(:key) { create(:personal_key) }
spec/support/test_env.rb
@@ -34,43 +34,19 @@ module TestEnv @@ -34,43 +34,19 @@ module TestEnv
34 setup_test_repos(opts) if opts[:repos] == true 34 setup_test_repos(opts) if opts[:repos] == true
35 end 35 end
36 36
37 - def testing_path  
38 - Rails.root.join('tmp', 'test-git-base-path')  
39 - end  
40 -  
41 - def seed_repo_path  
42 - Rails.root.join('tmp', 'repositories', 'gitlabhq')  
43 - end  
44 -  
45 - def seed_satellite_path  
46 - Rails.root.join('tmp', 'satellite', 'gitlabhq')  
47 - end  
48 -  
49 - def satellite_path  
50 - "#{testing_path()}/satellite" 37 + def enable_observers
  38 + ActiveRecord::Base.observers.enable(:all)
51 end 39 end
52 40
53 - def repo(namespace, name)  
54 - unless (namespace.nil? || namespace.path.nil? || namespace.path.strip.empty?)  
55 - repo = File.join(testing_path(), "#{namespace.path}/#{name}.git")  
56 - else  
57 - repo = File.join(testing_path(), "#{name}.git")  
58 - end 41 + def disable_observers
  42 + ActiveRecord::Base.observers.disable(:all)
59 end 43 end
60 44
61 - def satellite(namespace, name)  
62 - unless (namespace.nil? || namespace.path.nil? || namespace.path.strip.empty?)  
63 - satellite_repo = File.join(satellite_path, namespace.path, name)  
64 - else  
65 - satellite_repo = File.join(satellite_path, name)  
66 - end 45 + def disable_mailer
  46 + NotificationService.any_instance.stub(mailer: double.as_null_object)
67 end 47 end
68 -  
69 -  
70 - def setup_test_repos(opts ={})  
71 - create_repo(nil, 'gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('')  
72 - create_repo(nil, 'source_gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('source_')  
73 - create_repo(nil, 'target_gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('target_') 48 + def enable_mailer
  49 + NotificationService.any_instance.unstub(:mailer)
74 end 50 end
75 51
76 def setup_stubs() 52 def setup_stubs()
@@ -110,19 +86,6 @@ module TestEnv @@ -110,19 +86,6 @@ module TestEnv
110 ) 86 )
111 end 87 end
112 88
113 - def clear_test_repo_dir  
114 - setup_stubs  
115 - # Use tmp dir for FS manipulations  
116 - repos_path = testing_path()  
117 - # Remove tmp/test-git-base-path  
118 - FileUtils.rm_rf Gitlab.config.gitlab_shell.repos_path  
119 -  
120 - # Recreate tmp/test-git-base-path  
121 - FileUtils.mkdir_p Gitlab.config.gitlab_shell.repos_path  
122 - #Since much more is happening in satellites  
123 - FileUtils.mkdir_p Gitlab.config.satellites.path  
124 - end  
125 -  
126 def clear_repo_dir(namespace, name) 89 def clear_repo_dir(namespace, name)
127 setup_stubs 90 setup_stubs
128 #Clean any .wiki.git that may have been created 91 #Clean any .wiki.git that may have been created
@@ -139,6 +102,60 @@ module TestEnv @@ -139,6 +102,60 @@ module TestEnv
139 create_satellite(repo, namespace, name) 102 create_satellite(repo, namespace, name)
140 end 103 end
141 104
  105 + private
  106 +
  107 + def testing_path
  108 + Rails.root.join('tmp', 'test-git-base-path')
  109 + end
  110 +
  111 + def seed_repo_path
  112 + Rails.root.join('tmp', 'repositories', 'gitlabhq')
  113 + end
  114 +
  115 + def seed_satellite_path
  116 + Rails.root.join('tmp', 'satellite', 'gitlabhq')
  117 + end
  118 +
  119 + def satellite_path
  120 + "#{testing_path()}/satellite"
  121 + end
  122 +
  123 + def repo(namespace, name)
  124 + unless (namespace.nil? || namespace.path.nil? || namespace.path.strip.empty?)
  125 + repo = File.join(testing_path(), "#{namespace.path}/#{name}.git")
  126 + else
  127 + repo = File.join(testing_path(), "#{name}.git")
  128 + end
  129 + end
  130 +
  131 + def satellite(namespace, name)
  132 + unless (namespace.nil? || namespace.path.nil? || namespace.path.strip.empty?)
  133 + satellite_repo = File.join(satellite_path, namespace.path, name)
  134 + else
  135 + satellite_repo = File.join(satellite_path, name)
  136 + end
  137 + end
  138 +
  139 + def setup_test_repos(opts ={})
  140 + create_repo(nil, 'gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('')
  141 + create_repo(nil, 'source_gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('source_')
  142 + create_repo(nil, 'target_gitlabhq') #unless opts[:repo].nil? || !opts[:repo].include?('target_')
  143 + end
  144 +
  145 + def clear_test_repo_dir
  146 + setup_stubs
  147 + # Use tmp dir for FS manipulations
  148 + repos_path = testing_path()
  149 + # Remove tmp/test-git-base-path
  150 + FileUtils.rm_rf Gitlab.config.gitlab_shell.repos_path
  151 +
  152 + # Recreate tmp/test-git-base-path
  153 + FileUtils.mkdir_p Gitlab.config.gitlab_shell.repos_path
  154 +
  155 + #Since much more is happening in satellites
  156 + FileUtils.mkdir_p Gitlab.config.satellites.path
  157 + end
  158 +
142 # Create a testing satellite, and clone the source repo into it 159 # Create a testing satellite, and clone the source repo into it
143 def create_satellite(source_repo, namespace, satellite_name) 160 def create_satellite(source_repo, namespace, satellite_name)
144 satellite_repo = satellite(namespace, satellite_name) 161 satellite_repo = satellite(namespace, satellite_name)
@@ -152,15 +169,5 @@ module TestEnv @@ -152,15 +169,5 @@ module TestEnv
152 system(command) 169 system(command)
153 end 170 end
154 171
155 - def enable_observers  
156 - ActiveRecord::Base.observers.enable(:all)  
157 - end  
158 -  
159 - def disable_observers  
160 - ActiveRecord::Base.observers.disable(:all)  
161 - end  
162 172
163 - def disable_mailer  
164 - NotificationService.any_instance.stub(mailer: double.as_null_object)  
165 - end  
166 end 173 end