Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-resultsdb_api for 
openSUSE:Factory checked in at 2022-11-07 13:51:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-resultsdb_api (Old)
 and      /work/SRC/openSUSE:Factory/.python-resultsdb_api.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-resultsdb_api"

Mon Nov  7 13:51:47 2022 rev:3 rq:1034087 version:2.1.5

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-resultsdb_api/python-resultsdb_api.changes    
    2020-03-17 13:08:55.317742604 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-resultsdb_api.new.1597/python-resultsdb_api.changes
      2022-11-07 13:51:52.935865905 +0100
@@ -1,0 +2,7 @@
+Sat Nov  5 12:39:55 UTC 2022 - John Vandenberg <jay...@gmail.com>
+
+- Activate test suite
+- Update to v2.1.5
+  * No changelog available
+
+-------------------------------------------------------------------

Old:
----
  resultsdb_api-2.1.3.tar.gz

New:
----
  resultsdb_api-2.1.5.tar.gz

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

Other differences:
------------------
++++++ python-resultsdb_api.spec ++++++
--- /var/tmp/diff_new_pack.NkOfZA/_old  2022-11-07 13:51:53.875871189 +0100
+++ /var/tmp/diff_new_pack.NkOfZA/_new  2022-11-07 13:51:53.883871233 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-resultsdb_api
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-resultsdb_api
-Version:        2.1.3
+Version:        2.1.5
 Release:        0
 Summary:        Library for simplifying the communication with ResultsDB
 License:        GPL-2.0-or-later
@@ -54,13 +54,12 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-# https://pagure.io/taskotron/resultsdb_api/issue/1
-# It has tests but they don't work...
-#%%pytest
+%pytest --functional testing/
 
 %files %{python_files}
 %doc README.md
 %license LICENSE
