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