From d911a470c840dd2772788c56f8450dd2cc742947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Wed, 26 Nov 2025 09:11:06 +0100 Subject: [PATCH] #9 Active Storage - PG::ForeignKeyViolation --- test/integration_test.rb | 23 +++++------------------ test/test_case.rb | 23 +++++------------------ test/unit_test.rb | 23 +++++------------------ 3 files changed, 15 insertions(+), 54 deletions(-) diff --git a/test/integration_test.rb b/test/integration_test.rb index d8d16548..4b993a9a 100644 --- a/test/integration_test.rb +++ b/test/integration_test.rb @@ -25,24 +25,11 @@ module RedmineDmsf super # Load all plugin's fixtures dir = File.join(File.dirname(__FILE__), 'fixtures') - # We can't simply read the whole dir as we need to be active_storage_blobs read before - # active_storage_attachments due to PG::ForeignKeyViolation - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_blobs' - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_attachments' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_fields' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_values' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_file_revisions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_files' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folder_permissions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folders' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_links' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_locks' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_public_urls' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_actions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_assignments' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_steps' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflows' - ActiveRecord::FixtureSet.create_fixtures dir, 'queries' + ext = '.yml' + Dir.glob("#{dir}/**/*#{ext}").each do |file| + fixture = File.basename(file, ext) + ActiveRecord::FixtureSet.create_fixtures dir, fixture + end end def setup diff --git a/test/test_case.rb b/test/test_case.rb index 242bd775..32fb5fef 100644 --- a/test/test_case.rb +++ b/test/test_case.rb @@ -25,24 +25,11 @@ module RedmineDmsf super # Load all plugin's fixtures dir = File.join(File.dirname(__FILE__), 'fixtures') - # We can't simply read the whole dir as we need to be active_storage_blobs read before - # active_storage_attachments due to PG::ForeignKeyViolation - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_blobs' - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_attachments' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_fields' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_values' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_file_revisions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_files' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folder_permissions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folders' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_links' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_locks' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_public_urls' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_actions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_assignments' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_steps' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflows' - ActiveRecord::FixtureSet.create_fixtures dir, 'queries' + ext = '.yml' + Dir.glob("#{dir}/**/*#{ext}").each do |file| + fixture = File.basename(file, ext) + ActiveRecord::FixtureSet.create_fixtures dir, fixture + end end def setup diff --git a/test/unit_test.rb b/test/unit_test.rb index 1730fccf..57365f29 100644 --- a/test/unit_test.rb +++ b/test/unit_test.rb @@ -25,24 +25,11 @@ module RedmineDmsf super # Load all plugin's fixtures dir = File.join(File.dirname(__FILE__), 'fixtures') - # We can't simply read the whole dir as we need to be active_storage_blobs read before - # active_storage_attachments due to PG::ForeignKeyViolation - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_blobs' - ActiveRecord::FixtureSet.create_fixtures dir, 'active_storage_attachments' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_fields' - ActiveRecord::FixtureSet.create_fixtures dir, 'custom_values' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_file_revisions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_files' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folder_permissions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_folders' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_links' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_locks' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_public_urls' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_actions' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_step_assignments' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflow_steps' - ActiveRecord::FixtureSet.create_fixtures dir, 'dmsf_workflows' - ActiveRecord::FixtureSet.create_fixtures dir, 'queries' + ext = '.yml' + Dir.glob("#{dir}/**/*#{ext}").each do |file| + fixture = File.basename(file, ext) + ActiveRecord::FixtureSet.create_fixtures dir, fixture + end end def setup