From db6c6ffcc386331e075a31a40362e9f80234cc09 Mon Sep 17 00:00:00 2001 From: Andrey Potekhin Date: Thu, 19 Oct 2023 15:49:13 +1000 Subject: [PATCH] Update format choice select for import admin pages --- .../admin/mixins/import_mixin.py | 2 +- tests/test_admin/test_import.py | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/import_export_extensions/admin/mixins/import_mixin.py b/import_export_extensions/admin/mixins/import_mixin.py index 6cee1f1..9475e79 100644 --- a/import_export_extensions/admin/mixins/import_mixin.py +++ b/import_export_extensions/admin/mixins/import_mixin.py @@ -285,7 +285,7 @@ def celery_import_job_results_view( if job.import_status != models.ImportJob.ImportStatus.PARSED: # display import form context["import_form"] = base_forms.ImportForm( - import_formats=job.resource.SUPPORTED_FORMATS, + import_formats=self.get_import_formats(), ) else: context["confirm_form"] = Form() diff --git a/tests/test_admin/test_import.py b/tests/test_admin/test_import.py index ad8bb3f..7809c54 100644 --- a/tests/test_admin/test_import.py +++ b/tests/test_admin/test_import.py @@ -76,3 +76,35 @@ def test_import_using_admin_model( import_job.refresh_from_db() assert import_job.import_status == ImportJob.ImportStatus.IMPORTED + + +@pytest.mark.usefixtures("existing_artist") +def test_import_admin_has_same_formats( + client: Client, + superuser: User, + artist_import_job: ImportJob, +): + """Ensure input formats on import forms are the same. + + Ensure Import forms on import and on import result pages + fetch format choices from the same source. + + """ + client.force_login(superuser) + artist_import_job.import_status = ImportJob.ImportStatus.IMPORTED + artist_import_job.save() + import_response = client.get( + path=reverse("admin:fake_app_artist_import"), + ) + import_response_result = client.get( + path=reverse( + "admin:fake_app_artist_import_job_results", + kwargs={"job_id": artist_import_job.id}, + ), + ) + import_response_form = import_response.context_data["form"] + import_response_result_form = import_response_result.context_data["import_form"] + assert ( + import_response_form.fields["input_format"].choices == + import_response_result_form.fields["input_format"].choices + )