|
| 1 | +from unittest.mock import patch |
| 2 | + |
1 | 3 | from django.test import TestCase |
2 | 4 |
|
3 | 5 | from submission.models import FrozenAuthor |
@@ -40,3 +42,37 @@ def test_signal_removes_all_frozen_authors_on_clear(self): |
40 | 42 | self.article.authors.add(self.account1, self.account2) |
41 | 43 | self.article.authors.clear() |
42 | 44 | self.assertFalse(FrozenAuthor.objects.filter(article=self.article).exists()) |
| 45 | + |
| 46 | + |
| 47 | +class TestRemoveAuthorFromArticleSignal(TestCase): |
| 48 | + @classmethod |
| 49 | + def setUpTestData(cls): |
| 50 | + cls.journal, _ = helpers.create_journals() |
| 51 | + cls.article = helpers.create_article(title="Test Article", journal=cls.journal) |
| 52 | + cls.account1 = helpers.create_user( |
| 53 | + "[email protected]", [ "author"], cls. journal |
| 54 | + ) |
| 55 | + cls.author1 = helpers.create_frozen_author(cls.article, author=cls.account1) |
| 56 | + cls.account2 = helpers.create_user( |
| 57 | + "[email protected]", [ "author"], cls. journal |
| 58 | + ) |
| 59 | + cls.author2 = helpers.create_frozen_author(cls.article, author=cls.account2) |
| 60 | + cls.article.authors.add(cls.account1, cls.account2) |
| 61 | + |
| 62 | + def test_signal_removes_account_from_authors_m2m(self): |
| 63 | + self.author1.delete() |
| 64 | + self.assertEqual( |
| 65 | + [self.account2], |
| 66 | + [account for account in self.article.authors.all()], |
| 67 | + ) |
| 68 | + |
| 69 | + @patch("submission.models.backwards_compat_authors") |
| 70 | + def test_signal_does_not_trigger_backwards_compat_if_no_m2m_authors( |
| 71 | + self, backwards_compat |
| 72 | + ): |
| 73 | + account3 = helpers.create_user( |
| 74 | + "[email protected]", [ "author"], self. journal |
| 75 | + ) |
| 76 | + author3 = helpers.create_frozen_author(self.article, author=account3) |
| 77 | + author3.delete() |
| 78 | + backwards_compat.assert_not_called() |
0 commit comments