Changeset View
Changeset View
Standalone View
Standalone View
bid_main/tests/test_delete.py
- This file was added.
| """Tests for the Delete account section of the profile.""" | |||||
| from django.contrib.auth import get_user_model | |||||
| from django.test import TestCase | |||||
| from django.urls import reverse | |||||
| from django.utils import timezone | |||||
| import oauth2_provider.models as oa2_models | |||||
| Application = oa2_models.get_application_model() | |||||
| AccessToken = oa2_models.get_access_token_model() | |||||
| UserModel = get_user_model() | |||||
| class DeleteTest(TestCase): | |||||
| def setUp(self): | |||||
| self.user = UserModel.objects.create_user("test@user.com", "123456") | |||||
| def test_login_required(self): | |||||
| response = self.client.post( | |||||
| reverse("bid_main:delete_user"), | |||||
| { | |||||
| "confirm": True, | |||||
| } | |||||
| ) | |||||
| self.assertEqual(302, response.status_code, f"response: {response}") | |||||
| def test_invalid_form(self): | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.assertIsNone(self.user.date_deletion_requested) | |||||
| self.client.force_login(self.user) | |||||
| response = self.client.post( | |||||
| reverse("bid_main:delete_user"), | |||||
| { | |||||
| "confirm": False, | |||||
| } | |||||
| ) | |||||
| self.assertEqual(200, response.status_code, f"response: {response}") | |||||
| self.assertNotIn("We are sad to see you go", str(response.content)) | |||||
| # No change | |||||
| self.user.refresh_from_db() | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.assertIsNone(self.user.date_deletion_requested) | |||||
| def test_invalid_form_missing(self): | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.assertIsNone(self.user.date_deletion_requested) | |||||
| self.client.force_login(self.user) | |||||
| response = self.client.post( | |||||
| reverse("bid_main:delete_user"), | |||||
| ) | |||||
| self.assertEqual(200, response.status_code, f"response: {response}") | |||||
| self.assertNotIn("We are sad to see you go", str(response.content)) | |||||
| # No change | |||||
| self.user.refresh_from_db() | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.assertIsNone(self.user.date_deletion_requested) | |||||
| def test_deactivates_user_stores_date(self): | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.assertIsNone(self.user.date_deletion_requested) | |||||
| self.client.force_login(self.user) | |||||
| response = self.client.post( | |||||
| reverse("bid_main:delete_user"), | |||||
| { | |||||
| "confirm": True, | |||||
| } | |||||
| ) | |||||
| self.assertEqual(200, response.status_code, f"response: {response}") | |||||
| self.assertIn('We are sad to see you go', str(response.content)) | |||||
| self.user.refresh_from_db() | |||||
| self.assertFalse(self.user.is_active) | |||||
| self.assertIsNotNone(self.user.date_deletion_requested) | |||||
| def test_does_not_override_set_date(self): | |||||
| deleted_user = UserModel.objects.create_user( | |||||
| "test1@user.com", "1234567", nickname="nickname" | |||||
| ) | |||||
| current_date = timezone.now() | |||||
| deleted_user.date_deletion_requested = current_date | |||||
| deleted_user.save(update_fields=["date_deletion_requested"]) | |||||
| self.assertTrue(self.user.is_active) | |||||
| self.client.force_login(deleted_user) | |||||
| response = self.client.post( | |||||
| reverse("bid_main:delete_user"), | |||||
| { | |||||
| "confirm": True, | |||||
| } | |||||
| ) | |||||
| self.assertEqual(200, response.status_code, f"response: {response}") | |||||
| self.assertIn("We are sad to see you go", str(response.content)) | |||||
| deleted_user.refresh_from_db() | |||||
| self.assertFalse(deleted_user.is_active) | |||||
| # The date wasn't updated | |||||
| self.assertEquals(deleted_user.date_deletion_requested, current_date) | |||||