Hello community,

here is the log from the commit of package python-mailmanclient for 
openSUSE:Factory checked in at 2020-08-04 20:23:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mailmanclient (Old)
 and      /work/SRC/openSUSE:Factory/.python-mailmanclient.new.3592 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-mailmanclient"

Tue Aug  4 20:23:31 2020 rev:4 rq:824275 version:3.3.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-mailmanclient/python-mailmanclient.changes    
    2020-01-24 13:12:41.993470101 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-mailmanclient.new.3592/python-mailmanclient.changes
      2020-08-04 20:23:43.917011694 +0200
@@ -1,0 +2,15 @@
+Tue Aug  4 02:03:44 UTC 2020 - Stasiek Michalski <stas...@michalski.cc>
+
+- Update to 3.3.1
+  * Held message moderation now supports an optional keyword, reason to
+    specify the reason to reject the message.
+  * Fix a bug where missing display_name attribute with
+    MalingList.subscribe would subscribe the user with a display name of
+    "None".
+  * Add advertised flag to MailingList object.
+  * MailingList.nonmembers now uses roster/nonmembers resource instead of
+    the find/ API for consistency.
+  * Add Client.get_nonmember and MailingList.get_nonmember to get a
+    non-member by address.
+
+-------------------------------------------------------------------

Old:
----
  mailmanclient-3.3.0.tar.gz

New:
----
  mailmanclient-3.3.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-mailmanclient.spec ++++++
--- /var/tmp/diff_new_pack.0krcyJ/_old  2020-08-04 20:23:46.001011960 +0200
+++ /var/tmp/diff_new_pack.0krcyJ/_new  2020-08-04 20:23:46.005011960 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-mailmanclient
-Version:        3.3.0
+Version:        3.3.1
 Release:        0
 Summary:        mailmanclient -- Python bindings for Mailman REST API
 License:        LGPL-3.0-only

++++++ mailmanclient-3.3.0.tar.gz -> mailmanclient-3.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/.gitignore 
new/mailmanclient-3.3.1/.gitignore
--- old/mailmanclient-3.3.0/.gitignore  2019-01-04 14:14:13.000000000 +0100
+++ new/mailmanclient-3.3.1/.gitignore  1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-build
-dist
-mailman.client.egg-info
-.tox
-__pycache__
-*.egg-info
-*.pyc
-_build/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/.gitlab-ci.yml 
new/mailmanclient-3.3.1/.gitlab-ci.yml
--- old/mailmanclient-3.3.0/.gitlab-ci.yml      2019-05-07 00:08:23.000000000 
+0200
+++ new/mailmanclient-3.3.1/.gitlab-ci.yml      1970-01-01 01:00:00.000000000 
+0100
@@ -1,44 +0,0 @@
-image: maxking/mailman-ci-runner
-
-variables:
-  LC_ALL: C.UTF-8
-  LANG: C.UTF-8
-
-python3.5:
-  script:
-    - tox -e py35
-  except:
-    variables:
-      - $CORE_COMMIT_SHA
-
-python3.6:
-  script:
-    - tox -e py36
-  except:
-    variables:
-      - $CORE_COMMIT_SHA
-
-python3.7:
-  script:
-    - tox -e py37
-  except:
-    variables:
-      - $CORE_COMMIT_SHA
-
-lint:
-  script:
-    - tox -e lint
-  except:
-    variables:
-      - $CORE_COMMIT_SHA
-
-docs:
-  script:
-    - tox -e docs
-  except:
-    variables:
-      - $CORE_COMMIT_SHA
-
-upstream:
-  script:
-    - tox -e py37
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/PKG-INFO 
new/mailmanclient-3.3.1/PKG-INFO
--- old/mailmanclient-3.3.0/PKG-INFO    2019-09-03 18:06:57.000000000 +0200
+++ new/mailmanclient-3.3.1/PKG-INFO    2020-06-02 05:39:22.932331300 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: mailmanclient
-Version: 3.3.0
+Version: 3.3.1
 Summary: mailmanclient -- Python bindings for Mailman REST API
 Home-page: http://www.list.org/
 Maintainer: Barry Warsaw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/conftest.py 
