From 431ea61ed07e26d0fa5230422569f8b2b0b4beaf Mon Sep 17 00:00:00 2001
From: Bjarke Madsen <bjarke@nordu.net>
Date: Tue, 15 Aug 2023 16:01:51 +0200
Subject: [PATCH] Fix dump_survey_model test

---
 compendium_v2/migrations/dump_survey_model.py | 12 ++++++++----
 test/test_dump_survey_model.py                | 14 +++++++++-----
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/compendium_v2/migrations/dump_survey_model.py b/compendium_v2/migrations/dump_survey_model.py
index 92a6cbd3..314fda6d 100644
--- a/compendium_v2/migrations/dump_survey_model.py
+++ b/compendium_v2/migrations/dump_survey_model.py
@@ -24,13 +24,19 @@ import compendium_v2
 from compendium_v2.environment import setup_logging
 from compendium_v2.db import db
 from compendium_v2.config import load
-from compendium_v2.db.survey_model import Survey, SurveyStatus
+from compendium_v2.db.survey_model import Survey
 
 setup_logging()
 
 logger = logging.getLogger('dump_survey_model')
 
 
+def _write_survey_model(survey, filename):
+    with open(filename, "w") as out:
+        json.dump(survey.survey, out, indent=1)
+    print(f"Dumped survey model to {filename}")
+
+
 def _cli(app, year):
 
     query = select(Survey).where(Survey.year == year) if year else select(Survey).order_by(Survey.year.desc()).limit(1)
@@ -42,9 +48,7 @@ def _cli(app, year):
 
         filename = "survey_model_" + str(survey.year) + ".json"
         dump_file = os.path.join(os.path.dirname(__file__), 'surveymodels', filename)
-        with open(dump_file, "w") as out:
-            json.dump(survey.survey, out, indent=1)
-        print(f"Dumped survey model to {dump_file}")
+        _write_survey_model(survey, dump_file)
 
 
 @click.command()
diff --git a/test/test_dump_survey_model.py b/test/test_dump_survey_model.py
index c39ed6c5..722f21dc 100644
--- a/test/test_dump_survey_model.py
+++ b/test/test_dump_survey_model.py
@@ -1,15 +1,19 @@
-import pytest
-
 from compendium_v2.db import db
 from compendium_v2.db.survey_model import Survey, SurveyStatus
 from compendium_v2.migrations.dump_survey_model import _cli
 
 
-def test_dump_status_check(app_with_survey_db):
+def test_dump_status_check(app_with_survey_db, mocker):
 
     with app_with_survey_db.app_context():
+        db.session.add(Survey(year=2021, status=SurveyStatus.published, survey={}))
         db.session.add(Survey(year=2022, status=SurveyStatus.published, survey={}))
         db.session.commit()
 
-    with pytest.raises(Exception, match=r'^Make sure the survey has status closed'):
-        _cli(app_with_survey_db, None)
+    def _write_survey_model(survey, output_dir):
+        assert survey.status == SurveyStatus.published
+        assert survey.year == 2022
+
+    mocker.patch('compendium_v2.migrations.dump_survey_model._write_survey_model', _write_survey_model)
+
+    _cli(app_with_survey_db, None)
-- 
GitLab