Project

General

Profile

Actions

Defect #33181

closed

IssuesSystemTest#test_index_as_csv_should_reflect_sort fails

Added by Go MAEDA about 4 years ago. Updated 3 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Code cleanup/refactoring
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Cant reproduce
Affected version:

Description

IssuesSystemTest#test_index_as_csv_should_reflect_sort fails in trunk or 4.1-stable.

$ bin/rails test test/system/issues_test.rb
Run options: --seed 47671

# Running:

Capybara starting Puma...
* Version 3.12.2 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:57898
[Screenshot]: tmp/screenshots/failures_test_index_as_csv_should_reflect_sort.png
F

Failure:
IssuesSystemTest#test_index_as_csv_should_reflect_sort [/Users/maeda/redmines/4.1-stable/test/system/issues_test.rb:365]:
--- expected
+++ actual
@@ -1 +1 @@
-["Add ingredients categories", "Blocked Issue", "Cannot print recipes", "Error 281 when updating a recipe", "Issue Doing the Blocking", "Issue due today", "Issue of a private subproject", "Private issue on public project", "Subproject issue", "Subproject issue two", "Subtask", "The quick brown fox jumps over the lazy dog", "test"]
+["test", "Subtask", "The quick brown fox jumps over the lazy dog", "Private issue on public project", "Issue Doing the Blocking", "Blocked Issue", "Issue due today", "Add ingredients categories", "Subproject issue two", "Issue of a private subproject", "Subproject issue", "Error 281 when updating a recipe", "Cannot print recipes"]

bin/rails test test/system/issues_test.rb:351
Actions #1

Updated by Yuichi HARADA about 4 years ago

The cause is probably that the file with the same name already exists at the download destination, and the download itself has not finished yet.
Depending on the test environment, a short wait will resolve the problem.

diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb
index 8352a792f..4eda9184a 100644
--- a/test/system/issues_test.rb
+++ b/test/system/issues_test.rb
@@ -359,6 +359,7 @@ class IssuesSystemTest < ApplicationSystemTestCase

     # https://github.com/SeleniumHQ/selenium/issues/5292
     # if issues.csv exists, Chrome creates issues (1).csv, issues (2).csv ...
+    sleep 0.2
     csv = CSV.read(downloaded_file("issues*.csv"))
     subject_index = csv.shift.index('Subject')
     subjects = csv.map {|row| row[subject_index]}
Actions #2

Updated by Go MAEDA over 3 years ago

  • Category set to Code cleanup/refactoring

Unfortunately, #33181#note-1 does not fix the problem in my environment. Maybe 0.2 seconds of sleep is not enough for the environment.

I think the following fix is independent of environments.

diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index f529f07e6..8632e7072 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -74,12 +74,9 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
   def downloaded_file(filename='*')
     files = []
     Timeout.timeout(5) do
-      loop do
-        files = downloaded_files(filename)
-        break if files.present?
-        sleep 0.2
-      end
+      sleep 0.1 until downloaded?
     end
+    files = downloaded_files(filename)
     files.last
   end
 end
Actions #3

Updated by Go MAEDA over 3 years ago

  • Target version set to 4.2.0

Setting the target version to 4.2.0.

Actions #4

Updated by Go MAEDA over 3 years ago

  • Target version deleted (4.2.0)

#33181#note-2 does not work. Maybe I misunderstood something.

Actions #5

Updated by Go MAEDA 3 months ago

  • Status changed from New to Closed
  • Resolution set to Cant reproduce

Maybe fixed by #34119.

Actions

Also available in: Atom PDF