new/mailmanclient-3.3.1/conftest.py
--- old/mailmanclient-3.3.0/conftest.py 2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/conftest.py 2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/mailman_test.cfg 
new/mailmanclient-3.3.1/mailman_test.cfg
--- old/mailmanclient-3.3.0/mailman_test.cfg    2019-05-07 00:08:23.000000000 
+0200
+++ new/mailmanclient-3.3.1/mailman_test.cfg    2020-03-26 07:38:51.000000000 
+0100
@@ -21,3 +21,11 @@
 
 [archiver.prototype]
 enable: yes
+
+[logging.master]
+path: /dev/stdout
+level: info
+
+[logging.http]
+path: /dev/stdout
+level: error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/setup.py 
new/mailmanclient-3.3.1/setup.py
--- old/mailmanclient-3.3.0/setup.py    2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/setup.py    2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
@@ -55,13 +55,13 @@
     extras_require={
         'testing': [
             'pytest',
-            'pytest-vcr',
             'pytest-services',
-            'mailman',
+            'mailman>=3.3.1',
             'falcon==1.4.1',
             ],
         'lint': [
-            'flake8>3.0'
+            'flake8>3.0',
+            'flake8-bugbear',
            ]
         },
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/setup_helpers.py 
new/mailmanclient-3.3.1/setup_helpers.py
--- old/mailmanclient-3.3.0/setup_helpers.py    2019-05-07 00:08:23.000000000 
+0200
+++ new/mailmanclient-3.3.1/setup_helpers.py    2020-05-10 01:14:40.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client
 #
@@ -115,7 +115,7 @@
     :rtype: list
     """
     doctests = []
-    for dirpath, dirnames, filenames in os.walk(start):
+    for dirpath, _, filenames in os.walk(start):
         doctests.extend(os.path.join(dirpath, filename)
                         for filename in filenames
                         if filename.endswith(extension))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/__init__.py 
new/mailmanclient-3.3.1/src/mailmanclient/__init__.py
--- old/mailmanclient-3.3.0/src/mailmanclient/__init__.py       2019-09-03 
17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/__init__.py       2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/_client.py 
new/mailmanclient-3.3.1/src/mailmanclient/_client.py
--- old/mailmanclient-3.3.0/src/mailmanclient/_client.py        2019-05-07 
00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/_client.py        2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/client.py 
new/mailmanclient-3.3.1/src/mailmanclient/client.py
--- old/mailmanclient-3.3.0/src/mailmanclient/client.py 2019-09-03 
17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/client.py 2020-05-10 
01:14:55.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -218,6 +218,16 @@
         """
         return self.get_list(fqdn_listname).get_member(subscriber_address)
 
