From 2d57b693ca09efa979e7b7a91165b3bfa2887992 Mon Sep 17 00:00:00 2001 From: blag Date: Wed, 19 Jun 2024 14:08:47 -0600 Subject: [PATCH] Add tests for middleware NoActiveTermsOfService warnings --- tos/tests/test_models.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/tos/tests/test_models.py b/tos/tests/test_models.py index a558292..f363451 100644 --- a/tos/tests/test_models.py +++ b/tos/tests/test_models.py @@ -1,6 +1,6 @@ from django.contrib.auth import get_user_model from django.core.exceptions import ValidationError -from django.test import TestCase +from django.test import TestCase, override_settings from tos.models import ( NoActiveTermsOfService, @@ -104,3 +104,39 @@ def test_terms_of_service_manager(self): def test_terms_of_service_manager_raises_error(self): self.assertRaises(NoActiveTermsOfService, TermsOfService.objects.get_current_tos) + + +class TestNoActiveTOS(TestCase): + @classmethod + def setUpClass(cls): + # Use bulk_create to avoid calling the model's save() method + TermsOfService.objects.bulk_create([ + TermsOfService( + content="The only TOS", + active=False, + ) + ]) + + @classmethod + def tearDownClass(cls): + TermsOfService.objects.all().delete() + + @override_settings(DEBUG=True) + def test_model_save_raises_warning(self): + with self.assertWarns(Warning): + TermsOfService.objects.first().save() + + @override_settings(DEBUG=True) + def test_get_current_tos_raises_warning(self): + with self.assertWarns(Warning): + TermsOfService.objects.get_current_tos() + + @override_settings(DEBUG=False) + def test_model_save_raises_exception(self): + with self.assertRaises(NoActiveTermsOfService): + TermsOfService.objects.first().save() + + @override_settings(DEBUG=False) + def test_get_current_tos_raises_exception(self): + with self.assertRaises(NoActiveTermsOfService): + TermsOfService.objects.get_current_tos()