-%{python_sitelib}/*
+%{python_sitelib}/resultsdb_api*
+%pycache_only %{python_sitelib}/__pycache__/
 
 %changelog

++++++ resultsdb_api-2.1.3.tar.gz -> resultsdb_api-2.1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/.gitignore 
new/resultsdb_api-2.1.5/.gitignore
--- old/resultsdb_api-2.1.3/.gitignore  2018-03-28 15:14:06.000000000 +0200
+++ new/resultsdb_api-2.1.5/.gitignore  2021-11-14 10:41:38.000000000 +0100
@@ -12,3 +12,6 @@
 htmlcov/
 test_env/
 .cache
+coverage.xml
+pep8.out
+.tox/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/MANIFEST 
new/resultsdb_api-2.1.5/MANIFEST
--- old/resultsdb_api-2.1.3/MANIFEST    2018-03-27 17:28:16.000000000 +0200
+++ new/resultsdb_api-2.1.5/MANIFEST    1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-README.md
-resultsdb_api.py
-setup.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/MANIFEST.in 
new/resultsdb_api-2.1.5/MANIFEST.in
--- old/resultsdb_api-2.1.3/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100
+++ new/resultsdb_api-2.1.5/MANIFEST.in 2021-11-14 10:41:38.000000000 +0100
@@ -0,0 +1,2 @@
+include *.requires
+include README.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/Makefile 
new/resultsdb_api-2.1.5/Makefile
--- old/resultsdb_api-2.1.3/Makefile    2019-05-28 15:07:04.000000000 +0200
+++ new/resultsdb_api-2.1.5/Makefile    2021-11-14 10:41:38.000000000 +0100
@@ -81,7 +81,6 @@
 .PHONY: mockbuild
 mockbuild: mocksrpm
        mock -r $(BUILDTARGET) --no-clean --rebuild $(NVR).$(TARGETDIST).src.rpm
-       cp 
/var/lib/mock/$(BUILDTARGET)/result/python2-resultsdb_api-$(VERSION)-$(RELEASE).$(TARGETDIST).noarch.rpm
 .
        cp 
/var/lib/mock/$(BUILDTARGET)/result/python3-resultsdb_api-$(VERSION)-$(RELEASE).$(TARGETDIST).noarch.rpm
 .
 
 #.PHONY: kojibuild
@@ -102,5 +101,5 @@
 .PHONY: $(VENV)
 $(VENV):
        virtualenv $(VENV)
-       sh -c "set -e; . $(VENV)/bin/activate; pip install -r requirements.txt; 
\
+       sh -c "set -e; . $(VENV)/bin/activate; pip install -r install.requires 
-r tests.requires; \
               deactivate"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/PKG-INFO 
new/resultsdb_api-2.1.5/PKG-INFO
--- old/resultsdb_api-2.1.3/PKG-INFO    2020-03-05 17:30:04.431725300 +0100
+++ new/resultsdb_api-2.1.5/PKG-INFO    2021-11-14 10:46:06.048796400 +0100
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: resultsdb_api
-Version: 2.1.3
+Version: 2.1.5
 Summary: Library for simplifying the communication with ResultsDB
 Home-page: https://pagure.io/taskotron/resultsdb_api
 Author: Josef Skladanka
 Author-email: jskla...@redhat.com
 License: UNKNOWN
-Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 2 - Pre-Alpha
 Classifier: Intended Audience :: Developers
@@ -19,3 +18,7 @@
 Classifier: Topic :: Internet
 Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol 
Translator
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/install.requires 
new/resultsdb_api-2.1.5/install.requires
--- old/resultsdb_api-2.1.3/install.requires    1970-01-01 01:00:00.000000000 
+0100
+++ new/resultsdb_api-2.1.5/install.requires    2021-11-14 10:41:38.000000000 
+0100
@@ -0,0 +1,2 @@
+requests >= 2.2.1
+simplejson >= 3.5.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/python-resultsdb_api.spec 
new/resultsdb_api-2.1.5/python-resultsdb_api.spec
--- old/resultsdb_api-2.1.3/python-resultsdb_api.spec   2019-05-28 
15:33:03.000000000 +0200
+++ new/resultsdb_api-2.1.5/python-resultsdb_api.spec   2021-11-14 
10:41:38.000000000 +0100
@@ -1,22 +1,18 @@
 Name:           python-resultsdb_api
 # NOTE: if you update version, *make sure* to also update `setup.py`
-Version:        2.1.3
+Version:        2.1.5
 Release:        1%{?dist}
 Summary:        Interface api to ResultsDB
 
 License:        GPLv2+
 URL:            https://pagure.io/taskotron/resultsdb_api
-Source0:        
https://qa.fedoraproject.org/releases/resultsdb_api/python-resultsdb_api-%{version}.tar.gz
+Source0:        
https://qa.fedoraproject.org/releases/resultsdb_api/resultsdb_api-%{version}.tar.gz
 
 BuildArch:      noarch
 
-BuildRequires:  git
-
-%global _description\
+%description
 Interface api to ResultsDB
 
-%description %_description
-
 %package -n python3-resultsdb_api
 Summary: %summary
 Requires:       python3-simplejson
@@ -30,15 +26,11 @@
 BuildRequires:  python3-requests
 BuildRequires:  python3-virtualenv
 
-%description -n python3-resultsdb_api %_description
+%description -n python3-resultsdb_api
+Python3 interface to resultsdb.
 
 %prep
-%setup -q -n python-resultsdb_api-%{version}
-
-%check
-## FIXME: fix the test suite
-## https://pagure.io/taskotron/resultsdb_api/issue/1
-# make test
+%autosetup -p1 -n resultsdb_api-%{version}
 
 %build
 %py3_build
@@ -46,14 +38,67 @@
 %install
 %py3_install
 
+%check
+%pytest
+
 %files -n python3-resultsdb_api
 %doc README.md
 %license LICENSE
 %{python3_sitelib}/resultsdb_api.*
 %{python3_sitelib}/__pycache__/resultsdb_api.*
-%{python3_sitelib}/*.egg-info
+%{python3_sitelib}/resultsdb_api-%{version}*.egg-info
 
 %changelog
+* Sun Nov 14 2021 Frantisek Zatloukal <fzatl...@redhat.com> - 2.1.5-1
+- Drop use of deprecated Retry parameter
+- Drop unnecessary `_KEEP` and just `None` instead
+- Make tox work (just runs pytest for now)
+- Port tests to unittest.mock and ResultsDB API v2 (#1)
+- Simplify update_testcase
+- update_testcase: fix variable name
+- ResultsDBAuth: it's `@staticmethod`, not `@static_method`
+- Drop Python 2 string type blob
+- Enable tests during the rpm build
+
+* Sun Nov 14 2021 Frantisek Zatloukal <fzatl...@redhat.com> - 2.1.4-3
+- Revert backported patch for auth code
+
+* Thu Nov 11 2021 Adam Williamson <awill...@redhat.com> - 2.1.4-2
+- Backport patch to fix critical error in auth code
+
+* Mon Nov 08 2021 Frantisek Zatloukal <fzatl...@redhat.com> - 2.1.4-1
+- add auth class with basic http auth support
+
+* Fri Jul 23 2021 Fedora Release Engineering <rel...@fedoraproject.org> - 
2.1.3-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Fri Jun 04 2021 Python Maint <python-ma...@redhat.com> - 2.1.3-10
+- Rebuilt for Python 3.10
+
+* Wed Jan 27 2021 Fedora Release Engineering <rel...@fedoraproject.org> - 
2.1.3-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Nov 09 2020 Frantisek Zatloukal <fzatl...@redhat.com> - 2.1.3-8
+- Drop BR: git
+
+* Wed Jul 29 2020 Fedora Release Engineering <rel...@fedoraproject.org> - 
2.1.3-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue May 26 2020 Miro Hron??ok <mhron...@redhat.com> - 2.1.3-6
+- Rebuilt for Python 3.9
+
+* Thu Jan 30 2020 Fedora Release Engineering <rel...@fedoraproject.org> - 
2.1.3-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Thu Oct 03 2019 Miro Hron??ok <mhron...@redhat.com> - 2.1.3-4
+- Rebuilt for Python 3.8.0rc1 (#1748018)
+
+* Mon Aug 19 2019 Miro Hron??ok <mhron...@redhat.com> - 2.1.3-3
+- Rebuilt for Python 3.8
+
+* Fri Jul 26 2019 Fedora Release Engineering <rel...@fedoraproject.org> - 
2.1.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
 * Tue May 28 2019 Frantisek Zatloukal <fzatl...@redhat.com> - 2.1.3-1
 - Fix 'RetryError' object has no attribute 'message'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/requirements.txt 
new/resultsdb_api-2.1.5/requirements.txt
--- old/resultsdb_api-2.1.3/requirements.txt    2018-06-11 14:50:12.000000000 
+0200
+++ new/resultsdb_api-2.1.5/requirements.txt    1970-01-01 01:00:00.000000000 
+0100
@@ -1,16 +0,0 @@
-# This is a list of pypi packages to be installed into virtualenv. 
Alternatively,
-# you can install these as RPMs instead of pypi packages. See the dependecies
-# with:
-# $ rpmspec -q --requires python-resultsdb_api.spec
-# $ rpmspec -q --buildrequires python-resultsdb_api.spec
-
-# A note for maintainers: Please keep this list in sync and in the same order
-# as the spec file.
-
-requests >= 2.2.1
-simplejson >= 3.5.3
-
-# Test suite dependencies
-dingus >= 0.3.4
-pytest >= 2.4.2
-pytest-cov >= 1.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/resultsdb_api.egg-info/PKG-INFO 
new/resultsdb_api-2.1.5/resultsdb_api.egg-info/PKG-INFO
--- old/resultsdb_api-2.1.3/resultsdb_api.egg-info/PKG-INFO     2020-03-05 
17:30:04.000000000 +0100
+++ new/resultsdb_api-2.1.5/resultsdb_api.egg-info/PKG-INFO     2021-11-14 
10:46:05.000000000 +0100
@@ -1,12 +1,11 @@
-Metadata-Version: 1.1
+Metadata-Version: 2.1
 Name: resultsdb-api
-Version: 2.1.3
+Version: 2.1.5
 Summary: Library for simplifying the communication with ResultsDB
 Home-page: https://pagure.io/taskotron/resultsdb_api
 Author: Josef Skladanka
 Author-email: jskla...@redhat.com
 License: UNKNOWN
-Description: UNKNOWN
 Platform: UNKNOWN
 Classifier: Development Status :: 2 - Pre-Alpha
 Classifier: Intended Audience :: Developers
@@ -19,3 +18,7 @@
 Classifier: Topic :: Internet
 Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol 
Translator
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resultsdb_api-2.1.3/resultsdb_api.egg-info/SOURCES.txt 
new/resultsdb_api-2.1.5/resultsdb_api.egg-info/SOURCES.txt
--- old/resultsdb_api-2.1.3/resultsdb_api.egg-info/SOURCES.txt  2020-03-05 
17:30:04.000000000 +0100
+++ new/resultsdb_api-2.1.5/resultsdb_api.egg-info/SOURCES.txt  2021-11-14 
10:46:05.000000000 +0100
@@ -2,14 +2,15 @@
 .arclint
 .gitignore
 LICENSE
-MANIFEST
+MANIFEST.in
 Makefile
 README.md
+install.requires
 pytest.ini
 python-resultsdb_api.spec
-requirements.txt
 resultsdb_api.py
 setup.py
+tests.requires
 tokengetter.py
 tox.ini
 resultsdb_api.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/resultsdb_api-2.1.3/resultsdb_api.egg-info/requires.txt 
new/resultsdb_api-2.1.5/resultsdb_api.egg-info/requires.txt
--- old/resultsdb_api-2.1.3/resultsdb_api.egg-info/requires.txt 2020-03-05 
17:30:04.000000000 +0100
+++ new/resultsdb_api-2.1.5/resultsdb_api.egg-info/requires.txt 2021-11-14 
10:46:05.000000000 +0100
@@ -1,2 +1,2 @@
-requests
-simplejson
+requests>=2.2.1
+simplejson>=3.5.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/resultsdb_api.py 
new/resultsdb_api-2.1.5/resultsdb_api.py
--- old/resultsdb_api-2.1.3/resultsdb_api.py    2019-05-28 15:33:03.000000000 
+0200
+++ new/resultsdb_api-2.1.5/resultsdb_api.py    2021-11-14 10:41:38.000000000 
+0100
@@ -24,18 +24,9 @@
 import simplejson
 import logging
 
-try:
-    # make strings unicode on Python 2
-    str = unicode
-except NameError:
-    # except on Python 3 they already are, name 'unicode' is not defined
-    pass
-
 logger = logging.getLogger('resultsdb_api')
 logger.addHandler(logging.NullHandler())
 
-_KEEP = object()
-
 def _fparams(expand_kwargs=True):
     """Gets the parameters of the function, from which _fparams is called
     and returns the list of params, minus `self`"""
@@ -112,20 +103,37 @@
             raise ResultsDBapiException('Maximum number of retries exceeded: 
%s' % message, None)
         return self.__resultsdb_raise_on_error(r)
 
+
+class ResultsDBAuth(object):
+    """
+    Auth class to handle different
+    request level authentication types.
+    """
+
+    @staticmethod
+    def basic_auth(username, password):
+        """
+        Return `requests.auth.HTTPBasicAuth`.
+        """
+        return requests.auth.HTTPBasicAuth(username, password)
+
+
 class ResultsDBapi(object):
 
-    def __init__(self, api_url, auth_token=None, max_retries=3, 
backoff_factor=1.0):
+    def __init__(self, api_url, auth_token=None, max_retries=3, 
backoff_factor=1.0, request_auth=None):
         # remove trailing slash(es), so we don't generate
         # urls with a double slash which breaks werkzeug
         # https://github.com/mitsuhiko/werkzeug/issues/491
         self.url = api_url.rstrip('/')
         self.auth_token = auth_token
+        self.request_auth = request_auth
 
+        allowed_methods = list(Retry.DEFAULT_ALLOWED_METHODS) + ["POST"]
         self._retry = Retry(
                 total=max_retries,
                 backoff_factor=backoff_factor,
                 status_forcelist=(500, 502, 503, 504),
-                method_whitelist=False # Enables POST retries
+                allowed_methods=allowed_methods
                 )
         self._adapter = HTTPAdapter(max_retries=self._retry)
         self.session = _ResultsDBSession()
@@ -162,15 +170,15 @@
         headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
         data = _fparams()
         data['_auth_token'] = self.auth_token
-        r = self.session.post(url, data=json.dumps(data), headers=headers)
+        r = self.session.post(url, data=json.dumps(data), headers=headers, 
auth=self.request_auth)
 
         return r.json()
 
-    def update_group(self, uuid, ref_url=_KEEP, description=_KEEP):
+    def update_group(self, uuid, ref_url=None, description=None):
         data = {}
-        if ref_url is not _KEEP:
+        if ref_url is not None:
             data['ref_url'] = ref_url
-        if description is not _KEEP:
+        if description is not None:
             data['description'] = description
         if not data:
             return self.get_group(uuid)
@@ -180,7 +188,7 @@
 
         url = "%s/groups" % self.url
         headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
-        r = self.session.post(url, data=json.dumps(data), headers=headers)
+        r = self.session.post(url, data=json.dumps(data), headers=headers, 
auth=self.request_auth)
 
         return r.json()
 
@@ -201,7 +209,7 @@
         data = _fparams(expand_kwargs=False)
         data['_auth_token'] = self.auth_token
         headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
-        r = self.session.post(url, data=json.dumps(data), headers=headers)
+        r = self.session.post(url, data=json.dumps(data), headers=headers, 
auth=self.request_auth)
 
         return r.json()
 
@@ -213,7 +221,7 @@
 
     def get_results(self, page=None, limit=None, since=None, outcome=None, 
groups=None, testcases=None, testcases_like=None, raw_params=None, **kwargs):
         url = "%s/results" % self.url
-        r = self.session.get(url, params=self.__prepare_params(_fparams()))
+        r = self.session.get(url, params=self.__prepare_params(_fparams()), 
auth=self.request_auth)
 
         return r.json()
 
@@ -222,25 +230,14 @@
         data = _fparams()
         data['_auth_token'] = self.auth_token
         headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
-        r = self.session.post(url, data=json.dumps(data), headers=headers)
+        r = self.session.post(url, data=json.dumps(data), headers=headers, 
auth=self.request_auth)
 
         return r.json()
 
-    def update_testcase(self, name, url=_KEEP):
-        data = {}
-        if ref_url is not _KEEP:
-            data['ref_url'] = ref_url
-        if not data:
+    def update_testcase(self, name, url=None):
+        if not url:
             return self.get_testcase(name)
-
-        data['name'] = name
-        data['_auth_token'] = self.auth_token
-
-        url = "%s/testcases" % self.url
-        headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
-        r = self.session.post(url, data=json.dumps(data), headers=headers)
-
-        return r.json()
+        return self.create_testcase(name, ref_url=url)
 
     def get_testcase(self, name):
         url = "%s/testcases/%s" % (self.url, name)
@@ -250,6 +247,6 @@
 
     def get_testcases(self, page=None, limit=None, name=None, name_like=None):
         url = "%s/testcases" % self.url
-        r = self.session.get(url, params=self.__prepare_params(_fparams()))
+        r = self.session.get(url, params=self.__prepare_params(_fparams()), 
auth=self.request_auth)
 
         return r.json()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/setup.py 
new/resultsdb_api-2.1.5/setup.py
--- old/resultsdb_api-2.1.3/setup.py    2019-05-28 15:33:03.000000000 +0200
+++ new/resultsdb_api-2.1.5/setup.py    2021-11-14 10:41:38.000000000 +0100
@@ -21,12 +21,12 @@
 
 setup(  name = 'resultsdb_api',
         py_modules = ['resultsdb_api'],
-        version = '2.1.3',
+        version = '2.1.5',
         description = 'Library for simplifying the communication with 
ResultsDB',
         author = 'Josef Skladanka',
         author_email = 'jskla...@redhat.com',
         url = "https://pagure.io/taskotron/resultsdb_api";,
-        install_requires = ['requests', 'simplejson'],
+        install_requires = open('install.requires').read().splitlines(),
         classifiers = [
             "Development Status :: 2 - Pre-Alpha",
             "Intended Audience :: Developers",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/testing/test_api.py 
new/resultsdb_api-2.1.5/testing/test_api.py
--- old/resultsdb_api-2.1.3/testing/test_api.py 2018-03-27 17:28:16.000000000 
+0200
+++ new/resultsdb_api-2.1.5/testing/test_api.py 2021-11-14 10:41:38.000000000 
+0100
@@ -23,7 +23,7 @@
 
 import pytest
 import requests
-from dingus import patch
+from unittest.mock import patch
 
 
 class TestAPI():
@@ -41,176 +41,104 @@
 
         self.helper = resultsdb_api.ResultsDBapi(self.rdb_url)
 
-    @patch('requests.post')
-    def test_create_testcase(self):
-        self.helper.create_testcase(self.ref_testcase_name, 
self.ref_testcase_url)
-
-        post_calls = requests.post.calls()
-
-        rdb_url = post_calls[0][1][0]
-        headers = post_calls[0][2]['headers']
-        data = json.loads(post_calls[0][2]['data'])
-
-        assert rdb_url == "%s/testcases" % self.rdb_url
-        assert headers['Content-type'] == self.ref_content_type
-        assert headers['Accept'] == self.ref_accept
-        assert data['url'] == self.ref_testcase_url
-        assert data['name'] == self.ref_testcase_name
+    @patch('requests.Session.send')
+    def test_create_testcase(self, mocksend):
+        auth = resultsdb_api.ResultsDBAuth.basic_auth("user", "pass")
+        authhelper = resultsdb_api.ResultsDBapi(self.rdb_url, 
request_auth=auth)
+
+        # test twice to test authentication, once without, once with
+        for (helper, authed) in ((self.helper, False), (authhelper, True)):
+            mocksend.reset_mock()
+            helper.create_testcase(self.ref_testcase_name, 
self.ref_testcase_url)
+            mocksend.assert_called_once()
+            request = mocksend.mock_calls[0][1][0]
+            data = json.loads(request.body)
+
+            assert request.url == "%s/testcases" % self.rdb_url
+            assert request.headers['Content-type'] == self.ref_content_type
+            assert request.headers['Accept'] == self.ref_accept
+            if authed:
+                assert request.headers['Authorization'] == "Basic dXNlcjpwYXNz"
+            else:
+                assert 'Authorization' not in request.headers
+            assert data['ref_url'] == self.ref_testcase_url
+            assert data['name'] == self.ref_testcase_name
 
-    @patch('requests.put')
-    def test_update_testcase(self):
+    @patch('requests.Session.send')
+    def test_update_testcase(self, mocksend):
         self.helper.update_testcase(self.ref_testcase_name, 
self.ref_testcase_url)
 
-        put_calls = requests.put.calls()
-
-        rdb_url = put_calls[0][1][0]
-        headers = put_calls[0][2]['headers']
-        data = json.loads(put_calls[0][2]['data'])
-
-        assert rdb_url == "%s/testcases/%s" % (self.rdb_url, 
self.ref_testcase_name)
-        assert headers['Content-type'] == self.ref_content_type
-        assert headers['Accept'] == self.ref_accept
-        assert data['url'] == self.ref_testcase_url
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
+        data = json.loads(request.body)
+
+        assert request.url == "%s/testcases" % (self.rdb_url)
+        assert request.headers['Content-type'] == self.ref_content_type
+        assert request.headers['Accept'] == self.ref_accept
+        assert data['ref_url'] == self.ref_testcase_url
+        assert data['name'] == self.ref_testcase_name
 
-    @patch('requests.get')
-    def test_get_testcase(self):
+    @patch('requests.Session.send')
+    def test_get_testcase(self, mocksend):
         self.helper.get_testcase(self.ref_testcase_name)
 
-        get_calls = requests.get.calls()
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
 
-        rdb_url = get_calls[0][1][0]
+        assert request.url == "%s/testcases/%s" % (self.rdb_url, 
self.ref_testcase_name)
 
-        assert rdb_url == "%s/testcases/%s" % (self.rdb_url, 
self.ref_testcase_name)
-
-    @patch('requests.get')
-    def test_get_testcases(self):
+    @patch('requests.Session.send')
+    def test_get_testcases(self, mocksend):
         self.helper.get_testcases()
 
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
-
-        assert rdb_url == "%s/testcases" % self.rdb_url
-
-    @patch('requests.post')
-    def test_create_job(self):
-        self.helper.create_job(self.ref_url)
-
-        post_calls = requests.post.calls()
-
-        rdb_url = post_calls[0][1][0]
-        headers = post_calls[0][2]['headers']
-        data = json.loads(post_calls[0][2]['data'])
-
-        assert rdb_url == "%s/jobs" % self.rdb_url
-        assert headers['Content-type'] == self.ref_content_type
-        assert headers['Accept'] == self.ref_accept
-        assert data['ref_url'] == self.ref_url
-
-    @patch('requests.put')
-    def test_update_job(self):
-        self.helper.update_job(id=self.ref_job_id, status=self.ref_status)
-
-        put_calls = requests.put.calls()
-
-        rdb_url = put_calls[0][1][0]
-        headers = put_calls[0][2]['headers']
-        data = json.loads(put_calls[0][2]['data'])
-
-        assert rdb_url == "%s/jobs/%s" % (self.rdb_url, self.ref_job_id)
-        assert headers['Content-type'] == self.ref_content_type
-        assert headers['Accept'] == self.ref_accept
-        assert data['status'] == self.ref_status
-
-    def test_update_job_invalid(self):
-        with pytest.raises(TypeError):
-            self.helper.update_job()
-
-    @patch('requests.get')
-    def test_get_job(self):
-        self.helper.get_job(self.ref_job_id)
-
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
 
-        assert rdb_url == "%s/jobs/%s" % (self.rdb_url, self.ref_job_id)
+        assert request.url == "%s/testcases" % self.rdb_url
 
-    def test_get_job_invalid(self):
-        with pytest.raises(TypeError):
-            self.helper.get_job()
-
-    @patch('requests.get')
-    def test_get_jobs(self):
-        self.helper.get_jobs()
-
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
-
-        assert rdb_url == "%s/jobs" % self.rdb_url
-
-    @patch('requests.get')
-    def test_get_jobs_params(self):
-        self.helper.get_jobs(status=self.ref_status)
-
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
-        params = get_calls[0][2]['params']
-
-        assert rdb_url == "%s/jobs" % self.rdb_url
-        assert params['status'] == self.ref_status
-
-    @patch('requests.post')
-    def test_create_result(self):
-        self.helper.create_result(self.ref_job_id, self.ref_testcase_name, 
self.ref_outcome)
-
-        post_calls = requests.post.calls()
-
-        rdb_url = post_calls[0][1][0]
-        headers = post_calls[0][2]['headers']
-        data = json.loads(post_calls[0][2]['data'])
-
-        assert rdb_url == "%s/results" % self.rdb_url
-        assert headers['Content-type'] == self.ref_content_type
-        assert headers['Accept'] == self.ref_accept
-        assert data['job_id'] == self.ref_job_id
-        assert data['testcase_name'] == self.ref_testcase_name
+    @patch('requests.Session.send')
+    def test_create_result(self, mocksend):
+        self.helper.create_result(self.ref_outcome, self.ref_testcase_name)
+
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
+        data = json.loads(request.body)
+
+        assert request.url == "%s/results" % self.rdb_url
+        assert request.headers['Content-type'] == self.ref_content_type
+        assert request.headers['Accept'] == self.ref_accept
+        assert data['testcase'] == self.ref_testcase_name
         assert data['outcome'] == self.ref_outcome
 
-    @patch('requests.get')
-    def test_get_result(self):
+    @patch('requests.Session.send')
+    def test_get_result(self, mocksend):
         self.helper.get_result(self.ref_result_id)
 
-        get_calls = requests.get.calls()
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
 
-        rdb_url = get_calls[0][1][0]
-
-        assert rdb_url == "%s/results/%s" % (self.rdb_url, self.ref_job_id)
+        assert request.url == "%s/results/%s" % (self.rdb_url, self.ref_job_id)
 
     def test_get_result_invalid(self):
         with pytest.raises(TypeError):
             self.helper.get_result()
 
-    @patch('requests.get')
-    def test_get_results(self):
+    @patch('requests.Session.send')
+    def test_get_results(self, mocksend):
         self.helper.get_results()
 
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
+        mocksend.assert_called_once()
+        request = mocksend.mock_calls[0][1][0]
 
-        assert rdb_url == "%s/results" % self.rdb_url
+        assert request.url == "%s/results" % self.rdb_url
 
-    @patch('requests.get')
-    def test_get_results_params(self):
+    @patch('requests.Session.request')
+    def test_get_results_params(self, mockreq):
         self.helper.get_results(testcase_name=self.ref_testcase_name, 
job_id=self.ref_job_id)
 
-        get_calls = requests.get.calls()
-
-        rdb_url = get_calls[0][1][0]
-        params = get_calls[0][2]['params']
+        mockreq.assert_called_once()
+        rdb_url = mockreq.mock_calls[0][1][1]
+        params = mockreq.mock_calls[0][2]['params']
 
         assert rdb_url == "%s/results" % self.rdb_url
         assert params['testcase_name'] == self.ref_testcase_name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/tests.requires 
new/resultsdb_api-2.1.5/tests.requires
--- old/resultsdb_api-2.1.3/tests.requires      1970-01-01 01:00:00.000000000 
+0100
+++ new/resultsdb_api-2.1.5/tests.requires      2021-11-14 10:41:38.000000000 
+0100
@@ -0,0 +1,2 @@
+pytest >= 2.4.2
+pytest-cov >= 1.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/resultsdb_api-2.1.3/tox.ini 
new/resultsdb_api-2.1.5/tox.ini
--- old/resultsdb_api-2.1.3/tox.ini     2018-03-28 15:14:06.000000000 +0200
+++ new/resultsdb_api-2.1.5/tox.ini     2021-11-14 10:41:38.000000000 +0100
@@ -1,5 +1,14 @@
-# This is a common file where different test suites/linters can be configured.
-# Phabricator uses this file when running `arc unit` or `arc lint`.
+[tox]
+envlist = py37,py38,py39,py310
+skip_missing_interpreters = true
+
+[testenv]
+deps =
+    -r{toxinidir}/install.requires
+    -r{toxinidir}/tests.requires
+
+commands=
+    pytest
 
 [flake8]
 max-line-length=99

Reply via email to