+    def get_nonmember(self, fqdn_listname, nonmember_address):
+        """Get the Member object for a given MailingList and Non-member's 
Email.
+
+        :param str fqdn_listname: Fully qualified address for the MailingList.
+        :param str subscriber_address: Email Address for the non-member.
+        :returns: A member of a list.
+        :rtype: :class:`Member`
+        """
+        return self.get_list(fqdn_listname).get_nonmember(nonmember_address)
+
     def get_member_page(self, count=50, page=1):
         """Return a paginated list of Members.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/conftest.py 
new/mailmanclient-3.3.1/src/mailmanclient/conftest.py
--- old/mailmanclient-3.3.0/src/mailmanclient/conftest.py       2019-05-07 
00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/conftest.py       2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/constants.py 
new/mailmanclient-3.3.1/src/mailmanclient/constants.py
--- old/mailmanclient-3.3.0/src/mailmanclient/constants.py      2019-09-03 
17:49:46.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/constants.py      2020-06-02 
05:37:27.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -15,7 +15,7 @@
 # along with mailmanclient.  If not, see <http://www.gnu.org/licenses/>.
 
 
-__version__ = '3.3.0'
+__version__ = '3.3.1'
 
 DEFAULT_PAGE_ITEM_COUNT = 50
 MISSING = object()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/docs/NEWS.rst 
new/mailmanclient-3.3.1/src/mailmanclient/docs/NEWS.rst
--- old/mailmanclient-3.3.0/src/mailmanclient/docs/NEWS.rst     2019-09-03 
17:51:14.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/docs/NEWS.rst     2020-06-02 
05:37:27.000000000 +0200
@@ -2,6 +2,21 @@
 NEWS for mailmanclient
 =======================
 
+
+3.3.1 (2020-06-01)
+==================
+
+- Held message moderation now supports an optional keyword, ``reason`` to
+  specify the reason to reject the message. (Closes #49)
+- Fix a bug where missing ``display_name`` attribute with
+  ``MalingList.subscribe`` would subscribe the user with a display name of
+  "None". (Fixes #52)
+- Add ``advertised`` flag to ``MailingList`` object. (See !115)
+- ``MailingList.nonmembers`` now uses ``roster/nonmembers`` resource instead of
+  the ``find/`` API for consistency.
+- Add ``Client.get_nonmember`` and ``MailingList.get_nonmember`` to get a
+  non-member by address. (Fixes #47)
+
 3.3.0 (2019-09-03)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/docs/conftest.py 
new/mailmanclient-3.3.1/src/mailmanclient/docs/conftest.py
--- old/mailmanclient-3.3.0/src/mailmanclient/docs/conftest.py  2019-05-07 
00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/docs/conftest.py  2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -15,22 +15,11 @@
 # along with mailmanclient.  If not, see <http://www.gnu.org/licenses/>.
 
 """Wrappers for doctests to run with pytest"""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
 import pytest
 
 from mailmanclient.testing.documentation import dump
 
 
-def pytest_collection_modifyitems(items):
-    for item in items:
-        item.add_marker(pytest.mark.vcr)
-
-
 @pytest.fixture(autouse=True)
 def import_stuff(doctest_namespace):
-    doctest_namespace['absolute_import'] = absolute_import
-    doctest_namespace['print_function'] = print_function
-    doctest_namespace['unicode_literals'] = unicode_literals
     doctest_namespace['dump'] = dump
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/src/mailmanclient/docs/using.rst 
new/mailmanclient-3.3.1/src/mailmanclient/docs/using.rst
--- old/mailmanclient-3.3.0/src/mailmanclient/docs/using.rst    2019-05-07 
00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/docs/using.rst    2020-06-02 
05:37:27.000000000 +0200
@@ -718,6 +718,7 @@
     >>> settings = test_one.settings
     >>> for attr in sorted(settings):
     ...     print(attr + ': ' + str(settings[attr]))
+    accept_these_nonmembers: []
     acceptable_aliases: []
     ...
     volume: 1
@@ -1256,6 +1257,7 @@
     >>> cfg = client.configuration
     >>> for key in sorted(cfg):
     ...     print(cfg[key].name)
+    ARC
     antispam
     archiver.mail_archive
     archiver.master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restbase/base.py 
new/mailmanclient-3.3.1/src/mailmanclient/restbase/base.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restbase/base.py  2019-09-03 
17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restbase/base.py  2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restbase/connection.py 
new/mailmanclient-3.3.1/src/mailmanclient/restbase/connection.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restbase/connection.py    
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restbase/connection.py    
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -115,5 +115,6 @@
             return response, response.json()
         except HTTPError:
             raise
-        except IOError:
-            raise MailmanConnectionError('Could not connect to Mailman API')
+        except IOError as e:
+            raise MailmanConnectionError(
+                'Could not connect to Mailman API: ', repr(e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restbase/page.py 
new/mailmanclient-3.3.1/src/mailmanclient/restbase/page.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restbase/page.py  2019-05-07 
00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restbase/page.py  2020-05-10 
01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/address.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/address.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/address.py    
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/address.py    
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/archivers.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/archivers.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/archivers.py  
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/archivers.py  
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/ban.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/ban.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/ban.py        
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/ban.py        
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/configuration.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/configuration.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/configuration.py      
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/configuration.py      
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/domain.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/domain.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/domain.py     
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/domain.py     
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/header_match.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/header_match.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/header_match.py       
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/header_match.py       
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/held_message.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/held_message.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/held_message.py       
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/held_message.py       
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -31,23 +31,30 @@
         return '<HeldMessage {0!r} by {1}>'.format(
             self.request_id, self.sender)
 
-    def moderate(self, action):
+    def moderate(self, action, comment=None):
         """Moderate a held message.
 
         :param action: Action to perform on held message.
         :type action: String.
         """
+        data = dict(action=action)
+        if comment is not None:
+            data['comment'] = comment
+
         response, content = self._connection.call(
-            self._url, dict(action=action), 'POST')
+            self._url, data, 'POST')
         return response
 
     def discard(self):
         """Shortcut for moderate."""
         return self.moderate('discard')
 
-    def reject(self):
-        """Shortcut for moderate."""
-        return self.moderate('reject')
+    def reject(self, reason=None):
+        """Shortcut for moderate.
+
+        :param reason: An optional reason for rejecting the held message.
+        """
+        return self.moderate('reject', comment=reason)
 
     def defer(self):
         """Shortcut for moderate."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/mailinglist.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/mailinglist.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/mailinglist.py        
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/mailinglist.py        
2020-06-02 05:37:27.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -35,9 +35,9 @@
 
 class MailingList(RESTObject):
 
