]> git.openstreetmap.org Git - rails.git/commitdiff
Use unique test directories for each trace test
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 27 Nov 2019 13:57:49 +0000 (14:57 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 18 Mar 2020 14:04:18 +0000 (15:04 +0100)
This allows tests to be run in parallel, since it avoids deleting
some of the symlinks that other tests expect to be there.

test/controllers/api/traces_controller_test.rb
test/controllers/traces_controller_test.rb
test/models/trace_test.rb

index 53964b2db0f4ebccfe36ba57ded0e80d8ac29e71..be5cb16cf27c34c0cbf3eac0ed5722bf99e9724b 100644 (file)
@@ -3,9 +3,20 @@ require "minitest/mock"
 
 module Api
   class TracesControllerTest < ActionController::TestCase
+    # Use temporary directories with unique names for each test
+    # This allows the tests to be run in parallel.
+    def setup
+      @gpx_trace_dir_orig = Settings.gpx_trace_dir
+      @gpx_image_dir_orig = Settings.gpx_image_dir
+      Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
+      Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
+    end
+
     def teardown
-      File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
-      File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
+      FileUtils.remove_dir(Settings.gpx_trace_dir)
+      FileUtils.remove_dir(Settings.gpx_image_dir)
+      Settings.gpx_trace_dir = @gpx_trace_dir_orig
+      Settings.gpx_image_dir = @gpx_image_dir_orig
     end
 
     ##
index 312d451d7e328cc37ea8d052effada071d4a88e6..0f9a9c1dba14123eb57c88ad6292e885e7df0154 100644 (file)
@@ -2,9 +2,20 @@ require "test_helper"
 require "minitest/mock"
 
 class TracesControllerTest < ActionController::TestCase
+  # Use temporary directories with unique names for each test
+  # This allows the tests to be run in parallel.
+  def setup
+    @gpx_trace_dir_orig = Settings.gpx_trace_dir
+    @gpx_image_dir_orig = Settings.gpx_image_dir
+    Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
+    Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
+  end
+
   def teardown
-    File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
-    File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
+    FileUtils.remove_dir(Settings.gpx_trace_dir)
+    FileUtils.remove_dir(Settings.gpx_image_dir)
+    Settings.gpx_trace_dir = @gpx_trace_dir_orig
+    Settings.gpx_image_dir = @gpx_image_dir_orig
   end
 
   ##
index e0c65e33eeb58884dd23a9ebdbc1d7a909a53660..b610a338a5db764b5cd523bc3ad70b709c7a5c2d 100644 (file)
@@ -3,9 +3,20 @@ require "gpx"
 require "minitest/mock"
 
 class TraceTest < ActiveSupport::TestCase
+  # Use temporary directories with unique names for each test
+  # This allows the tests to be run in parallel.
+  def setup
+    @gpx_trace_dir_orig = Settings.gpx_trace_dir
+    @gpx_image_dir_orig = Settings.gpx_image_dir
+    Settings.gpx_trace_dir = Dir.mktmpdir("trace", Rails.root.join("test/gpx"))
+    Settings.gpx_image_dir = Dir.mktmpdir("image", Rails.root.join("test/gpx"))
+  end
+
   def teardown
-    File.unlink(*Dir.glob(File.join(Settings.gpx_trace_dir, "*.gpx")))
-    File.unlink(*Dir.glob(File.join(Settings.gpx_image_dir, "*.gif")))
+    FileUtils.remove_dir(Settings.gpx_trace_dir)
+    FileUtils.remove_dir(Settings.gpx_image_dir)
+    Settings.gpx_trace_dir = @gpx_trace_dir_orig
+    Settings.gpx_image_dir = @gpx_image_dir_orig
   end
 
   def test_visible