Commit 216d5e2c1adb8470421a99943f09c45e4e515d5b
1 parent
5d56da6b
Exists in
master
and in
4 other branches
Fix intermittently failing notification_service test
Change-Id: Ic23cb46901f8adc77943bf3cc79566587364e22a
Showing
3 changed files
with
63 additions
and
56 deletions
Show diff stats
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 |