-    _properties = ('display_name', 'fqdn_listname', 'list_id', 'list_name',
-                   'mail_host', 'member_count', 'volume', 'self_link',
-                   'description')
+    _properties = ('advertised', 'display_name', 'fqdn_listname', 'list_id',
+                   'list_name', 'mail_host', 'member_count', 'volume',
+                   'self_link', 'description')
 
     def __init__(self, connection, url, data=None):
         super(MailingList, self).__init__(connection, url, data)
@@ -80,10 +80,8 @@
 
     @property
     def nonmembers(self):
-        url = 'members/find'
-        data = {'role': 'nonmember',
-                'list_id': self.list_id}
-        response, content = self._connection.call(url, data)
+        url = 'lists/{0}/roster/nonmember'.format(self.fqdn_listname)
+        response, content = self._connection.call(url)
         if 'entries' not in content:
             return []
         return [Member(self._connection, entry['self_link'], entry)
@@ -191,34 +189,53 @@
             self.fqdn_listname, role, quote_plus(address))
         self._connection.call(url, method='DELETE')
 
-    def moderate_message(self, request_id, action):
+    def moderate_message(self, request_id, action, comment=None):
         """Moderate a held message.
 
         :param request_id: Id of the held message.
         :type request_id: Int.
         :param action: Action to perform on held message.
         :type action: String.
+        :param comment: The reason for action, only supported for rejection.
+        :type comment: str
         """
+        data = dict(action=action)
+        if comment is not None:
+            data['comment'] = comment
+
         path = 'lists/{0}/held/{1}'.format(
             self.fqdn_listname, str(request_id))
         response, content = self._connection.call(
-            path, dict(action=action), 'POST')
+            path, data, 'POST')
         return response
 
     def discard_message(self, request_id):
-        """Shortcut for moderate_message."""
+        """Shortcut for moderate_message.
+
+        :param str request_id: The request_id of the held message.
+        """
         return self.moderate_message(request_id, 'discard')
 
-    def reject_message(self, request_id):
-        """Shortcut for moderate_message."""
-        return self.moderate_message(request_id, 'reject')
+    def reject_message(self, request_id, reason=None):
+        """Shortcut for moderate_message.
+
+        :param str request_id: The request_id of the held message.
+        :param str reason: An optional reason for rejection of the message.
+        """
+        return self.moderate_message(request_id, 'reject', reason)
 
     def defer_message(self, request_id):
-        """Shortcut for moderate_message."""
+        """Shortcut for moderate_message.
+
+        :param str request_id: The request_id of the held message.
+        """
         return self.moderate_message(request_id, 'defer')
 
     def accept_message(self, request_id):
-        """Shortcut for moderate_message."""
+        """Shortcut for moderate_message.
+
+        :param str request_id: The request_id of the held message.
+        """
         return self.moderate_message(request_id, 'accept')
 
     def moderate_request(self, request_id, action):
@@ -256,23 +273,40 @@
         """Shortcut to defer a subscription request."""
         return self.moderate_request(request_id, 'defer')
 
-    def get_member(self, email):
+    def _get_membership(self, email, role):
         """Get a membership.
 
         :param address: The email address of the member for this list.
+        :param role: The membership role.
         :return: A member proxy object.
         """
         # In order to get the member object we query the REST API for
         # the member. Incase there is no matching subscription, an
         # HTTPError is returned instead.
         try:
