"""Superusers list the ownership kept for VMs that vanished and can remove it.""" from datetime import timedelta from django.contrib.auth.models import User from django.test import TestCase, override_settings from django.urls import reverse from django.utils import timezone from instances.models import InstanceTombstone UUID = "00000000-0000-4000-8000-000000000001" class TombstoneTests(TestCase): def setUp(self): self.client.force_login(User.objects.create_superuser("ts-admin", "ts@example.com", "pw")) self.owner = User.objects.create_user("ts-owner", password="pw") self.tombstone = InstanceTombstone.objects.create( uuid=UUID, name="ts-vm", host="ts-host", owners=[ {"user": self.owner.id, "is_change": True, "is_delete": False, "is_vnc": True}, {"user": 999999, "is_change": False, "is_delete": False, "is_vnc": False}, ], ) @override_settings(INSTANCE_OWNERSHIP_RETENTION_DAYS=7) def test_the_list_shows_the_vm_its_owners_and_when_it_expires(self): removed = timezone.now() - timedelta(days=2) InstanceTombstone.objects.filter(pk=self.tombstone.pk).update(removed=removed) response = self.client.get(reverse("admin:tombstone_list")) self.assertEqual(response.status_code, 200) row = response.context["tombstones"][0] self.assertEqual(row.owner_names, ["ts-owner", "deleted user"]) self.assertEqual(row.expires, removed + timedelta(days=7)) self.assertContains(response, "ts-vm") self.assertContains(response, UUID) self.assertContains(response, "ts-owner") self.assertContains(response, "