Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-edgegrid-python for 
openSUSE:Factory checked in at 2021-12-12 21:27:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-edgegrid-python (Old)
 and      /work/SRC/openSUSE:Factory/.python-edgegrid-python.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-edgegrid-python"

Sun Dec 12 21:27:39 2021 rev:2 rq:939989 version:1.2.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-edgegrid-python/python-edgegrid-python.changes
    2020-02-21 16:43:44.554199033 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-edgegrid-python.new.2520/python-edgegrid-python.changes
  2021-12-12 21:28:10.992361932 +0100
@@ -1,0 +2,10 @@
+Sat Dec 11 22:17:28 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 1.2.1:
+  * recognize the ~ tilde character as home directory alias
+  * issues: add missing test resource files to PyPI package
+  * require PyOpenSSL >= v19.0.0 to avoid old OS packages
+  * split MANIFEST.in in several lines to properly include
+    in Python package all necessary resource files
+
+-------------------------------------------------------------------

Old:
----
  edgegrid-python-1.1.1.tar.gz

New:
----
  edgegrid-python-1.2.1.tar.gz

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

Other differences:
------------------
++++++ python-edgegrid-python.spec ++++++
--- /var/tmp/diff_new_pack.8yhUKC/_old  2021-12-12 21:28:11.484362223 +0100
+++ /var/tmp/diff_new_pack.8yhUKC/_new  2021-12-12 21:28:11.484362223 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-edgegrid-python
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 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-edgegrid-python
-Version:        1.1.1
+Version:        1.2.1
 Release:        0
 Summary:        Client authentication protocol for python-requests
 License:        Apache-2.0
@@ -30,7 +30,7 @@
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-ndg-httpsclient
-Requires:       python-pyOpenSSL >= 0.13
+Requires:       python-pyOpenSSL >= 19.0.0
 Requires:       python-pyasn1
 Requires:       python-requests >= 2.3.0
 Requires:       python-urllib3

++++++ edgegrid-python-1.1.1.tar.gz -> edgegrid-python-1.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/MANIFEST.in 
new/edgegrid-python-1.2.1/MANIFEST.in
--- old/edgegrid-python-1.1.1/MANIFEST.in       2015-02-28 18:25:38.000000000 
+0100
+++ new/edgegrid-python-1.2.1/MANIFEST.in       2021-10-11 09:27:16.000000000 
+0200
@@ -1 +1,6 @@
-include README.rst LICENSE requirements.txt akamai/edgegrid/test/testdata.json
+include README.rst
+include LICENSE
+include requirements.txt
+include akamai/edgegrid/test/testdata.json
+include akamai/edgegrid/test/sample_edgerc
+include akamai/edgegrid/test/edgerc_that_doesnt_parse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/PKG-INFO 
new/edgegrid-python-1.2.1/PKG-INFO
--- old/edgegrid-python-1.1.1/PKG-INFO  2018-07-16 21:37:19.000000000 +0200
+++ new/edgegrid-python-1.2.1/PKG-INFO  2021-10-11 09:39:22.888507000 +0200
@@ -1,10 +1,19 @@
-Metadata-Version: 1.0
+Metadata-Version: 2.1
 Name: edgegrid-python
-Version: 1.1.1
+Version: 1.2.1
 Summary: {OPEN} client authentication protocol for python-requests
-Home-page: https://github.com/akamai-open/AkamaiOPEN-edgegrid-python
+Home-page: https://github.com/akamai/AkamaiOPEN-edgegrid-python
 Author: Jonathan Landis
 Author-email: jlan...@akamai.com
-License: LICENSE.txt
-Description: UNKNOWN
+Maintainer: Akamai Developer Experience team
+Maintainer-email: dl-devexp-...@akamai.com
+License: Apache 2.0
 Platform: UNKNOWN
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Requires-Python: >=2.7.10
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/README.rst 
new/edgegrid-python-1.2.1/README.rst
--- old/edgegrid-python-1.1.1/README.rst        2018-07-16 21:33:09.000000000 
+0200
+++ new/edgegrid-python-1.2.1/README.rst        2021-10-11 09:27:16.000000000 
+0200
@@ -9,7 +9,7 @@
 
     >>> import requests
     >>> from akamai.edgegrid import EdgeGridAuth