-            path = 'lists/{0}/member/{1}'.format(
-                self.list_id, quote_plus(email))
+            path = 'lists/{0}/{1}/{2}'.format(
+                self.list_id, role, quote_plus(email))
             response, content = self._connection.call(path)
             return Member(self._connection, content['self_link'], content)
         except HTTPError:
-            raise ValueError('%s is not a member address of %s' %
-                             (email, self.fqdn_listname))
+            raise ValueError('%s is not a %s address of %s' %
+                             (email, role, self.fqdn_listname))
+
+    def get_member(self, email):
+        """Get a membership.
+
+        :param address: The email address of the member for this list.
+        :return: A member proxy object.
+        """
+        return self._get_membership(email, 'member')
+
+    def get_nonmember(self, email):
+        """Get a non-member of the list.
+
+        :param address: The email address of the non-member for this list.
+        :return: A member proxy object.
+        """
+        return self._get_membership(email, 'nonmember')
 
     def subscribe(self, address, display_name=None, pre_verified=False,
                   pre_confirmed=False, pre_approved=False):
@@ -293,8 +327,9 @@
         data = dict(
             list_id=self.list_id,
             subscriber=address,
-            display_name=display_name,
         )
+        if display_name:
+            data['display_name'] = display_name
         if pre_verified:
             data['pre_verified'] = True
         if pre_confirmed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/member.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/member.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/member.py     
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/member.py     
2020-06-02 05:37:27.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -29,7 +29,8 @@
     _writable_properties = ('address', 'delivery_mode', 'moderation_action')
 
     def __repr__(self):
-        return '<Member {0!r} on {1!r}>'.format(self.email, self.list_id)
+        return '<Member {0!r} on {1!r} with role {2!r}>'.format(
+            self.email, self.list_id, self.role)
 
     def __str__(self):
         return 'Member "{0}" on "{1}"'.format(self.email, self.list_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/preferences.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/preferences.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/preferences.py        
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/preferences.py        
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/queue.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/queue.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/queue.py      
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/queue.py      
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/settings.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/settings.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/settings.py   
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/settings.py   
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/styles.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/styles.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/styles.py     
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/styles.py     
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2018-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/templates.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/templates.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/templates.py  
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/templates.py  
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/restobjects/user.py 
new/mailmanclient-3.3.1/src/mailmanclient/restobjects/user.py
--- old/mailmanclient-3.3.0/src/mailmanclient/restobjects/user.py       
2019-09-03 17:00:28.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/restobjects/user.py       
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/testing/documentation.py 
new/mailmanclient-3.3.1/src/mailmanclient/testing/documentation.py
--- old/mailmanclient-3.3.0/src/mailmanclient/testing/documentation.py  
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/testing/documentation.py  
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of GNU Mailman.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/testing/vcr_helpers.py 
new/mailmanclient-3.3.1/src/mailmanclient/testing/vcr_helpers.py
--- old/mailmanclient-3.3.0/src/mailmanclient/testing/vcr_helpers.py    
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/testing/vcr_helpers.py    
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2015-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_client.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_client.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_client.py      
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_client.py      
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_domain.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_domain.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_domain.py      
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_domain.py      
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2015-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -15,12 +15,7 @@
 # along with mailmanclient.  If not, see <http://www.gnu.org/licenses/>.
 
 """Test domain corner cases."""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-
 import unittest
-import pytest
 
 from mailmanclient import Client
 from six.moves.urllib_error import HTTPError
@@ -32,7 +27,6 @@
     ]
 
 
