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