diff --git a/program/tests/test_reset_state.py b/program/tests/test_reset_state.py new file mode 100644 index 0000000000000000000000000000000000000000..72c65e28e1991671e4fd892aee8dd7d81a47df66 --- /dev/null +++ b/program/tests/test_reset_state.py @@ -0,0 +1,79 @@ +import pytest + +pytestmark = pytest.mark.django_db + + +def url(model_categories=None): + base_url = "/api/v1/debug/application-state/" + + if model_categories: + return f"{base_url}?modelCategories={model_categories}" + + return base_url + + +def assert_value(response, key: str, value: int) -> None: + assert response.data[key] == value + + +def test_reset_auth(admin_api_client, common_user1, cba): + response = admin_api_client.delete(url(model_categories="auth")) + + assert response.status_code == 200 + + assert_value(response, "auth.User", 2) + assert_value(response, "program.CBA", 1) + + +def test_reset_classifications( + admin_api_client, + category, + daily_rrule, + funding_category, + language, + link_type, + music_focus, + public_domain_license, + topic, + type_, +): + response = admin_api_client.delete(url(model_categories="classifications")) + + assert response.status_code == 200 + + assert_value(response, "program.Category", 1) + assert_value(response, "program.FundingCategory", 1) + assert_value(response, "program.Language", 1) + assert_value(response, "program.License", 1) + assert_value(response, "program.LinkType", 1) + assert_value(response, "program.MusicFocus", 1) + assert_value(response, "program.RRule", 1) + assert_value(response, "program.Topic", 1) + assert_value(response, "program.Type", 1) + + +def test_reset_media(admin_api_client, image): + response = admin_api_client.delete(url(model_categories="media")) + + assert response.status_code == 200 + + assert_value(response, "program.Image", 1) + + +def test_reset_program(admin_api_client, show, once_schedule, show_once_timeslot): + response = admin_api_client.delete(url(model_categories="program")) + + assert response.status_code == 200 + + assert_value(response, "program.Note", 1) + assert_value(response, "program.Schedule", 1) + assert_value(response, "program.Show", 1) + assert_value(response, "program.TimeSlot", 1) + + +def test_reset_settings(admin_api_client, radio_settings): + response = admin_api_client.delete(url(model_categories="settings")) + + assert response.status_code == 200 + + assert_value(response, "program.RadioSettings", 1)