diff --git a/tdrs-backend/conftest.py b/tdrs-backend/conftest.py new file mode 100644 index 0000000000..c41e85adb7 --- /dev/null +++ b/tdrs-backend/conftest.py @@ -0,0 +1,6 @@ +"""Sets an env variable to indicate that we are running tests. This is used to run custom migrations during testing.""" +import os + +def pytest_sessionstart(session): + """Set PYTEST env variable to indicate that we are running tests.""" + os.environ['PYTEST'] = 'True' diff --git a/tdrs-backend/tdpservice/stts/migrations/0005_stt_stt_code.py b/tdrs-backend/tdpservice/stts/migrations/0005_stt_stt_code.py index 699143b62f..7ddf51ab16 100644 --- a/tdrs-backend/tdpservice/stts/migrations/0005_stt_stt_code.py +++ b/tdrs-backend/tdpservice/stts/migrations/0005_stt_stt_code.py @@ -15,4 +15,9 @@ class Migration(migrations.Migration): name='stt_code', field=models.PositiveIntegerField(blank=True, null=True), ), + migrations.AddField( + model_name='stt', + name='ssp', + field=models.BooleanField(default=False), + ), ] diff --git a/tdrs-backend/tdpservice/stts/migrations/0007_stt_ssp.py b/tdrs-backend/tdpservice/stts/migrations/0007_stt_ssp.py index 064f8b52ba..1fe9deafaa 100644 --- a/tdrs-backend/tdpservice/stts/migrations/0007_stt_ssp.py +++ b/tdrs-backend/tdpservice/stts/migrations/0007_stt_ssp.py @@ -1,17 +1,47 @@ -# Generated by Django 3.2.15 on 2022-11-02 16:39 edited by Cameron +# Generated by Cameron +import csv +from pathlib import Path +from ..models import STT +import os from django.db import migrations, models + +def _update(path): + data_dir = Path(__file__).resolve().parent.parent /"management" / "commands" / "data" + + with open(data_dir / path) as csvfile: + reader = csv.DictReader(csvfile) + + for row in reader: + stt = STT.objects.get(code=row["Code"]) + stt.ssp = row["SSP"] == "0" + stt.save() + +def _update_stts(apps, schema_editor): + _update("states.csv") + _update("territories.csv") + _update("tribes.csv") + + class Migration(migrations.Migration): dependencies = [ ('stts', '0006_alter_stt_filenames'), ] - operations = [ - migrations.AddField( - model_name='stt', - name='ssp', - field=models.BooleanField(default=False), - ), - ] + is_pytest = os.environ.get('PYTEST') + + if is_pytest: + operations = [ + migrations.RunPython(_update_stts), + ] + else: + operations = [ + migrations.AddField( + model_name='stt', + name='ssp', + field=models.BooleanField(default=False), + ), + migrations.RunPython(_update_stts), + ] diff --git a/tdrs-backend/tdpservice/stts/migrations/0008_update_ssp.py b/tdrs-backend/tdpservice/stts/migrations/0008_update_ssp.py deleted file mode 100644 index 4228353b7b..0000000000 --- a/tdrs-backend/tdpservice/stts/migrations/0008_update_ssp.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Cameron -import csv -from pathlib import Path -from ..models import STT - -from django.db import migrations - - -def _update(path): - data_dir = Path(__file__).resolve().parent.parent /"management" / "commands" / "data" - - with open(data_dir / path) as csvfile: - reader = csv.DictReader(csvfile) - - for row in reader: - print(row["Code"]) - stt = STT.objects.get(code=row["Code"]) - stt.ssp = row["SSP"] == "0" - stt.save() - -def _update_stts(apps, schema_editor): - _update("states.csv") - _update("territories.csv") - _update("tribes.csv") - - -class Migration(migrations.Migration): - - dependencies = [ - ('stts', '0007_stt_ssp'), - ] - - operations = [ - migrations.RunPython(_update_stts), - ]