From 9c8e4ff83b3e0a77beb1b38be65ac7f068d3e5f5c13bd41be204c77a47512413 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Thu, 18 Nov 2021 18:23:51 +0000 Subject: [PATCH 1/2] @gladiac I am afraid there is still more work to do. Any ideas how to fix those test errors? - Update to 3.3.3: - Add pre_confirmed and pre_approved parameters to MailingList.unsubscribe. - Add support to fetch pending unsubscription requests. - Add member_id as a property of Member object. - Return pending token when a Member is unsubscribed. - Allow specifying a reason when handling subscription requests - Add support to specify fields when fetching a roster. - Add a mechanism to hook into the request parameters. - Add basic support for async client for Mailman API. - Allow specifying delivery_mode and delivery_status when subscribing a Member. - Add a new Client.find_users API which allows searching for the users. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-mailmanclient?expand=0&rev=20 --- mailmanclient-3.3.2.tar.gz | 3 --- mailmanclient-3.3.3.tar.gz | 3 +++ python-mailmanclient.changes | 17 +++++++++++++++++ python-mailmanclient.spec | 3 ++- 4 files changed, 22 insertions(+), 4 deletions(-) delete mode 100644 mailmanclient-3.3.2.tar.gz create mode 100644 mailmanclient-3.3.3.tar.gz diff --git a/mailmanclient-3.3.2.tar.gz b/mailmanclient-3.3.2.tar.gz deleted file mode 100644 index a27cf70..0000000 --- a/mailmanclient-3.3.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4082ac0c66d7f7bee15751fe2564098b971177c0013e66d0c8ceee1ebdcb5592 -size 80654 diff --git a/mailmanclient-3.3.3.tar.gz b/mailmanclient-3.3.3.tar.gz new file mode 100644 index 0000000..9f1ea36 --- /dev/null +++ b/mailmanclient-3.3.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92fe624675e41f41f59de1208e0125dfaa8d062bbe6138bd7cd79e4dd0b6f85e +size 90137 diff --git a/python-mailmanclient.changes b/python-mailmanclient.changes index 0f8d099..622570d 100644 --- a/python-mailmanclient.changes +++ b/python-mailmanclient.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Thu Nov 18 18:14:51 UTC 2021 - Matej Cepl +- Update to 3.3.3: + - Add pre_confirmed and pre_approved parameters to + MailingList.unsubscribe. + - Add support to fetch pending unsubscription requests. + - Add member_id as a property of Member object. + - Return pending token when a Member is unsubscribed. + - Allow specifying a reason when handling subscription requests + - Add support to specify fields when fetching a roster. + - Add a mechanism to hook into the request parameters. + - Add basic support for async client for Mailman API. + - Allow specifying delivery_mode and delivery_status when + subscribing a Member. + - Add a new Client.find_users API which allows searching for + the users. + ------------------------------------------------------------------- Tue May 4 09:30:03 UTC 2021 - Ben Greiner diff --git a/python-mailmanclient.spec b/python-mailmanclient.spec index 6227e5f..6925b06 100644 --- a/python-mailmanclient.spec +++ b/python-mailmanclient.spec @@ -20,7 +20,7 @@ # mailman is built only for primary python3 flavor %define pythons python3 Name: python-mailmanclient -Version: 3.3.2 +Version: 3.3.3 Release: 0 Summary: Python bindings for the Mailman REST API License: LGPL-3.0-only @@ -33,6 +33,7 @@ Requires: python-requests BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module falcon} +BuildRequires: %{python_module httpx} BuildRequires: %{python_module mailman} BuildRequires: %{python_module pytest-services} BuildRequires: %{python_module pytest-vcr} From 8c7c3c2f64fdf7a8c23b76bed6514e2b9db1cc1e9698dccc6ae65365f6fc9767 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Sat, 20 Nov 2021 22:56:31 +0000 Subject: [PATCH 2/2] Accepting request 932464 from home:gladiac:mailman3 - Fix running the tests * Added mailmanclient-skip-httpx-tests.patch - Set missing Group OBS-URL: https://build.opensuse.org/request/show/932464 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:mailman/python-mailmanclient?expand=0&rev=21 --- mailmanclient-skip-httpx-tests.patch | 98 ++++++++++++++++++++++++++++ python-mailmanclient.changes | 7 ++ python-mailmanclient.spec | 9 ++- 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 mailmanclient-skip-httpx-tests.patch diff --git a/mailmanclient-skip-httpx-tests.patch b/mailmanclient-skip-httpx-tests.patch new file mode 100644 index 0000000..a9750ca --- /dev/null +++ b/mailmanclient-skip-httpx-tests.patch @@ -0,0 +1,98 @@ +Index: mailmanclient-3.3.3/src/mailmanclient/tests/test_async_client.py +=================================================================== +--- mailmanclient-3.3.3.orig/src/mailmanclient/tests/test_async_client.py 2021-11-19 10:35:49.358591669 +0100 ++++ mailmanclient-3.3.3/src/mailmanclient/tests/test_async_client.py 2021-11-19 10:35:59.998665466 +0100 +@@ -1,93 +0,0 @@ +-import httpx +-import pytest +-import concurrent.futures +- +-from mailmanclient.asynclient import AsyncClient +-from mailmanclient import Client +- +- +-@pytest.fixture(autouse=True) +-def setup(): +- """Setup for testing. Create test data.""" +- client = Client('http://localhost:9001/3.1', 'restadmin', 'restpass') +- print('Loading test data...') +- try: +- domain = client.create_domain('example.com') +- except Exception: +- domain = client.get_domain('example.com') +- # Create some lists. +- lists = [] +- print('Creating lists...') +- with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor: +- future_to_id = { +- executor.submit(domain.create_list, f'list{i}'): f'list{i}' +- for i in range(10)} +- for future in concurrent.futures.as_completed(future_to_id): +- lists.append(future.result()) +- +- # Subscribe some addresses. +- print('Creating subscirbers...') +- for i, ml in enumerate(lists): +- with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor: +- futures = [ +- executor.submit( +- ml.subscribe, f'mylist{each}@example.com', +- pre_verified=True, pre_confirmed=True, pre_approved=True) +- for each in range(i*5)] +- for _future in concurrent.futures.as_completed(futures): +- print('.', end='') +- yield +- # Cleanup after test. +- for ml in lists: +- ml.delete() +- domain.delete() +- +- +-@pytest.fixture +-async def client(): +- async with httpx.AsyncClient() as conn: +- client = AsyncClient( +- conn, 'http://localhost:9001/3.1', 'restadmin', 'restpass') +- yield client +- +- +-@pytest.mark.asyncio +-async def test_async_client(client): +- domains = await client.domains() +- for each in domains: +- print(f'Domain: {each.mail_host}') +- +- +-@pytest.mark.asyncio +-async def test_get_lists(client): +- lists = await client.lists() +- for ml in lists: +- print(f'Mailinglist: {ml.fqdn_listname}') +- await ml.config() +- +- +-@pytest.mark.asyncio +-async def test_get_members(client): +- members = await client.members() +- for member in members: +- print(f'Member: {member.role} {member.list_id} {member.email} ', +- end='') +- +- +-@pytest.mark.asyncio +-async def test_get_users(client): +- users = await client.users() +- for user in users: +- print(f'User: {user.user_id} ', end='') +- addrs = await user.addresses() +- for addr in addrs: +- print(f'UserAddress: {addr.email}', end='') +- prefs = await user.preferences() +- print('UserPreference: {}'.format(prefs._data), end='') +- +- +-@pytest.mark.asyncio +-async def test_get_addresses(client): +- addresses = await client.addresses() +- for addr in addresses: +- print(f'Address: {addr.email}', end='') diff --git a/python-mailmanclient.changes b/python-mailmanclient.changes index 622570d..16e89d6 100644 --- a/python-mailmanclient.changes +++ b/python-mailmanclient.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Nov 19 09:22:22 UTC 2021 - Andreas Schneider + +- Fix running the tests + * Added mailmanclient-skip-httpx-tests.patch +- Set missing Group + ------------------------------------------------------------------- Thu Nov 18 18:14:51 UTC 2021 - Matej Cepl - Update to 3.3.3: diff --git a/python-mailmanclient.spec b/python-mailmanclient.spec index 6925b06..1d31115 100644 --- a/python-mailmanclient.spec +++ b/python-mailmanclient.spec @@ -23,9 +23,13 @@ Name: python-mailmanclient Version: 3.3.3 Release: 0 Summary: Python bindings for the Mailman REST API +Group: Productivity/Networking/Email/Mailinglists License: LGPL-3.0-only URL: https://www.list.org/ Source: https://files.pythonhosted.org/packages/source/m/mailmanclient/mailmanclient-%{version}.tar.gz +%if 0%{?sle_version} && 0%{?sle_version} <= 150300 +Patch0: mailmanclient-skip-httpx-tests.patch +%endif BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -33,8 +37,11 @@ Requires: python-requests BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module falcon} +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400 BuildRequires: %{python_module httpx} +%endif BuildRequires: %{python_module mailman} +BuildRequires: %{python_module pytest-asyncio} BuildRequires: %{python_module pytest-services} BuildRequires: %{python_module pytest-vcr} BuildRequires: %{python_module pytest} @@ -51,7 +58,7 @@ Obsoletes: python38-mailmanclient < %{version}-%{release} Python bindings for Mailman REST API. %prep -%autosetup -n mailmanclient-%{version} +%autosetup -n mailmanclient-%{version} -p1 %build export LC_ALL=C.UTF-8