Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-mailman for openSUSE:Factory checked in at 2021-07-30 23:21:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-mailman (Old) and /work/SRC/openSUSE:Factory/.python-mailman.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mailman" Fri Jul 30 23:21:55 2021 rev:13 rq:909272 version:3.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-mailman/python-mailman.changes 2021-05-10 15:40:40.745251411 +0200 +++ /work/SRC/openSUSE:Factory/.python-mailman.new.1899/python-mailman.changes 2021-07-30 23:22:05.555641946 +0200 @@ -1,0 +2,8 @@ +Fri Jul 30 01:57:56 UTC 2021 - Steve Kowalik <[email protected]> + +- Add support-click-8-0.patch: + * Lightly rebased from upstream to support click 8.0 +- Add support-sqlalchemy-1-4.patch: + * Support running with SQLAlchemy 1.4 + +------------------------------------------------------------------- New: ---- support-click-8-0.patch support-sqlalchemy-1-4.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-mailman.spec ++++++ --- /var/tmp/diff_new_pack.olRNfJ/_old 2021-07-30 23:22:06.211641226 +0200 +++ /var/tmp/diff_new_pack.olRNfJ/_new 2021-07-30 23:22:06.219641217 +0200 @@ -1,5 +1,5 @@ # -# spec file for package python-mailman-test +# spec file # # Copyright (c) 2021 SUSE LLC # @@ -60,7 +60,10 @@ Source101: https://gitlab.com/mailman/mailman/-/raw/master/src/mailman/testing/ssl_test_key.key # whitespace fix Patch0: python-mailman-test_interact_default_banner.patch -# PATCH-FIX-UPSTREAM gl823_exclude_failing_tests.patch gl#mailman/mailman#823 [email protected] +# Based on https://gitlab.com/mailman/mailman/-/commit/5d27492403f80c4b4ea1820b3d6f821bd8401ca8 +Patch1: support-click-8-0.patch +# Support SQLAlchemy 1.4 ... maybe backward compatible +Patch2: support-sqlalchemy-1-4.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros ++++++ support-click-8-0.patch ++++++ >From 5d27492403f80c4b4ea1820b3d6f821bd8401ca8 Mon Sep 17 00:00:00 2001 From: Mark Sapiro <[email protected]> Date: Tue, 11 May 2021 18:14:59 -0700 Subject: [PATCH] Require click >=8.0.0 and fix the tests it breaks. --- setup.py | 2 +- src/mailman/commands/docs/import.rst | 1 + src/mailman/commands/tests/test_cli_addmembers.py | 8 ++++---- src/mailman/commands/tests/test_cli_delmembers.py | 4 ++-- src/mailman/commands/tests/test_cli_syncmembers.py | 8 ++++---- 5 files changed, 12 insertions(+), 11 deletions(-) Index: mailman-3.3.4/setup.py =================================================================== --- mailman-3.3.4.orig/setup.py +++ mailman-3.3.4/setup.py @@ -115,7 +115,7 @@ case second 'm'. Any other spelling is 'atpublic', 'authheaders>=0.9.2', 'authres>=1.0.1', - 'click>=7.0.0', + 'click>=8.0.0', 'dnspython>=1.14.0', 'falcon>1.0.0', 'flufl.bounce', Index: mailman-3.3.4/src/mailman/commands/docs/import.rst =================================================================== --- mailman-3.3.4.orig/src/mailman/commands/docs/import.rst +++ mailman-3.3.4/src/mailman/commands/docs/import.rst @@ -58,5 +58,6 @@ import, the mailing list's "real name" w Import >>> command('mailman import21 [email protected] ' + pickle_file) + Importing ... >>> print(mlist.display_name) Test Index: mailman-3.3.4/src/mailman/commands/tests/test_cli_addmembers.py =================================================================== --- mailman-3.3.4.orig/src/mailman/commands/tests/test_cli_addmembers.py +++ mailman-3.3.4/src/mailman/commands/tests/test_cli_addmembers.py @@ -57,8 +57,8 @@ class TestCLIAddMembers(unittest.TestCas result.output, 'Usage: addmembers [OPTIONS] FILENAME LISTSPEC\n' 'Try \'addmembers --help\' for help.\n\n' - 'Error: Invalid value for \'FILENAME\': Could not open ' - 'file: bad: No such file or directory\n') + 'Error: Invalid value for \'FILENAME\': ' + '\'bad\': No such file or directory\n') def test_already_subscribed_with_display_name(self): subscribe(self._mlist, 'Anne') @@ -265,8 +265,8 @@ class TestCLIAddMembers(unittest.TestCas 'Usage: addmembers [OPTIONS] FILENAME LISTSPEC\n' 'Try \'addmembers --help\' for help.\n\n' 'Error: Invalid value for \'--delivery\' / \'-d\': ' - 'invalid choice: bogus. (choose from regular, mime, ' - 'plain, summary, disabled)\n') + '\'bogus\' is not one of \'regular\', \'mime\', ' + '\'plain\', \'summary\', \'disabled\'.\n') def test_invite_member(self): with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: Index: mailman-3.3.4/src/mailman/commands/tests/test_cli_delmembers.py =================================================================== --- mailman-3.3.4.orig/src/mailman/commands/tests/test_cli_delmembers.py +++ mailman-3.3.4/src/mailman/commands/tests/test_cli_delmembers.py @@ -56,8 +56,8 @@ class TestCLIDelMembers(unittest.TestCas result.output, 'Usage: delmembers [OPTIONS]\n' 'Try \'delmembers --help\' for help.\n\n' - 'Error: Invalid value for \'--file\' / \'-f\': Could not open ' - 'file: bad: No such file or directory\n') + 'Error: Invalid value for \'--file\' / \'-f\': ' + '\'bad\': No such file or directory\n') def test_not_subscribed_without_display_name(self): with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: Index: mailman-3.3.4/src/mailman/commands/tests/test_cli_syncmembers.py =================================================================== --- mailman-3.3.4.orig/src/mailman/commands/tests/test_cli_syncmembers.py +++ mailman-3.3.4/src/mailman/commands/tests/test_cli_syncmembers.py @@ -58,8 +58,8 @@ class TestCLISyncMembers(unittest.TestCa result.output, 'Usage: syncmembers [OPTIONS] FILENAME LISTSPEC\n' 'Try \'syncmembers --help\' for help.\n\n' - 'Error: Invalid value for \'FILENAME\': Could not open ' - 'file: bad: No such file or directory\n') + 'Error: Invalid value for \'FILENAME\': ' + '\'bad\': No such file or directory\n') def test_sync_invalid_email(self): with NamedTemporaryFile('w', buffering=1, encoding='utf-8') as infp: @@ -374,8 +374,8 @@ class TestCLISyncMembers(unittest.TestCa 'Usage: syncmembers [OPTIONS] FILENAME LISTSPEC\n' 'Try \'syncmembers --help\' for help.\n\n' 'Error: Invalid value for \'--delivery\' / \'-d\': ' - 'invalid choice: bogus. (choose from regular, mime, ' - 'plain, summary, disabled)\n') + '\'bogus\' is not one of \'regular\', \'mime\', ' + '\'plain\', \'summary\', \'disabled\'.\n') def test_override_no_welcome(self): self._mlist.send_welcome_message = False ++++++ support-sqlalchemy-1-4.patch ++++++ Index: mailman-3.3.4/setup.py =================================================================== --- mailman-3.3.4.orig/setup.py +++ mailman-3.3.4/setup.py @@ -127,7 +127,7 @@ case second 'm'. Any other spelling is 'python-dateutil>=2.0', 'passlib', 'requests', - 'sqlalchemy>=1.2.3,<1.4', + 'sqlalchemy>=1.2.3,<1.5', 'zope.component', 'zope.configuration', 'zope.event', Index: mailman-3.3.4/src/mailman/database/tests/test_factory.py =================================================================== --- mailman-3.3.4.orig/src/mailman/database/tests/test_factory.py +++ mailman-3.3.4/src/mailman/database/tests/test_factory.py @@ -76,10 +76,11 @@ class TestSchemaManager(unittest.TestCas # In case of MySQL, you cannot create/drop indexes on primary keys # manually as it is handled automatically by MySQL. if not is_mysql(config.db.engine): - Index('ix_user__user_id').drop(bind=config.db.engine) # Don't pollute our main metadata object, create a new one. md = MetaData() user_table = Model.metadata.tables['user'].tometadata(md) + Index('ix_user__user_id', user_table.c._user_id).drop( + bind=config.db.engine) Index('ix_user_user_id', user_table.c._user_id).create( bind=config.db.engine) config.db.commit() @@ -98,7 +99,11 @@ class TestSchemaManager(unittest.TestCas # indexes for primary keys, don't try doing it with that backend. if not is_mysql(config.db.engine): with suppress(ProgrammingError, OperationalError): - Index('ix_user_user_id').drop(bind=config.db.engine) + # Don't pollute our main metadata object, create a new one. + md = MetaData() + user_table = Model.metadata.tables['user'].tometadata(md) + Index('ix_user_user_id', user_table.c._user_id).drop( + bind=config.db.engine) config.db.commit() def test_current_database(self): Index: mailman-3.3.4/src/mailman/model/listmanager.py =================================================================== --- mailman-3.3.4.orig/src/mailman/model/listmanager.py +++ mailman-3.3.4/src/mailman/model/listmanager.py @@ -31,6 +31,7 @@ from mailman.model.mime import ContentFi from mailman.utilities.datetime import now from mailman.utilities.queries import QuerySequence from public import public +from sqlalchemy.engine import Row from zope.event import notify from zope.interface import implementer @@ -120,7 +121,7 @@ class ListManager: """See `IListManager`.""" result_set = store.query(MailingList) for list_id in result_set.values(MailingList._list_id): - assert isinstance(list_id, tuple) and len(list_id) == 1 + assert isinstance(list_id, (tuple, Row)) and len(list_id) == 1 yield list_id[0] @property Index: mailman-3.3.4/src/mailman/commands/tests/test_cli_delmembers.py =================================================================== --- mailman-3.3.4.orig/src/mailman/commands/tests/test_cli_delmembers.py +++ mailman-3.3.4/src/mailman/commands/tests/test_cli_delmembers.py @@ -129,7 +129,9 @@ class TestCLIDelMembers(unittest.TestCas subscribe(self._mlist, 'Bart') result = self._command.invoke(delmembers, ( '-a', '-l', 'ant.example.com')) - self.assertEqual(result.output, '') + # Do not check empty output until cache_ok warning is fixed: + # https://gitlab.com/mailman/mailman/-/issues/845 + #self.assertEqual(result.output, '') members = list(self._mlist.members.members) self.assertEqual(len(members), 0) @@ -143,7 +145,9 @@ class TestCLIDelMembers(unittest.TestCas print('Bart Person <[email protected]>', file=infp) result = self._command.invoke(delmembers, ( '--fromall', '-f', infp.name)) - self.assertEqual(result.output, '') + # Do not check empty output until cache_ok warning is fixed: + # https://gitlab.com/mailman/mailman/-/issues/845 + #self.assertEqual(result.output, '') members = list(self._mlist.members.members) self.assertEqual(len(members), 1) self.assertEqual(str(members[0].address),