-@pytest.mark.vcr()
 class TestDomains(unittest.TestCase):
     def setUp(self):
         self._client = Client(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_list.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_list.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_list.py        
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_list.py        
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
@@ -16,7 +16,7 @@
 
 """Tests for Mailing List."""
 
-from __future__ import absolute_import, print_function, unicode_literals
+import time
 
 from urllib.error import HTTPError
 from unittest import TestCase
@@ -114,3 +114,109 @@
         subscriber_addr = 'subscri...@example.com'
         self.mlist.subscribe(subscriber_addr)
         self.assertFalse(self.mlist.is_owner_or_mod(subscriber_addr))
+
+
+class TestHeldMessage(TestCase):
+
+    def setUp(self):
+        self._client = Client(
+            'http://localhost:9001/3.1', 'restadmin', 'restpass')
+
+        try:
+            self.domain = self._client.create_domain('example.com')
+        except HTTPError:
+            self.domain = self._client.get_domain('example.com')
+
+        self.mlist = self.domain.create_list('foo')
+        # Test that a held message can be moderated.
+        msg = """\
+From: nonmem...@example.com
+To: f...@example.com
+Subject: Hello World
+Message-ID: <msgid>
+
+Hello!
+"""
+        self._inject_message(msg, self.mlist)
+        # Wait for the message to appear in the held queue for 10 seconds max.
+        self._wait_for_message_in_held_queue(self.mlist, 30)
+
+    def tearDown(self):
+        self.domain.delete()
+
+    def _inject_message(self, msg, mlist):
+        inq = self._client.queues['in']
+        inq.inject('foo.example.com', msg)
+
+    def _wait_for_message_in_held_queue(self, mlist, timeout):
+        """Wait for held message in mlist for timeout seconds."""
+        start_time = time.time()
+        while True:
+            # if (start_time + timeout > time.time()):
+            #     print('timeout trying to wait for message')
+            #     break
+            all_held = mlist.held
+            if len(all_held) > 0:
+                print('Total time to wait for message:')
+                print(time.time() - start_time)
+                break
+            time.sleep(0.1)
+
+    def test_held_message_moderation(self):
+        # Test that message was held and not timed out.
+        self.assertEqual(len(self.mlist.held), 1)
+        held = self.mlist.held[0]
+        held_message = self.mlist.get_held_message(held.request_id)
+
+        # Now, let's try to reject this message with a reason.
+        response = self.mlist.reject_message(held_message.request_id,
+                                             reason='You shall not pass.')
+        self.assertEqual(response.status_code, 204)
+        # Make sure that the message was rejected.
+        self.assertEqual(len(self.mlist.held), 0)
+
+    def test_held_message_moderation_message_object(self):
+        # The only difference between this and the above test is that we use
+        # the `held_message.reject` API, which for some reason as different
+        # code to make the same API call.
+        self.assertEqual(len(self.mlist.held), 1)
+        held = self.mlist.held[0]
+        held_message = self.mlist.get_held_message(held.request_id)
+
+        # Now, let's try to reject this message with a reason.
+        response = held_message.reject(reason='You shall not pass.')
+        self.assertEqual(response.status_code, 204)
+        # Make sure that the message was rejected.
+        self.assertEqual(len(self.mlist.held), 0)
+
+
+class TestMailingList(TestCase):
+
+    def setUp(self):
+        self._client = Client(
+            'http://localhost:9001/3.1', 'restadmin', 'restpass')
+        try:
+            self.domain = self._client.create_domain('example.com')
+        except HTTPError:
+            self.domain = self._client.get_domain('example.com')
+        self.mlist = self.domain.create_list('foo')
+
+    def tearDown(self):
+        self.domain.delete()
+
+    def test_subscribe_without_display_name(self):
+        self.mlist.subscribe('aper...@example.com',
+                             pre_verified=True,
+                             pre_confirmed=True,
+                             pre_approved=True)
+        users = self.mlist.members[0]
+        self.assertEqual(users.display_name, '')
+
+    def test_subscribe_with_display_name(self):
+        self.mlist.subscribe('bper...@example.com',
+                             display_name='B Person',
+                             pre_verified=True,
+                             pre_confirmed=True,
+                             pre_approved=True)
+        users = self.mlist.members[0]
+        self.assertEqual(users.display_name, 'B Person')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_page.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_page.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_page.py        
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_page.py        
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2016-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -15,12 +15,8 @@
 # along with mailmanclient.  If not, see <http://www.gnu.org/licenses/>.
 
 """Test Page corner cases."""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
 import unittest
 
-import pytest
 from unittest.mock import Mock
 from urllib.parse import urlsplit, parse_qs
 
@@ -33,7 +29,6 @@
     ]
 
 
