""" Author: Michel Peltriaux Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany Contact: ksp-servicestelle@sgdnord.rlp.de Created on: 24.08.23 """ from django.urls import reverse from django.utils.timezone import now from ema.models import Ema, EmaDocument from ema.settings import EMA_IDENTIFIER_TEMPLATE from konova.tests.test_views import BaseTestCase from konova.utils.message_templates import DOCUMENT_REMOVED_TEMPLATE from user.models import UserAction class EmaModelTestCase(BaseTestCase): def setUp(self) -> None: super().setUp() def test_str(self): self.assertEqual(str(self.ema), f"{self.ema.identifier}") def test_save(self): new_ema = Ema( title="Test" ) self.assertIsNone(new_ema.identifier) new_ema.save() new_ema.refresh_from_db() self.assertIsNotNone(new_ema.identifier) self.assertIn("EMA-", new_ema.identifier) def test_is_ready_for_publish(self): self.assertIsNone(self.ema.recorded) self.assertFalse(self.ema.is_ready_for_publish()) self.ema.set_recorded(self.superuser) self.ema.refresh_from_db() self.assertIsNotNone(self.ema.recorded) self.assertTrue(self.ema.is_ready_for_publish()) def test_get_share_link(self): self.assertEqual( self.ema.get_share_link(), reverse("ema:share-token", args=(self.ema.id, self.ema.access_token)) ) def test_get_documents(self): self.assertEqual(self.ema.get_documents().count(), 0) doc = EmaDocument( instance=self.ema, date_of_creation=now().date(), comment="Test", ) doc.save() docs = self.ema.get_documents() self.assertEqual(docs.count(), 1) self.assertEqual(docs.first(), doc) class EmaDocumentModelTestCase(BaseTestCase): def setUp(self) -> None: super().setUp() def test_delete(self): doc = EmaDocument.objects.create( date_of_creation=now().date(), instance=self.ema, comment="TEST" ) self.ema.refresh_from_db() docs = self.ema.get_documents() self.assertEqual(docs.count(), 1) self.assertEqual(docs.first(), doc) doc_title = doc.title doc.delete(user=self.superuser) last_log = self.ema.log.first() self.assertEqual(last_log.action, UserAction.EDITED) self.assertEqual(last_log.user, self.superuser) self.assertEqual(last_log.comment, DOCUMENT_REMOVED_TEMPLATE.format(doc_title)) docs = self.ema.get_documents() self.assertEqual(docs.count(), 0)