Commit 76d19d4c434b76d59922c3e0f9d312a90846710c

Authored by Weblate
2 parents bf2825af a7ef8536

Merge remote-tracking branch 'origin/master'

features/signup.feature
@@ -278,29 +278,6 @@ Feature: signup @@ -278,29 +278,6 @@ Feature: signup
278 Then "José da Silva" should be a member of "Free Software" 278 Then "José da Silva" should be a member of "Free Software"
279 279
280 @selenium 280 @selenium
281 - Scenario: join community on direct signup  
282 - Given the following users  
283 - | login | name |  
284 - | mariasilva | Maria Silva |  
285 - And the following communities  
286 - | name | identifier | owner |  
287 - | Free Software | freesoftware | mariasilva |  
288 - And feature "skip_new_user_email_confirmation" is enabled on environment  
289 - And I am on /freesoftware  
290 - When I follow "Join"  
291 - And I follow "New user"  
292 - And I fill in the following within ".no-boxes":  
293 - | e-Mail | josesilva@example.com |  
294 - | Username | josesilva |  
295 - | Password | secret |  
296 - | Password confirmation | secret |  
297 - | Full name | José da Silva |  
298 - And wait for the captcha signup time  
299 - And I press "Create my account"  
300 - Then I should see "Control panel"  
301 - And "José da Silva" should be a member of "Free Software"  
302 -  
303 - @selenium  
304 Scenario: user registration is moderated by admin 281 Scenario: user registration is moderated by admin
305 Given feature "admin_must_approve_new_users" is enabled on environment 282 Given feature "admin_must_approve_new_users" is enabled on environment
306 And feature "skip_new_user_email_confirmation" is disabled on environment 283 And feature "skip_new_user_email_confirmation" is disabled on environment
lib/tasks/plugins_tests.rake
  1 +@broken_plugins = %w[
  2 + anti_spam
  3 + bsc
  4 + comment_classification
  5 + ldap
  6 + send_email
  7 + shopping_cart
  8 + solr
  9 + tolerance_time
  10 +]
  11 +
1 @all_plugins = Dir.glob('plugins/*').map { |f| File.basename(f) } - ['template'] 12 @all_plugins = Dir.glob('plugins/*').map { |f| File.basename(f) } - ['template']
2 @all_plugins.sort! 13 @all_plugins.sort!
3 @all_tasks = [:units, :functionals, :integration, :cucumber, :selenium] 14 @all_tasks = [:units, :functionals, :integration, :cucumber, :selenium]
@@ -167,6 +178,7 @@ def test_sequence(plugins, tasks) @@ -167,6 +178,7 @@ def test_sequence(plugins, tasks)
167 end 178 end
168 end 179 end
169 rollback_plugins_state 180 rollback_plugins_state
  181 + yield(failed) if block_given?
170 fail 'There are broken tests to be fixed!' if fail_flag 182 fail 'There are broken tests to be fixed!' if fail_flag
171 end 183 end
172 184
@@ -195,13 +207,39 @@ namespace :test do @@ -195,13 +207,39 @@ namespace :test do
195 @all_tasks.each do |taskname| 207 @all_tasks.each do |taskname|
196 desc "Run #{taskname} tests for all plugins" 208 desc "Run #{taskname} tests for all plugins"
197 task taskname do 209 task taskname do
198 - test_sequence(@all_plugins, taskname) 210 + test_sequence(@all_plugins - @broken_plugins, taskname)
199 end 211 end
200 end 212 end
201 end 213 end
202 214
203 desc "Run all tests for all plugins" 215 desc "Run all tests for all plugins"
204 task :noosfero_plugins do 216 task :noosfero_plugins do
205 - test_sequence(@all_plugins, @all_tasks) 217 + test_sequence(@all_plugins - @broken_plugins, @all_tasks) do |failed|
  218 + plugins_status_report(failed)
  219 + end
206 end 220 end
207 end 221 end
  222 +
  223 +def plugins_status_report(failed)
  224 + w = @all_plugins.map { |s| s.size }.max
  225 +
  226 + puts
  227 + printf ('=' * (w + 21)) + "\n"
  228 + puts 'Plugins status report'
  229 + printf ('=' * (w + 21)) + "\n"
  230 + printf "%-#{w}s %s\n", "Plugin", "Status"
  231 + printf ('-' * w) + ' ' + ('-' * 20) + "\n"
  232 +
  233 + @all_plugins.each do |plugin|
  234 + if @broken_plugins.include?(plugin)
  235 + status = "SKIP"
  236 + elsif !failed[plugin] || failed[plugin].empty?
  237 + status = "PASS"
  238 + else
  239 + status = "FAIL: #{failed[plugin].join(', ')}"
  240 + end
  241 + printf "%-#{w}s %s\n", plugin, status
  242 + end
  243 + printf ('=' * (w + 21)) + "\n"
  244 + puts
  245 +end