tags 1134838 + pending patch
thanks
I've just uploaded hyperkitty 1.3.12-4.1 to DELAYED/7:
hyperkitty (1.3.12-4.1) unstable; urgency=medium
.
* Non-maintainer upload.
* Fix compatibility with Django 5.x by applying an upstream patch authored
by
SATOH Fumiyasu to not rely on private test methods. (Closes: #1134838)
The full debdiff is attached.
Regards,
--
,''`.
: :' : Chris Lamb
`. `'` [email protected] / chris-lamb.co.uk
`-
diffstat for hyperkitty-1.3.12 hyperkitty-1.3.12
changelog | 8
patches/0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch | 12
patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch | 535
++++++++++
patches/series | 1
4 files changed, 548 insertions(+), 8 deletions(-)
diff -Nru hyperkitty-1.3.12/debian/changelog hyperkitty-1.3.12/debian/changelog
--- hyperkitty-1.3.12/debian/changelog 2026-03-22 15:07:06.000000000 -0700
+++ hyperkitty-1.3.12/debian/changelog 2026-06-01 12:37:06.000000000 -0700
@@ -1,3 +1,11 @@
+hyperkitty (1.3.12-4.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix compatibility with Django 5.x by applying an upstream patch authored by
+ SATOH Fumiyasu to not rely on private test methods. (Closes: #1134838)
+
+ -- Chris Lamb <[email protected]> Mon, 01 Jun 2026 12:37:06 -0700
+
hyperkitty (1.3.12-4) unstable; urgency=medium
* Fix d/p/0004
diff -Nru
hyperkitty-1.3.12/debian/patches/0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch
hyperkitty-1.3.12/debian/patches/0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch
---
hyperkitty-1.3.12/debian/patches/0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch
2026-03-22 14:46:29.000000000 -0700
+++
hyperkitty-1.3.12/debian/patches/0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch
2026-06-01 12:37:06.000000000 -0700
@@ -20,10 +20,8 @@
hyperkitty/tests/test_feeds.py | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
-diff --git a/hyperkitty/tests/models/test_email.py
b/hyperkitty/tests/models/test_email.py
-index f395d51..7228967 100644
---- a/hyperkitty/tests/models/test_email.py
-+++ b/hyperkitty/tests/models/test_email.py
+--- hyperkitty-1.3.12.orig/hyperkitty/tests/models/test_email.py
++++ hyperkitty-1.3.12/hyperkitty/tests/models/test_email.py
@@ -22,7 +22,7 @@
import os
@@ -62,10 +60,8 @@
mailinglist=mlist,
subject="Message subject",
content="Dummy message")
-diff --git a/hyperkitty/tests/test_feeds.py b/hyperkitty/tests/test_feeds.py
-index aea8bf6..32386f6 100644
---- a/hyperkitty/tests/test_feeds.py
-+++ b/hyperkitty/tests/test_feeds.py
+--- hyperkitty-1.3.12.orig/hyperkitty/tests/test_feeds.py
++++ hyperkitty-1.3.12/hyperkitty/tests/test_feeds.py
@@ -50,7 +50,7 @@ class TestMailingListFeed(TestCase):
url = reverse('hk_list_feed', args=('[email protected]', ))
response = self.client.get(url)
diff -Nru
hyperkitty-1.3.12/debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
hyperkitty-1.3.12/debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
---
hyperkitty-1.3.12/debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
1969-12-31 16:00:00.000000000 -0800
+++
hyperkitty-1.3.12/debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
2026-06-01 12:37:06.000000000 -0700
@@ -0,0 +1,535 @@
+From: SATOH Fumiyasu <[email protected]>
+Date: Thu, 25 Sep 2025 17:07:48 +0900
+Subject: [PATCH] fix: tests: Do not depend on Django private test methods
+
+Django 5.2 changes the django.test.TestCase._pre_setup() as the class
+method by the commit
+https://github.com/django/django/commit/8eca3e9bce519c21340312ee7846c92b27abea79
+for Django issue https://code.djangoproject.com/ticket/35660
+
+Source: upstream,
https://gitlab.com/mailman/hyperkitty/-/commit/e815be11752ac6a3e839b155f0c43808619c56b0.patch
+---
+ hyperkitty/tests/_test_caching.py | 6 ++++++
+ hyperkitty/tests/commands/test_attachments_to_file.py | 2 ++
+ hyperkitty/tests/commands/test_import.py | 2 ++
+ hyperkitty/tests/lib/test_analysis.py | 1 +
+ hyperkitty/tests/lib/test_mailman.py | 1 +
+ hyperkitty/tests/lib/test_posting.py | 1 +
+ hyperkitty/tests/models/test_lastview.py | 1 +
+ hyperkitty/tests/models/test_mailinglist.py | 5 +++++
+ hyperkitty/tests/models/test_profile.py | 1 +
+ hyperkitty/tests/models/test_tag.py | 2 +-
+ hyperkitty/tests/models/test_vote.py | 1 +
+ hyperkitty/tests/test_feeds.py | 1 +
+ hyperkitty/tests/test_search_index.py | 2 ++
+ hyperkitty/tests/utils.py | 19 ++++++++-----------
+ hyperkitty/tests/views/test_accounts.py | 3 +++
+ hyperkitty/tests/views/test_archives.py | 5 +++++
+ hyperkitty/tests/views/test_compat.py | 1 +
+ hyperkitty/tests/views/test_index.py | 4 ++++
+ hyperkitty/tests/views/test_mailinglist.py | 1 +
+ hyperkitty/tests/views/test_mailman.py | 1 +
+ hyperkitty/tests/views/test_message.py | 1 +
+ hyperkitty/tests/views/test_search.py | 1 +
+ hyperkitty/tests/views/test_thread.py | 2 ++
+ 23 files changed, 52 insertions(+), 12 deletions(-)
+
+diff --git a/hyperkitty/tests/_test_caching.py
b/hyperkitty/tests/_test_caching.py
+index 4feb980..9e6e739 100644
+--- a/hyperkitty/tests/_test_caching.py
++++ b/hyperkitty/tests/_test_caching.py
+@@ -20,12 +20,14 @@ from mailman.interfaces.archiver import ArchivePolicy
+ class ListCacheTestCase(unittest.TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.store = get_store(SettingsModule(), auto_create=True)
+ kittystore.utils.MM_CLIENT = Mock()
+
+ def tearDown(self):
+ self.store.close()
+ kittystore.utils.MM_CLIENT = None
++ super().tearDown()
+
+ def test_properties_on_new_message(self):
+ ml = FakeList("example-list")
+@@ -75,6 +77,7 @@ class FakeMMUser(object):
+ class UserIdCacheTestCase(unittest.TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.store = get_store(SettingsModule(), auto_create=True)#,
debug=True)
+ self.mm_client = Mock()
+ mailman_user._MAILMAN_CLIENT = self.mm_client
+@@ -84,6 +87,7 @@ class UserIdCacheTestCase(unittest.TestCase):
+ def tearDown(self):
+ self.store.close()
+ mailman_user._MAILMAN_CLIENT = None
++ super().tearDown()
+
+ def test_on_new_message_userid(self):
+ # Check that the user_id is set on a new message
+@@ -166,6 +170,7 @@ class UserIdCacheTestCase(unittest.TestCase):
+
+ class TestNotifyStore(unittest.TestCase):
+ def setUp(self):
++ super().setUp()
+ self.store = get_sa_store(SettingsModule(), auto_create=True)
+ self.store.db.cache.get_or_create = Mock()
+ self.store.db.cache.get_or_create.side_effect = lambda *a, **kw:
a[1]()
+@@ -175,6 +180,7 @@ class TestNotifyStore(unittest.TestCase):
+
+ def tearDown(self):
+ self.store.close()
++ super().tearDown()
+
+ def test_on_new_message_invalidate(self):
+ # Check that the cache is invalidated on new message
+diff --git a/hyperkitty/tests/commands/test_attachments_to_file.py
b/hyperkitty/tests/commands/test_attachments_to_file.py
+index fd0aed8..8da8ea7 100644
+--- a/hyperkitty/tests/commands/test_attachments_to_file.py
++++ b/hyperkitty/tests/commands/test_attachments_to_file.py
+@@ -17,6 +17,7 @@ from hyperkitty.tests.utils import TestCase
+ class CommandTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ msg_in = EmailMessage()
+ msg_in["From"] = "[email protected]"
+ msg_in["Message-ID"] = "<msg>"
+@@ -30,6 +31,7 @@ class CommandTestCase(TestCase):
+ def tearDown(self):
+ settings.HYPERKITTY_ATTACHMENT_FOLDER = None
+ self.tempdir.cleanup()
++ super().tearDown()
+
+ def test_no_attachment_folder(self):
+ # Test that no HYPERKITTY_ATTACHMENT_FOLDER raises CommandError
+diff --git a/hyperkitty/tests/commands/test_import.py
b/hyperkitty/tests/commands/test_import.py
+index d82f0eb..a83a573 100644
+--- a/hyperkitty/tests/commands/test_import.py
++++ b/hyperkitty/tests/commands/test_import.py
+@@ -24,6 +24,7 @@ from hyperkitty.tests.utils import TestCase, get_test_file
+ class CommandTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.command = Command()
+ self.common_cmd_args = dict(
+ verbosity=2, list_address="[email protected]",
+@@ -32,6 +33,7 @@ class CommandTestCase(TestCase):
+
+ def tearDown(self):
+ settings.HYPERKITTY_BATCH_MODE = False
++ super().tearDown()
+
+ def test_impacted_threads(self):
+ # existing message
+diff --git a/hyperkitty/tests/lib/test_analysis.py
b/hyperkitty/tests/lib/test_analysis.py
+index 1dca1f5..ccc6bf2 100644
+--- a/hyperkitty/tests/lib/test_analysis.py
++++ b/hyperkitty/tests/lib/test_analysis.py
+@@ -33,6 +33,7 @@ from hyperkitty.tests.utils import TestCase
+ class TestThreadOrderDepth(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.mlist = MailingList.objects.create(name="example-list")
+
+ def make_fake_email(self, num=1, date=None, thread=None):
+diff --git a/hyperkitty/tests/lib/test_mailman.py
b/hyperkitty/tests/lib/test_mailman.py
+index cb5b785..9db2325 100644
+--- a/hyperkitty/tests/lib/test_mailman.py
++++ b/hyperkitty/tests/lib/test_mailman.py
+@@ -36,6 +36,7 @@ from hyperkitty.tests.utils import TestCase
+ class MailmanSubscribeTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = FakeMMList("[email protected]")
+ self.mailman_client.get_list.side_effect = lambda n: self.ml
+ self.ml.get_member = Mock()
+diff --git a/hyperkitty/tests/lib/test_posting.py
b/hyperkitty/tests/lib/test_posting.py
+index 18b6597..052d661 100644
+--- a/hyperkitty/tests/lib/test_posting.py
++++ b/hyperkitty/tests/lib/test_posting.py
+@@ -49,6 +49,7 @@ class Django_mail:
+ class PostingTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.mlist = MailingList.objects.create(name="[email protected]")
+ self.ml = FakeMMList("[email protected]")
+ self.mailman_client.get_list.side_effect = lambda n: self.ml
+diff --git a/hyperkitty/tests/models/test_lastview.py
b/hyperkitty/tests/models/test_lastview.py
+index 37d4d98..fd3f115 100644
+--- a/hyperkitty/tests/models/test_lastview.py
++++ b/hyperkitty/tests/models/test_lastview.py
+@@ -32,6 +32,7 @@ from hyperkitty.tests.utils import TestCase
+ class LastViewTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create(username="dummy")
+ msg = EmailMessage()
+ msg["From"] = "[email protected]"
+diff --git a/hyperkitty/tests/models/test_mailinglist.py
b/hyperkitty/tests/models/test_mailinglist.py
+index 7235a46..bc04e76 100644
+--- a/hyperkitty/tests/models/test_mailinglist.py
++++ b/hyperkitty/tests/models/test_mailinglist.py
+@@ -41,6 +41,7 @@ from hyperkitty.tests.utils import TestCase
+ class MailingListTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = MailingList.objects.create(name="[email protected]")
+ self.mailman_ml = FakeMMList("[email protected]")
+ self.mailman_client.get_list.side_effect = lambda n: self.mailman_ml
+@@ -215,6 +216,7 @@ class MailingListTestCase(TestCase):
+ class RecentThreadsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = MailingList.objects.create(name="[email protected]")
+ self.cached_value = RecentThreads(self.ml)
+
+@@ -243,6 +245,7 @@ class RecentThreadsTestCase(TestCase):
+ class TopThreadsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = MailingList.objects.create(name="[email protected]")
+ self.cached_value = TopThreads(self.ml)
+
+@@ -278,6 +281,7 @@ class TopThreadsTestCase(TestCase):
+ class PopularThreadsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = MailingList.objects.create(name="[email protected]")
+ self.cached_value = PopularThreads(self.ml)
+
+@@ -313,6 +317,7 @@ class PopularThreadsTestCase(TestCase):
+ class FirstDateTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.ml = MailingList.objects.create(name="[email protected]")
+ self.cached_value = FirstDate(self.ml)
+
+diff --git a/hyperkitty/tests/models/test_profile.py
b/hyperkitty/tests/models/test_profile.py
+index 86ccaaa..cb91755 100644
+--- a/hyperkitty/tests/models/test_profile.py
++++ b/hyperkitty/tests/models/test_profile.py
+@@ -42,6 +42,7 @@ def _create_email(num, reply_to=None):
+ class ProfileTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create(username="dummy")
+
+ def test_votes_in_list(self):
+diff --git a/hyperkitty/tests/models/test_tag.py
b/hyperkitty/tests/models/test_tag.py
+index 1cdda43..112e09c 100644
+--- a/hyperkitty/tests/models/test_tag.py
++++ b/hyperkitty/tests/models/test_tag.py
+@@ -28,5 +28,5 @@ class TagTestCase(TestCase):
+ fixtures = ['tag_testdata.json']
+
+ def setUp(self):
+- super(TagTestCase, self).setUp()
++ super().setUp()
+ self.tag_1 = Tag.objects.get(pk=1)
+diff --git a/hyperkitty/tests/models/test_vote.py
b/hyperkitty/tests/models/test_vote.py
+index 5a3a89d..cc70476 100644
+--- a/hyperkitty/tests/models/test_vote.py
++++ b/hyperkitty/tests/models/test_vote.py
+@@ -42,6 +42,7 @@ def _create_email(num, reply_to=None):
+ class VoteTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create(username="dummy")
+
+ def test_msg_1(self):
+diff --git a/hyperkitty/tests/test_feeds.py b/hyperkitty/tests/test_feeds.py
+index 32386f6..0a35134 100644
+--- a/hyperkitty/tests/test_feeds.py
++++ b/hyperkitty/tests/test_feeds.py
+@@ -33,6 +33,7 @@ from hyperkitty.utils import reverse
+ class TestMailingListFeed(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.user.is_superuser = True
+diff --git a/hyperkitty/tests/test_search_index.py
b/hyperkitty/tests/test_search_index.py
+index e2ea077..c142eb8 100644
+--- a/hyperkitty/tests/test_search_index.py
++++ b/hyperkitty/tests/test_search_index.py
+@@ -35,12 +35,14 @@ from hyperkitty.tests.utils import SearchEnabledTestCase
+ class SearchIndexTestCase(SearchEnabledTestCase):
+
+ def setUp(self):
++ super().setUp()
+ # Disable automatic update
+ apps.get_app_config('haystack').signal_processor.teardown()
+
+ def tearDown(self):
+ # Restore automatic update
+ apps.get_app_config('haystack').signal_processor.setup()
++ super().tearDown()
+
+ def _add_message(self, msgid="msg", list="[email protected]"):
+ msg = EmailMessage()
+diff --git a/hyperkitty/tests/utils.py b/hyperkitty/tests/utils.py
+index c33ea87..d9fb1e9 100644
+--- a/hyperkitty/tests/utils.py
++++ b/hyperkitty/tests/utils.py
+@@ -66,8 +66,8 @@ class TestCase(DjangoTestCase):
+ # Testcase classes can use this variable to add more overrides:
+ override_settings = {}
+
+- def _pre_setup(self):
+- super(TestCase, self)._pre_setup()
++ def setUp(self):
++ super().setUp()
+ self.tmpdir = tempfile.mkdtemp(prefix="hyperkitty-testing-")
+ # Logging
+ setup_logging(self.tmpdir)
+@@ -92,7 +92,7 @@ class TestCase(DjangoTestCase):
+ self._old_settings[key] = getattr(settings, key, None)
+ setattr(settings, key, value)
+
+- def _post_teardown(self):
++ def tearDown(self):
+ self._mm_client_patcher.stop()
+ cache.clear()
+ for key, value in self._old_settings.items():
+@@ -101,23 +101,20 @@ class TestCase(DjangoTestCase):
+ else:
+ setattr(settings, key, value)
+ shutil.rmtree(self.tmpdir)
+- super(TestCase, self)._post_teardown()
++ super().tearDown()
+
+
+ class SearchEnabledTestCase(TestCase):
+
+- def _pre_setup(self):
++ def setUp(self):
+ try:
+ import whoosh # noqa: F401
+ except ImportError:
+ raise SkipTest("The Whoosh library is not available")
+- super(SearchEnabledTestCase, self)._pre_setup()
++ super().setUp()
+ call_command('clear_index', verbosity=0, interactive=False)
+ call_command('update_index', verbosity=0)
+
+- def _post_teardown(self):
+- super(SearchEnabledTestCase, self)._post_teardown()
+-
+
+ class MigrationTestCase(TransactionTestCase):
+ """ Inpired by
+@@ -131,8 +128,8 @@
https://www.caktusgroup.com/blog/2016/02/02/writing-unit-tests-django-migrations
+ def app(self):
+ return apps.get_containing_app_config(type(self).__module__).name
+
+- def _pre_setup(self):
+- super(MigrationTestCase, self)._pre_setup()
++ def setUp(self):
++ super().setUp()
+ assert self.migrate_from and self.migrate_to, \
+ "TestCase '{}' must define migrate_from and migrate_to
properties"\
+ .format(type(self).__name__)
+diff --git a/hyperkitty/tests/views/test_accounts.py
b/hyperkitty/tests/views/test_accounts.py
+index 9dd5bc9..edb7090 100644
+--- a/hyperkitty/tests/views/test_accounts.py
++++ b/hyperkitty/tests/views/test_accounts.py
+@@ -43,6 +43,7 @@ from hyperkitty.utils import reverse
+ class AccountViewsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ EmailAddress.objects.create(
+@@ -210,6 +211,7 @@ class AccountViewsTestCase(TestCase):
+ class LastViewsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.client.login(username='testuser', password='testPass')
+@@ -300,6 +302,7 @@ class LastViewsTestCase(TestCase):
+ class SubscriptionsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.mailman_client.get_list.side_effect = \
+diff --git a/hyperkitty/tests/views/test_archives.py
b/hyperkitty/tests/views/test_archives.py
+index 15591ac..6a04f6d 100644
+--- a/hyperkitty/tests/views/test_archives.py
++++ b/hyperkitty/tests/views/test_archives.py
+@@ -47,6 +47,7 @@ from hyperkitty.utils import reverse
+ class ListArchivesTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ # Create the list by adding a dummy message
+ msg = EmailMessage()
+ msg["From"] = "[email protected]"
+@@ -166,6 +167,7 @@ class ListArchivesTestCase(TestCase):
+ class ExportMboxTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ # Create the list by adding a dummy message
+ msg = EmailMessage()
+ msg["From"] = "[email protected]"
+@@ -298,6 +300,7 @@ class ExportMboxTestCase(TestCase):
+ class PrivateArchivesTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ MailingList.objects.create(
+@@ -325,6 +328,7 @@ class PrivateArchivesTestCase(TestCase):
+
+ def tearDown(self):
+ self.client.logout()
++ super().tearDown()
+
+ def _do_test(self, url, query=None):
+ if query is None:
+@@ -372,6 +376,7 @@ class PrivateArchivesTestCase(TestCase):
+ class MonthsListTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ # Create the list by adding a dummy message
+ # The message must be old to create multiple year accordion panels in
+ # the months list.
+diff --git a/hyperkitty/tests/views/test_compat.py
b/hyperkitty/tests/views/test_compat.py
+index 3ca146e..87b5df3 100644
+--- a/hyperkitty/tests/views/test_compat.py
++++ b/hyperkitty/tests/views/test_compat.py
+@@ -32,6 +32,7 @@ from hyperkitty.utils import reverse
+ class CompatURLsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ MailingList.objects.create(name="[email protected]")
+ msg = EmailMessage()
+ msg["From"] = "[email protected]"
+diff --git a/hyperkitty/tests/views/test_index.py
b/hyperkitty/tests/views/test_index.py
+index daa071e..5c9e17f 100644
+--- a/hyperkitty/tests/views/test_index.py
++++ b/hyperkitty/tests/views/test_index.py
+@@ -42,6 +42,7 @@ from hyperkitty.utils import reverse
+ class PrivateListTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ MailingList.objects.create(
+ name="[email protected]", subject_prefix="[example] ",
+ archive_policy=ArchivePolicy.private.value)
+@@ -76,6 +77,7 @@ class PrivateListTestCase(TestCase):
+
+ def tearDown(self):
+ self.client.logout()
++ super().tearDown()
+
+ def _create_user(self, username, email):
+ User.objects.create_user(username, email, 'testPass')
+@@ -162,6 +164,7 @@ class PrivateListTestCase(TestCase):
+ class FindTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ MailingList.objects.create(name="[email protected]")
+ MailingList.objects.create(name="[email protected]",
+ display_name="List Two")
+@@ -234,6 +237,7 @@ class FindTestCase(TestCase):
+ class DomainFilteringTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self._site = Site.objects.create(domain='www.example.com',
+ name='www')
+ self.mail_domain2 = MailDomain.objects.create(
+diff --git a/hyperkitty/tests/views/test_mailinglist.py
b/hyperkitty/tests/views/test_mailinglist.py
+index ef37d0d..02999e7 100644
+--- a/hyperkitty/tests/views/test_mailinglist.py
++++ b/hyperkitty/tests/views/test_mailinglist.py
+@@ -37,6 +37,7 @@ from hyperkitty.utils import reverse
+ class DeleteMailingListTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.user.is_staff = True
+diff --git a/hyperkitty/tests/views/test_mailman.py
b/hyperkitty/tests/views/test_mailman.py
+index 15cc852..939d661 100644
+--- a/hyperkitty/tests/views/test_mailman.py
++++ b/hyperkitty/tests/views/test_mailman.py
+@@ -66,6 +66,7 @@ class PrivateListTestCase(TestCase):
+ class ArchiveTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ msg = EmailMessage()
+ msg["From"] = "[email protected]"
+ msg["Subject"] = "Fake Subject"
+diff --git a/hyperkitty/tests/views/test_message.py
b/hyperkitty/tests/views/test_message.py
+index 7bb0af8..df987e5 100644
+--- a/hyperkitty/tests/views/test_message.py
++++ b/hyperkitty/tests/views/test_message.py
+@@ -53,6 +53,7 @@ from hyperkitty.utils import reverse
+ class MessageViewsTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.client.login(username='testuser', password='testPass')
+diff --git a/hyperkitty/tests/views/test_search.py
b/hyperkitty/tests/views/test_search.py
+index e3bb92e..588234a 100644
+--- a/hyperkitty/tests/views/test_search.py
++++ b/hyperkitty/tests/views/test_search.py
+@@ -37,6 +37,7 @@ from hyperkitty.utils import reverse
+ class SearchViewsTestCase(SearchEnabledTestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.mailman_client.get_list.side_effect = \
+diff --git a/hyperkitty/tests/views/test_thread.py
b/hyperkitty/tests/views/test_thread.py
+index 76dd5b2..d41eef9 100644
+--- a/hyperkitty/tests/views/test_thread.py
++++ b/hyperkitty/tests/views/test_thread.py
+@@ -43,6 +43,7 @@ from hyperkitty.utils import reverse
+ class ReattachTestCase(SearchEnabledTestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.user.is_staff = True
+@@ -189,6 +190,7 @@ class ReattachTestCase(SearchEnabledTestCase):
+ class ThreadTestCase(TestCase):
+
+ def setUp(self):
++ super().setUp()
+ self.user = User.objects.create_user(
+ 'testuser', '[email protected]', 'testPass')
+ self.user.is_staff = True
diff -Nru hyperkitty-1.3.12/debian/patches/series
hyperkitty-1.3.12/debian/patches/series
--- hyperkitty-1.3.12/debian/patches/series 2026-03-22 14:46:29.000000000
-0700
+++ hyperkitty-1.3.12/debian/patches/series 2026-06-01 12:37:06.000000000
-0700
@@ -5,3 +5,4 @@
0005-Changes-to-support-mistune-3.1.patch
0006-Drop-robot-detection-from-hyperkitty.patch
0007-Fix-tests-warnings-for-BeautifulSoup-and-timezone-na.patch
+0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch