Your message dated Mon, 08 Jun 2026 21:12:22 +0000
with message-id <[email protected]>
and subject line Bug#1134838: fixed in hyperkitty 1.3.12-4.1
has caused the Debian Bug report #1134838,
regarding hyperkitty: Please fix compatibility with Django 5.x
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1134838: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1134838
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: hyperkitty
Version: 1.3.12-4
Severity: normal
Tags: patch

Hi,

I'm in the process of preparing unstable for an upload of Django 5.2. To
this end, please apply the attached patch from upstream which fixes a
test failure under this version.

These changes are backwards compatible with Django version 4.2 that is
currently in unstable. I am using "Severity: normal" as I hope to upload
Django 5.2 very soon, but feel free to adjust.

(Patch attached.)


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [email protected] / chris-lamb.co.uk
       `-
diff --git 
debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch 
debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
new file mode 100644
index 0000000..03b5b00
--- /dev/null
+++ 
debian/patches/0008-PATCH-fix-tests-Do-not-depend-on-Django-private-test.patch
@@ -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 --git debian/patches/series debian/patches/series
index 1d4d3d2..6c3b940 100644
--- debian/patches/series
+++ debian/patches/series
@@ -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

--- End Message ---
--- Begin Message ---
Source: hyperkitty
Source-Version: 1.3.12-4.1
Done: Chris Lamb <[email protected]>

We believe that the bug you reported is fixed in the latest version of
hyperkitty, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Chris Lamb <[email protected]> (supplier of updated hyperkitty package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Mon, 01 Jun 2026 12:37:06 -0700
Source: hyperkitty
Binary: python3-django-hyperkitty
Architecture: source all
Version: 1.3.12-4.1
Distribution: unstable
Urgency: medium
Maintainer: Debian Mailman Team <[email protected]>
Changed-By: Chris Lamb <[email protected]>
Description:
 python3-django-hyperkitty - Web user interface to access GNU Mailman3 archives
Closes: 1134838
Changes:
 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)
Checksums-Sha1:
 ec8ad70717c4401ae46af779ae6dffe65c6b2713 2668 hyperkitty_1.3.12-4.1.dsc
 5fa97489fc6cca46fb452a817ac7941fa7972ce7 2231630 hyperkitty_1.3.12.orig.tar.gz
 b0e56c6589c556e75d55818e43e55a74020d32b7 69640 
hyperkitty_1.3.12-4.1.debian.tar.xz
 97490d76568899810a659f81cadc45e24676cedb 11221 
hyperkitty_1.3.12-4.1_amd64.buildinfo
 0220c11a0bd3744a314aa255a25141f1a8140557 1110628 
python3-django-hyperkitty_1.3.12-4.1_all.deb
Checksums-Sha256:
 6149d9fd7a1ec152de72e7d9d5943d02842a7ff282a45d8a45cbe7d3a4443f78 2668 
hyperkitty_1.3.12-4.1.dsc
 deb582937ec5bc9ea9c1d5d86bfb76a4da429b60e1fea6fd6964e7c667cf161d 2231630 
hyperkitty_1.3.12.orig.tar.gz
 4a1a800d3e916bd371965f41081ee4985ee2a056c14ad3f88f8e3fac3edb42d3 69640 
hyperkitty_1.3.12-4.1.debian.tar.xz
 653ef332950391d6715cdf6b6e38e7ddc2521ba6046d2ba0f78cf251bdc4ac6d 11221 
hyperkitty_1.3.12-4.1_amd64.buildinfo
 a5252ec97cb4b3f5a86a8ec73619f79925d80d571a534676310b92b24cb598d8 1110628 
python3-django-hyperkitty_1.3.12-4.1_all.deb
Files:
 4e57652a779caac896e42d3b0c7754ba 2668 python optional hyperkitty_1.3.12-4.1.dsc
 7e4521ded9bbb4a004a9cb4ae8ed6a6b 2231630 python optional 
hyperkitty_1.3.12.orig.tar.gz
 8609325726d509b5866d8d250daa407a 69640 python optional 
hyperkitty_1.3.12-4.1.debian.tar.xz
 9bf11d76cd5a71a651e1e822fd1ed381 11221 python optional 
hyperkitty_1.3.12-4.1_amd64.buildinfo
 c3d6594c65281dadf9e13f3db4e35e59 1110628 python optional 
python3-django-hyperkitty_1.3.12-4.1_all.deb

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAmod4XEACgkQHpU+J9Qx
HlgBChAAuVLjMgD/WxAeX89UlETPUUHh8Tjjw5IHjsqm2ssM5N3bDE607bJ+YuuJ
yhXtpDvyESIOprkTIrr9bVzNPAM/WAQTQzE+zJpPGKUaKqfFuXgvLYGChcRSCsSG
rAJoyEANcmJLkDwKJF+Oi2NIp+8PgQkBBS1oOUR67NaUXRtKAy1qsEU97rWC42y/
R+oMcn9Ta0L0DUOzK9m0z8xqS9VMFG3+SfPyTHHM1tmV/r0CPavTDfX+WHi4IPTI
SBGuD6LIsmztIxY/8waEhchgfooAVJohjNzut6avFjU2rgloMV8vS3RxQEmTjbFK
pcYYrZUgwPBREQi3zBK+FAD1ddxa7zqjPOouPc8Fus7V2gdCxN3KWLB5kZpVYxT2
myFZfguW02Jhb8S4RCl/3/3LAD3281WK3TkN+21q3FeDtWoA+tblg71FFfheKpJv
9jUD+9DJNF1H9pUxUjHBAMzJave3M+G3lWNPmAsB56fTY/viuaVs1P3SXSh+jNdH
tSzH/RJ9qG67S/t3fpGlqLgqKR+vlNGaKl7G4Hs+UIraKoBWL4stSqeisFxMl9lv
tu4w8s8bNN4TfLoyVT+I1pRIWEKgI3fJ3riVAho4JDNhc7cwYE8/8EQkSsXGKieT
fYmmf++V/Nbh9q1tziAxgKUBGkOZ8+kIGRCY1jf30zgj/ms0L6k=
=GmSi
-----END PGP SIGNATURE-----

Attachment: pgp2RPLrCUNbz.pgp
Description: PGP signature


--- End Message ---

Reply via email to