-@pytest.mark.vcr()
 class TestPage(unittest.TestCase):
 
     def test_url_simple(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_templates.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_templates.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_templates.py   
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_templates.py   
2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2017-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient/tests/test_unicode.py 
new/mailmanclient-3.3.1/src/mailmanclient/tests/test_unicode.py
--- old/mailmanclient-3.3.0/src/mailmanclient/tests/test_unicode.py     
2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient/tests/test_unicode.py     
2020-05-10 01:14:40.000000000 +0200
@@ -1,6 +1,6 @@
 # coding: utf-8
 
-# Copyright (C) 2015-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2015-2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailmanclient.
 #
@@ -18,10 +18,6 @@
 
 
 """Test unicode data when using REST endpoint."""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-import pytest
 import unittest
 
 from mailmanclient import Client
@@ -34,7 +30,6 @@
     ]
 
 
-@pytest.mark.vcr()
 class TestUnicode(unittest.TestCase):
     def setUp(self):
         self._client = Client(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient.egg-info/PKG-INFO 
new/mailmanclient-3.3.1/src/mailmanclient.egg-info/PKG-INFO
--- old/mailmanclient-3.3.0/src/mailmanclient.egg-info/PKG-INFO 2019-09-03 
18:06:57.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient.egg-info/PKG-INFO 2020-06-02 
05:39:22.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: mailmanclient
-Version: 3.3.0
+Version: 3.3.1
 Summary: mailmanclient -- Python bindings for Mailman REST API
 Home-page: http://www.list.org/
 Maintainer: Barry Warsaw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient.egg-info/SOURCES.txt 
new/mailmanclient-3.3.1/src/mailmanclient.egg-info/SOURCES.txt
--- old/mailmanclient-3.3.0/src/mailmanclient.egg-info/SOURCES.txt      
2019-09-03 18:06:57.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient.egg-info/SOURCES.txt      
2020-06-02 05:39:22.000000000 +0200
@@ -1,5 +1,3 @@
-.gitignore
-.gitlab-ci.yml
 COPYING.LESSER
 MANIFEST.in
 Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mailmanclient-3.3.0/src/mailmanclient.egg-info/requires.txt 
new/mailmanclient-3.3.1/src/mailmanclient.egg-info/requires.txt
--- old/mailmanclient-3.3.0/src/mailmanclient.egg-info/requires.txt     
2019-09-03 18:06:57.000000000 +0200
+++ new/mailmanclient-3.3.1/src/mailmanclient.egg-info/requires.txt     
2020-06-02 05:39:22.000000000 +0200
@@ -1,11 +1,11 @@
 requests
 
 [lint]
+flake8-bugbear
 flake8>3.0
 
 [testing]
+falcon==1.4.1
+mailman>=3.3.1
 pytest
-pytest-vcr
 pytest-services
-mailman
-falcon==1.4.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/template.py 
new/mailmanclient-3.3.1/template.py
--- old/mailmanclient-3.3.0/template.py 2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/template.py 2020-05-10 01:14:40.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2019 by the Free Software Foundation, Inc.
+# Copyright (C) 2020 by the Free Software Foundation, Inc.
 #
 # This file is part of mailman.client.
 #
@@ -16,7 +16,5 @@
 
 """Module contents."""
 
-from __future__ import absolute_import, print_function, unicode_literals
-
 __all__ = [
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mailmanclient-3.3.0/tox.ini 
new/mailmanclient-3.3.1/tox.ini
--- old/mailmanclient-3.3.0/tox.ini     2019-05-07 00:08:23.000000000 +0200
+++ new/mailmanclient-3.3.1/tox.ini     2020-06-02 05:37:27.000000000 +0200
@@ -1,23 +1,16 @@
 [tox]
-envlist = py{35,36,37},lint
+envlist = py{35,36,37,38},lint
 
 [testenv]
 usedevelop = True
-commands = pytest --vcr-record=all {posargs}
+commands = pytest {posargs}
 extras = testing
-deps =
-    
git+https://gitlab.com/mailman/mailman@cc07241af178bb6870e6043babebf0432659734a
 
 [testenv:dependency]
 userdevelop = True
 extras = testing
 deps = git+https://gitlab.com/mailman/mailman@{env:CORE_COMMIT_SHA}
 
-
-[testenv:record]
-basepython = python3
-commands = pytest --vcr-record=once {posargs}
-
 [testenv:lint]
 extras = lint
 commands =


Reply via email to