-    >>> from urlparse import urljoin
+    >>> from urllib.parse import urljoin
     >>> baseurl = 'https://akaa-WWWWWWWWWWWW.luna.akamaiapis.net/'
     >>> s = requests.Session()
     >>> s.auth = EdgeGridAuth(
@@ -31,7 +31,7 @@
 
     >>> import requests
     >>> from akamai.edgegrid import EdgeGridAuth, EdgeRc
-    >>> from urlparse import urljoin
+    >>> from urllib.parse import urljoin
 
     >>> edgerc = EdgeRc('~/.edgerc')
     >>> section = 'default'
@@ -47,6 +47,12 @@
     Oakbrook, IL, United States
     ...
 
+If you intend to run the above examples with Python 2.7, remember that urljoin 
is contained in a different package:
+
+.. code-block:: pycon
+
+    >>> from urlparse import urljoin
+
 .. _`requests`: http://docs.python-requests.org
 .. _`Akamai {OPEN} Edgegrid authentication`: 
https://developer.akamai.com/introduction/Client_Auth.html
 .. _`Akamai {OPEN} Developer Community`: https://developer.akamai.com
@@ -54,35 +60,65 @@
 Installation
 ------------
 
-Pre-requisite
--------------
-If you are installing on a Linux based distribution, you will need to instal 
the developer libraries for python, ssl and a ffi. On Ubuntu based systems, you 
will need to do the following:
+**Prerequisite**
+
+For Linux-based distribution, install the developer libraries for Python, SSL 
and FFI. For example, on Debian-based systems, run:
+
+.. code-block:: bash
+
+    $ sudo apt-get install ibssl-dev libffi-dev python-dev
+
+**To install from pip**
+
+We recommend using any recent Python 3 distribution. Starting from version 3.4 
of the cryptography package, Python 2.7 is no longer supported.
+
+If you still want to use Python 2.7, first run:
 
 .. code-block:: bash
-    $ sudo apt-get install ibssl-dev libffi-dev python-dev 
 
+    $ pip install --upgrade 'cryptography<3.4'
 
-To install from pip:
+To continue with the installation:
 
 .. code-block:: bash
 
     $ pip install edgegrid-python
 
-To install from sources:
+**To install from sources**
 
 .. code-block:: bash
 
     $ python setup.py install
 
-To run tests:
+**To run tests**
+
+Both Python 2 and Python 3 are supported. This example uses Python 2.7. Run:
 
 .. code-block:: bash
 
     $ virtualenv -p python2.7 venv
     $ . venv/bin/activate
+    $ pip install 'cryptography<3.4' # just necessary for Python 2.7
     $ pip install -r requirements.txt
     $ python -m unittest discover
 
+For Python 3.3 or newer, replace the `virtualenv` module with `venv`. Run:
+
+.. code-block:: bash
+
+    $ python3 -m venv venv
+    $ . venv/bin/activate
+    $ pip install -r requirements.txt
+    $ python -m unittest discover
+
+Creating your own .edgerc
+----------
+
+#. Copy the `akamai/edgegrid/test/sample_edgerc` file to your home directory 
and rename as `.edgerc`.
+#. Edit the copied file and provide your own credentials. For more information 
on creating an `.edgerc` file, see `Get started  with APIs`_.
+
+.. _`Get started  with APIs`: 
https://developer.akamai.com/api/getting-started#edgercfile
+
 Contribute
 ----------
 
@@ -100,7 +136,7 @@
 License
 -------
 
-   Copyright 2015 Akamai Technologies, Inc. All rights reserved. 
+   Copyright 2021 Akamai Technologies, Inc. All rights reserved.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/akamai/edgegrid/__init__.py 
new/edgegrid-python-1.2.1/akamai/edgegrid/__init__.py
--- old/edgegrid-python-1.1.1/akamai/edgegrid/__init__.py       2017-09-11 
21:27:36.000000000 +0200
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/__init__.py       2021-10-11 
09:27:16.000000000 +0200
@@ -2,8 +2,8 @@
 akamai.edgegrid
 ~~~~~~~~~~~~~~~
 
-This library provides an authentication handler for Requests that implements 
the 
-Akamai {OPEN} EdgeGrid client authentication protocol as 
+This library provides an authentication handler for Requests that implements 
the
+Akamai {OPEN} EdgeGrid client authentication protocol as
 specified by https://developer.akamai.com/introduction/Client_Auth.html.
 For more information visit https://developer.akamai.com.
 
@@ -32,16 +32,17 @@
 
 from .edgegrid import EdgeGridAuth
 from .edgerc import EdgeRc
-__all__=['EdgeGridAuth', 'EdgeRc']
+__all__ = ['EdgeGridAuth', 'EdgeRc']
 
 __title__ = 'edgegrid-python'
-__version__ = '1.1'
+__version__ = '1.2.1'
 __author__ = 'Jonathan Landis <jlan...@akamai.com>'
+__maintainer__ = 'Akamai Developer Experience team <dl-devexp-...@akamai.com>'
 __license__ = 'Apache 2.0'
-__copyright__ = 'Copyright 2014 Akamai Technologies'
+__copyright__ = 'Copyright 2021 Akamai Technologies'
 
-# Copyright 2014 Akamai Technologies, Inc. All Rights Reserved
-# 
+# Copyright 2021 Akamai Technologies, Inc. All Rights Reserved
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/akamai/edgegrid/edgegrid.py 
new/edgegrid-python-1.2.1/akamai/edgegrid/edgegrid.py
--- old/edgegrid-python-1.1.1/akamai/edgegrid/edgegrid.py       2017-09-11 
21:16:24.000000000 +0200
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/edgegrid.py       2021-06-24 
16:17:32.000000000 +0200
@@ -3,11 +3,12 @@
 # EdgeGrid requests Auth handler
 #
 # Original author: Jonathan Landis <jlan...@akamai.com>
+# Package maintainer: Akamai Developer Experience team 
<dl-devexp-...@akamai.com>
 #
 # For more information visit https://developer.akamai.com
 
-# Copyright 2014 Akamai Technologies, Inc. All Rights Reserved
-# 
+# Copyright 2021 Akamai Technologies, Inc. All Rights Reserved
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -20,7 +21,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import requests
 import logging
 import uuid
 import hashlib
@@ -28,38 +28,47 @@
 import base64
 import re
 import sys
+import os
 from requests.auth import AuthBase
 from time import gmtime, strftime
 
 if sys.version_info[0] >= 3:
     # python3
-    from urllib.parse import urlparse, parse_qsl, urlunparse
+    from urllib.parse import urlparse
 else:
     # python2.7
-    from urlparse import urlparse, parse_qsl, urlunparse
+    from urlparse import urlparse
     import urllib3.contrib.pyopenssl
     urllib3.contrib.pyopenssl.inject_into_urllib3()
 
 logger = logging.getLogger(__name__)
 
-__all__=['EdgeGridAuth']
+__all__ = ['EdgeGridAuth']
+
 
 def eg_timestamp():
     return strftime('%Y%m%dT%H:%M:%S+0000', gmtime())
 
+
 def new_nonce():
     return uuid.uuid4()
 
+
 def base64_hmac_sha256(data, key):
     return base64.b64encode(
-        hmac.new(key.encode('utf8'), data.encode('utf8'), 
hashlib.sha256).digest()
+        hmac.new(
+            key.encode('utf8'),
+            data.encode('utf8'),
+            hashlib.sha256).digest()
     ).decode('utf8')
 
+
 def base64_sha256(data):
     if isinstance(data, str):
         data = data.encode('utf8')
     return base64.b64encode(hashlib.sha256(data).digest()).decode('utf8')
 
+
 class EdgeGridAuth(AuthBase):
     """A Requests authentication handler that provides Akamai {OPEN} EdgeGrid 
support.
 
@@ -75,15 +84,15 @@
 
     """
 
-    def __init__(self, client_token, client_secret, access_token, 
+    def __init__(self, client_token, client_secret, access_token,
                  headers_to_sign=None, max_body=131072):
-        """Initialize authentication using the given parameters from the Luna 
Manage APIs
+        """Initialize authentication using the given parameters from the 
Akamai OPEN APIs
            Interface:
 
         :param client_token: Client token provided by "Credentials" ui
         :param client_secret: Client secret provided by "Credentials" ui
         :param access_token: Access token provided by "Authorizations" ui
-        :param headers_to_sign: An ordered list header names that will be 
included in 
+        :param headers_to_sign: An ordered list header names that will be 
included in
             the signature.  This will be provided by specific APIs. (default 
[])
         :param max_body: Maximum content body size for POST requests. This 
will be provided by
             specific APIs. (default 131072)
@@ -93,7 +102,7 @@
         self.client_secret = client_secret
         self.access_token = access_token
         if headers_to_sign:
-            self.headers_to_sign = [ h.lower() for h in headers_to_sign ]
+            self.headers_to_sign = [h.lower() for h in headers_to_sign]
         else:
             self.headers_to_sign = []
         self.max_body = max_body
@@ -102,15 +111,15 @@
 
     @staticmethod
     def from_edgerc(rcinput, section='default'):
-        """Returns an EdgeGridAuth object from the configuration from the 
given section of the 
+        """Returns an EdgeGridAuth object from the configuration from the 
given section of the
            given edgerc file.
 
-        :param filename: path to the edgerc file
-        :param section: the section to use (this is the [bracketed] part of 
the edgerc, 
+        :param rcinput: EdgeRc instance or path to the edgerc file
+        :param section: the section to use (this is the [bracketed] part of 
the edgerc,
             default is 'default')
 
         """
-        from .edgerc import EdgeRc 
+        from .edgerc import EdgeRc
         if isinstance(rcinput, EdgeRc):
             rc = rcinput
         else:
@@ -148,31 +157,61 @@
             logger.debug("signing content: %s", prepared_body)
             if len(prepared_body) > self.max_body:
                 logger.debug(
-                    "data length %d is larger than maximum %d", 
+                    "data length %d is larger than maximum %d",
                     len(prepared_body), self.max_body
                 )
                 prepared_body = prepared_body[0:self.max_body]
-                logger.debug("data truncated to %d for computing the hash", 
len(prepared_body))
+                logger.debug(
+                    "data truncated to %d for computing the hash",
+                    len(prepared_body))
 
             content_hash = base64_sha256(prepared_body)
 
         logger.debug("content hash is '%s'", content_hash)
         return content_hash
 
+    def get_header_versions(self, header=None):
+        if header is None:
+            header = {}
+
+        version_header = ''
+        akamai_cli = os.getenv('AKAMAI_CLI')
+        akamai_cli_version = os.getenv('AKAMAI_CLI_VERSION')
+        if akamai_cli and akamai_cli_version:
+            version_header += " AkamaiCLI/" + akamai_cli_version
+
+        akamai_cli_command = os.getenv('AKAMAI_CLI_COMMAND')
+        akamai_cli_command_version = os.getenv('AKAMAI_CLI_COMMAND_VERSION')
+        if akamai_cli_command and akamai_cli_command_version:
+            version_header += " AkamaiCLI-" + akamai_cli_command + \
+                "/" + akamai_cli_command_version
+
+        if version_header != '':
+            if 'User-Agent' not in header:
+                header['User-Agent'] = version_header.strip()
+            else:
+                header['User-Agent'] += version_header
+
+        return header
+
     def make_data_to_sign(self, r, auth_header):
         parsed_url = urlparse(r.url)
 
-        if (r.headers.get('Host', False)):
+        if r.headers.get('Host', False):
             netloc = r.headers['Host']
         else:
             netloc = parsed_url.netloc
 
+        self.get_header_versions(r.headers)
+
         data_to_sign = '\t'.join([
             r.method,
             parsed_url.scheme,
             netloc,
-            # Note: relative URL constraints are handled by requests when it 
sets up 'r'
-            parsed_url.path + ('?' + parsed_url.query if parsed_url.query else 
""),
+            # Note: relative URL constraints are handled by requests when it
+            # sets up 'r'
+            parsed_url.path + \
+            ('?' + parsed_url.query if parsed_url.query else ""),
             self.canonicalize_headers(r),
             self.make_content_hash(r),
             auth_header
@@ -182,7 +221,7 @@
 
     def sign_request(self, r, timestamp, auth_header):
         return base64_hmac_sha256(
-            self.make_data_to_sign(r, auth_header), 
+            self.make_data_to_sign(r, auth_header),
             self.make_signing_key(timestamp)
         )
 
@@ -193,7 +232,8 @@
             ('timestamp', timestamp),
             ('nonce', nonce),
         ]
-        auth_header = "EG1-HMAC-SHA256 " + ';'.join([ "%s=%s" % kvp for kvp in 
kvps ]) + ';'
+        auth_header = "EG1-HMAC-SHA256 " + \
+            ';'.join(["%s=%s" % kvp for kvp in kvps]) + ';'
         logger.debug('unsigned authorization header: %s', auth_header)
 
         signed_auth_header = auth_header + \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/akamai/edgegrid/edgerc.py 
new/edgegrid-python-1.2.1/akamai/edgegrid/edgerc.py
--- old/edgegrid-python-1.1.1/akamai/edgegrid/edgerc.py 2018-07-16 
21:33:09.000000000 +0200
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/edgerc.py 2021-06-24 
16:17:32.000000000 +0200
@@ -2,8 +2,8 @@
 #
 # support for .edgerc file format
 #
-# Copyright 2014 Akamai Technologies, Inc. All Rights Reserved
-# 
+# Copyright 2021 Akamai Technologies, Inc. All Rights Reserved
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -18,6 +18,7 @@
 
 import logging
 import sys
+from os.path import expanduser
 
 if sys.version_info[0] >= 3:
     # python3
@@ -29,12 +30,19 @@
 
 logger = logging.getLogger(__name__)
 
+
 class EdgeRc(ConfigParser):
     def __init__(self, filename):
-        ConfigParser.__init__(self, {'client_token': '', 'client_secret':'', 
'host':'', 'access_token':'','max_body': '131072', 'headers_to_sign': 'None'})
+        ConfigParser.__init__(self,
+                              {'client_token': '',
+                               'client_secret': '',
+                               'host': '',
+                               'access_token': '',
+                               'max_body': '131072',
+                               'headers_to_sign': 'None'})
         logger.debug("loading edgerc from %s", filename)
 
-        self.read(filename)
+        self.read(expanduser(filename))
 
         logger.debug("successfully loaded edgerc")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/akamai/edgegrid/test/edgerc_that_doesnt_parse 
new/edgegrid-python-1.2.1/akamai/edgegrid/test/edgerc_that_doesnt_parse
--- old/edgegrid-python-1.1.1/akamai/edgegrid/test/edgerc_that_doesnt_parse     
1970-01-01 01:00:00.000000000 +0100
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/test/edgerc_that_doesnt_parse     
2021-04-29 13:45:45.000000000 +0200
@@ -0,0 +1,4 @@
+[default]
+client_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+access_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+max_body = 131072
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/akamai/edgegrid/test/sample_edgerc 
new/edgegrid-python-1.2.1/akamai/edgegrid/test/sample_edgerc
--- old/edgegrid-python-1.1.1/akamai/edgegrid/test/sample_edgerc        
1970-01-01 01:00:00.000000000 +0100
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/test/sample_edgerc        
2021-04-29 13:45:45.000000000 +0200
@@ -0,0 +1,24 @@
+[default]
+host = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/
+client_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+access_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+max_body = 131072
+[broken]
+host = "https://xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/";
+client_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+access_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+[headers]
+host = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/
+client_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+access_token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+max_body = 131072
+headers_to_sign=X-MyThing1,X-MyThing2
+[dashes]
+host = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx.luna.akamaiapis.net/
+client-token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+client-secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
+access-token = xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx
+max-body = 131072
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/akamai/edgegrid/test/test_edgegrid.py 
new/edgegrid-python-1.2.1/akamai/edgegrid/test/test_edgegrid.py
--- old/edgegrid-python-1.1.1/akamai/edgegrid/test/test_edgegrid.py     
2017-09-11 21:16:24.000000000 +0200
+++ new/edgegrid-python-1.2.1/akamai/edgegrid/test/test_edgegrid.py     
2021-06-24 16:17:32.000000000 +0200
@@ -2,11 +2,12 @@
 # unit tests for edgegrid. runs tests from testdata.json
 #
 # Original author: Jonathan Landis <jlan...@akamai.com>
+# Package maintainer: Akamai Developer Experience team 
<dl-devexp-...@akamai.com>
 #
 # For more information visit https://developer.akamai.com
 
-# Copyright 2014 Akamai Technologies, Inc. All Rights Reserved
-# 
+# Copyright 2021 Akamai Technologies, Inc. All Rights Reserved
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -19,13 +20,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import akamai.edgegrid.edgegrid as eg
+from akamai.edgegrid import EdgeGridAuth, EdgeRc
 import json
 import logging
 import os
 import re
 import requests
 import sys
-import traceback
 import unittest
 
 PY_VER = sys.version_info[0]
@@ -36,19 +38,20 @@
     # python2.7
     from urlparse import urljoin
 
-from akamai.edgegrid import EdgeGridAuth, EdgeRc
-import akamai.edgegrid.edgegrid as eg
 
-mydir=os.path.abspath(os.path.dirname(__file__))
+mydir = os.path.abspath(os.path.dirname(__file__))
 logger = logging.getLogger(__name__)
 
+expected_client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx='
+
+
 class EdgeGridTest(unittest.TestCase):
     def __init__(self, testdata=None, testcase=None):
         super(EdgeGridTest, self).__init__()
         self.testdata = testdata
         self.testcase = testcase
         self.maxDiff = None
-        
+
     def runTest(self):
         auth = EdgeGridAuth(
             client_token=self.testdata['client_token'],
@@ -58,23 +61,26 @@
             max_body=self.testdata['max_body']
         )
 
-        headers = { }
+        headers = {}
         if 'headers' in self.testcase['request']:
             for h in self.testcase['request']['headers']:
-                for k,v in h.items():
+                for k, v in h.items():
                     headers[k] = v
 
         request = requests.Request(
             method=self.testcase['request']['method'],
-            
url=urljoin(self.testdata['base_url'],self.testcase['request']['path']),   
+            url=urljoin(
+                self.testdata['base_url'],
+                self.testcase['request']['path']),
             headers=headers,
-            data=self.testcase['request'].get('data') if 
self.testcase['request'].get('data') \
-                                                      else None
+            data=self.testcase['request'].get('data') if 
self.testcase['request'].get('data')
+            else None
         )
 
         try:
             auth_header = auth.make_auth_header(
-                request.prepare(), self.testdata['timestamp'], 
self.testdata['nonce']
+                request.prepare(
+                ), self.testdata['timestamp'], self.testdata['nonce']
             )
         except Exception as e:
             logger.debug('Got exception from make_auth_header', exc_info=True)
@@ -83,6 +89,7 @@
 
         self.assertEqual(auth_header, self.testcase['expectedAuthorization'])
 
+
 class EGSimpleTest(unittest.TestCase):
     def test_nonce(self):
         count = 100
@@ -98,7 +105,7 @@
             \d{4} # year
             [0-1][0-9] # month
             [0-3][0-9] # day
-            T     
+            T
             [0-2][0-9] # hour
             :
             [0-5][0-9] # minute
@@ -121,41 +128,109 @@
 
     def test_edgerc_default(self):
         auth = EdgeGridAuth.from_edgerc(os.path.join(mydir, 'sample_edgerc'))
-        self.assertEqual(auth.client_token, 
'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
-        self.assertEqual(auth.client_secret, 
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=')
-        self.assertEqual(auth.access_token, 
'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
+        self.assertEqual(
+            auth.client_token,
+            'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
+        self.assertEqual(
+            auth.client_secret,
+            expected_client_secret)
+        self.assertEqual(
+            auth.access_token,
+            'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
         self.assertEqual(auth.max_body, 131072)
-        self.assertEqual(auth.headers_to_sign, [])
+        self.assertEqual(auth.headers_to_sign, ['none'])
 
     def test_edgerc_broken(self):
-        auth = EdgeGridAuth.from_edgerc(os.path.join(mydir, 'sample_edgerc'), 
'broken')
-        self.assertEqual(auth.client_secret, 
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=')
-        self.assertEqual(auth.access_token, 
'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
-        self.assertEqual(auth.max_body, 128*1024)
-        self.assertEqual(auth.headers_to_sign, [])
+        auth = EdgeGridAuth.from_edgerc(
+            os.path.join(mydir, 'sample_edgerc'), 'broken')
+        self.assertEqual(
+            auth.client_secret,
+            expected_client_secret)
+        self.assertEqual(
+            auth.access_token,
+            'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
+        self.assertEqual(auth.max_body, 128 * 1024)
+        self.assertEqual(auth.headers_to_sign, ['none'])
 
     def test_edgerc_unparseable(self):
+        # noinspection PyBroadException
         try:
-            auth = EdgeGridAuth.from_edgerc(os.path.join(mydir, 
'edgerc_that_doesnt_parse'))
+            EdgeGridAuth.from_edgerc(
+                os.path.join(mydir, 'edgerc_that_doesnt_parse'))
             self.fail("should have thrown an exception")
-        except:
+        except BaseException:
             pass
 
     def test_edgerc_headers(self):
-        auth = EdgeGridAuth.from_edgerc(os.path.join(mydir, 'sample_edgerc'), 
'headers')
+        auth = EdgeGridAuth.from_edgerc(
+            os.path.join(mydir, 'sample_edgerc'), 'headers')
         self.assertEqual(auth.headers_to_sign, ['x-mything1', 'x-mything2'])
 
+    def test_get_header_versions(self):
+        auth = EdgeGridAuth.from_edgerc(
+            os.path.join(mydir, 'sample_edgerc'), 'headers')
+        header = auth.get_header_versions()
+        self.assertFalse('user-agent' in header)
+
+        header = auth.get_header_versions({'User-Agent': 'testvalue'})
+        self.assertTrue('User-Agent' in header)
+
+        # setting environment variables with hardcoded `1.0.0` value, just for 
this test.
+        # These variables are cleared at the end of this test.
+        os.environ["AKAMAI_CLI"] = '1.0.0'
+        os.environ["AKAMAI_CLI_VERSION"] = '1.0.0'
+
+        header = auth.get_header_versions()
+        self.assertTrue('User-Agent' in header)
+        self.assertEqual(header['User-Agent'], 'AkamaiCLI/1.0.0')
+
+        header = auth.get_header_versions({'User-Agent': 'test-agent'})
+        self.assertTrue('User-Agent' in header)
+        self.assertEqual(header['User-Agent'], 'test-agent AkamaiCLI/1.0.0')
+
+        os.environ["AKAMAI_CLI_COMMAND"] = '1.0.0'
+        os.environ["AKAMAI_CLI_COMMAND_VERSION"] = '1.0.0'
+
+        header = auth.get_header_versions()
+        self.assertTrue('User-Agent' in header)
+        self.assertEqual(header['User-Agent'],
+                         'AkamaiCLI/1.0.0 AkamaiCLI-1.0.0/1.0.0')
+
+        header = auth.get_header_versions({'User-Agent': 'testvalue'})
+        self.assertTrue('User-Agent' in header)
+        self.assertEqual(
+            header['User-Agent'],
+            'testvalue AkamaiCLI/1.0.0 AkamaiCLI-1.0.0/1.0.0')
+
+        del os.environ['AKAMAI_CLI']
+        del os.environ['AKAMAI_CLI_VERSION']
+        del os.environ['AKAMAI_CLI_COMMAND']
+        del os.environ['AKAMAI_CLI_COMMAND_VERSION']
+
+        self.assertFalse('AKAMAI_CLI' in os.environ)
+        self.assertFalse('AKAMAI_CLI_VERSION' in os.environ)
+        self.assertFalse('AKAMAI_CLI_COMMAND' in os.environ)
+        self.assertFalse('AKAMAI_CLI_COMMAND_VERSION' in os.environ)
+
     def test_edgerc_from_object(self):
-        auth = EdgeGridAuth.from_edgerc(EdgeRc(os.path.join(mydir, 
'sample_edgerc')))
-        self.assertEqual(auth.client_token, 
'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
-        self.assertEqual(auth.client_secret, 
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=')
-        self.assertEqual(auth.access_token, 
'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
+        auth = EdgeGridAuth.from_edgerc(
+            EdgeRc(os.path.join(mydir, 'sample_edgerc')))
+        self.assertEqual(
+            auth.client_token,
+            'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
+        self.assertEqual(
+            auth.client_secret,
+            expected_client_secret)
+        self.assertEqual(
+            auth.access_token,
+            'xxxx-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx')
         self.assertEqual(auth.max_body, 131072)
-        self.assertEqual(auth.headers_to_sign, [])
+        self.assertEqual(auth.headers_to_sign, ['none'])
 
     def test_edgerc_dashes(self):
-        auth = EdgeGridAuth.from_edgerc(os.path.join(mydir, 'sample_edgerc'), 
'dashes')
-        self.assertEqual(auth.max_body, 128*1024)
+        auth = EdgeGridAuth.from_edgerc(
+            os.path.join(mydir, 'sample_edgerc'), 'dashes')
+        self.assertEqual(auth.max_body, 128 * 1024)
 
 
 class JsonTest(unittest.TestCase):
@@ -177,18 +252,19 @@
         }
 
         data = {
-            'key':'value',
+            'key': 'value',
         }
 
         request = requests.Request(
             method='POST',
-            url=urljoin(self.testdata['base_url'],'/testapi/v1/t3'),
+            url=urljoin(self.testdata['base_url'], '/testapi/v1/t3'),
             params=params,
             json=data,
         )
 
         auth_header = auth.make_auth_header(
-            request.prepare(), self.testdata['timestamp'], 
self.testdata['nonce']
+            request.prepare(
+            ), self.testdata['timestamp'], self.testdata['nonce']
         )
 
         self.assertEqual(auth_header, self.testdata['jsontest_hash'])
@@ -214,13 +290,15 @@
     suite.addTest(EGSimpleTest('test_edgerc_broken'))
     suite.addTest(EGSimpleTest('test_edgerc_unparseable'))
     suite.addTest(EGSimpleTest('test_edgerc_headers'))
+    suite.addTest(EGSimpleTest('test_get_header_versions'))
     suite.addTest(EGSimpleTest('test_edgerc_from_object'))
 
     return suite
 
+
 def load_tests(loader=None, tests=None, pattern=None):
     return suite()
 
+
 if __name__ == '__main__':
     runner = unittest.TextTestRunner().run(suite())
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/edgegrid_python.egg-info/PKG-INFO 
new/edgegrid-python-1.2.1/edgegrid_python.egg-info/PKG-INFO
--- old/edgegrid-python-1.1.1/edgegrid_python.egg-info/PKG-INFO 2018-07-16 
21:37:19.000000000 +0200
+++ new/edgegrid-python-1.2.1/edgegrid_python.egg-info/PKG-INFO 2021-10-11 
09:39:22.000000000 +0200
@@ -1,10 +1,19 @@
-Metadata-Version: 1.0
+Metadata-Version: 2.1
 Name: edgegrid-python
-Version: 1.1.1
+Version: 1.2.1
 Summary: {OPEN} client authentication protocol for python-requests
-Home-page: https://github.com/akamai-open/AkamaiOPEN-edgegrid-python
+Home-page: https://github.com/akamai/AkamaiOPEN-edgegrid-python
 Author: Jonathan Landis
 Author-email: jlan...@akamai.com
-License: LICENSE.txt
-Description: UNKNOWN
+Maintainer: Akamai Developer Experience team
+Maintainer-email: dl-devexp-...@akamai.com
+License: Apache 2.0
 Platform: UNKNOWN
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Requires-Python: >=2.7.10
+License-File: LICENSE
+
+UNKNOWN
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/edgegrid_python.egg-info/SOURCES.txt 
new/edgegrid-python-1.2.1/edgegrid_python.egg-info/SOURCES.txt
--- old/edgegrid-python-1.1.1/edgegrid_python.egg-info/SOURCES.txt      
2018-07-16 21:37:19.000000000 +0200
+++ new/edgegrid-python-1.2.1/edgegrid_python.egg-info/SOURCES.txt      
2021-10-11 09:39:22.000000000 +0200
@@ -8,6 +8,8 @@
 akamai/edgegrid/edgegrid.py
 akamai/edgegrid/edgerc.py
 akamai/edgegrid/test/__init__.py
+akamai/edgegrid/test/edgerc_that_doesnt_parse
+akamai/edgegrid/test/sample_edgerc
 akamai/edgegrid/test/test_edgegrid.py
 akamai/edgegrid/test/testdata.json
 edgegrid_python.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/edgegrid-python-1.1.1/edgegrid_python.egg-info/requires.txt 
new/edgegrid-python-1.2.1/edgegrid_python.egg-info/requires.txt
--- old/edgegrid-python-1.1.1/edgegrid_python.egg-info/requires.txt     
2018-07-16 21:37:19.000000000 +0200
+++ new/edgegrid-python-1.2.1/edgegrid_python.egg-info/requires.txt     
2021-10-11 09:39:22.000000000 +0200
@@ -1,5 +1,5 @@
 requests>=2.3.0
-pyOpenSSL >= 0.13
+pyOpenSSL>=19.0.0
 ndg-httpsclient
 pyasn1
 urllib3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/requirements.txt 
new/edgegrid-python-1.2.1/requirements.txt
--- old/edgegrid-python-1.1.1/requirements.txt  2015-06-24 03:02:59.000000000 
+0200
+++ new/edgegrid-python-1.2.1/requirements.txt  2021-06-24 16:17:32.000000000 
+0200
@@ -1,5 +1,5 @@
 requests>=2.3.0
-pyopenssl
+pyopenssl>=19.0.0
 ndg-httpsclient
 pyasn1
 urllib3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/setup.cfg 
new/edgegrid-python-1.2.1/setup.cfg
--- old/edgegrid-python-1.1.1/setup.cfg 2018-07-16 21:37:19.000000000 +0200
+++ new/edgegrid-python-1.2.1/setup.cfg 2021-10-11 09:39:22.888973500 +0200
@@ -1,5 +1,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/edgegrid-python-1.1.1/setup.py 
new/edgegrid-python-1.2.1/setup.py
--- old/edgegrid-python-1.1.1/setup.py  2018-07-16 21:34:33.000000000 +0200
+++ new/edgegrid-python-1.2.1/setup.py  2021-10-11 09:27:16.000000000 +0200
@@ -1,20 +1,28 @@
 from setuptools import setup, find_packages
 setup(
     name='edgegrid-python', 
-    version='1.1.1', 
+    version='1.2.1',
     description='{OPEN} client authentication protocol for python-requests',
     author='Jonathan Landis',
     author_email='jlan...@akamai.com',
-    url='https://github.com/akamai-open/AkamaiOPEN-edgegrid-python',
+    maintainer='Akamai Developer Experience team',
+    maintainer_email='dl-devexp-...@akamai.com',
+    url='https://github.com/akamai/AkamaiOPEN-edgegrid-python',
     namespace_packages=['akamai'],
     packages=find_packages(),
     python_requires=">=2.7.10",
-    install_requires = [
+    install_requires=[
         'requests>=2.3.0',
-        'pyOpenSSL >= 0.13',
+        'pyOpenSSL>=19.0.0',
         'ndg-httpsclient',
         'pyasn1',
         'urllib3'
     ],
-    license='LICENSE.txt'
+    include_package_data=True,
+    license='Apache 2.0',
+    classifiers=[
+        'License :: OSI Approved :: Apache Software License',
+        'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3',
+    ]
 )

Reply via email to