Hello community,

here is the log from the commit of package python-docker-pycreds for 
openSUSE:Factory checked in at 2018-06-29 22:34:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-docker-pycreds (Old)
 and      /work/SRC/openSUSE:Factory/.python-docker-pycreds.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-docker-pycreds"

Fri Jun 29 22:34:02 2018 rev:7 rq:618931 version:0.3.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-docker-pycreds/python-docker-pycreds.changes  
    2018-05-02 12:20:19.144028125 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-docker-pycreds.new/python-docker-pycreds.changes
 2018-06-29 22:34:04.782122650 +0200
@@ -1,0 +2,6 @@
+Sun Jun 24 15:37:07 UTC 2018 - a...@gmx.de
+
+- update to version 0.3.0:
+  * Allow overriding environment variables for credstore invocation
+
+-------------------------------------------------------------------

Old:
----
  docker-pycreds-0.2.3.tar.gz

New:
----
  docker-pycreds-0.3.0.tar.gz

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

Other differences:
------------------
++++++ python-docker-pycreds.spec ++++++
--- /var/tmp/diff_new_pack.1RiX0b/_old  2018-06-29 22:34:05.074122396 +0200
+++ /var/tmp/diff_new_pack.1RiX0b/_new  2018-06-29 22:34:05.078122393 +0200
@@ -18,7 +18,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-docker-pycreds
-Version:        0.2.3
+Version:        0.3.0
 Release:        0
 Summary:        Python bindings for the Docker credentials store API
 License:        Apache-2.0

++++++ docker-pycreds-0.2.3.tar.gz -> docker-pycreds-0.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/PKG-INFO 
new/docker-pycreds-0.3.0/PKG-INFO
--- old/docker-pycreds-0.2.3/PKG-INFO   2018-04-25 22:45:55.000000000 +0200
+++ new/docker-pycreds-0.3.0/PKG-INFO   2018-06-07 04:40:23.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: docker-pycreds
-Version: 0.2.3
+Version: 0.3.0
 Summary: Python bindings for the docker credentials store API
 Home-page: https://github.com/shin-/dockerpy-creds
 Author: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-pycreds-0.2.3/docker_pycreds.egg-info/PKG-INFO 
new/docker-pycreds-0.3.0/docker_pycreds.egg-info/PKG-INFO
--- old/docker-pycreds-0.2.3/docker_pycreds.egg-info/PKG-INFO   2018-04-25 
22:45:55.000000000 +0200
+++ new/docker-pycreds-0.3.0/docker_pycreds.egg-info/PKG-INFO   2018-06-07 
04:40:23.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: docker-pycreds
-Version: 0.2.3
+Version: 0.3.0
 Summary: Python bindings for the docker credentials store API
 Home-page: https://github.com/shin-/dockerpy-creds
 Author: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-pycreds-0.2.3/docker_pycreds.egg-info/SOURCES.txt 
new/docker-pycreds-0.3.0/docker_pycreds.egg-info/SOURCES.txt
--- old/docker-pycreds-0.2.3/docker_pycreds.egg-info/SOURCES.txt        
2018-04-25 22:45:55.000000000 +0200
+++ new/docker-pycreds-0.3.0/docker_pycreds.egg-info/SOURCES.txt        
2018-06-07 04:40:23.000000000 +0200
@@ -18,4 +18,5 @@
 dockerpycreds/utils.py
 dockerpycreds/version.py
 tests/__init__.py
-tests/store_test.py
\ No newline at end of file
+tests/store_test.py
+tests/utils_test.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/dockerpycreds/store.py 
new/docker-pycreds-0.3.0/dockerpycreds/store.py
--- old/docker-pycreds-0.2.3/dockerpycreds/store.py     2018-04-25 
20:59:29.000000000 +0200
+++ new/docker-pycreds-0.3.0/dockerpycreds/store.py     2018-06-07 
04:38:31.000000000 +0200
@@ -6,17 +6,19 @@
 
 from . import constants
 from . import errors
+from .utils import create_environment_dict
 from .utils import find_executable
 
 
 class Store(object):
-    def __init__(self, program):
+    def __init__(self, program, environment=None):
         """ Create a store object that acts as an interface to
             perform the basic operations for storing, retrieving
             and erasing credentials using `program`.
         """
         self.program = constants.PROGRAM_PREFIX + program
         self.exe = find_executable(self.program)
+        self.environment = environment
         if self.exe is None:
             raise errors.InitializationError(
                 '{0} not installed or not available in PATH'.format(
@@ -65,15 +67,16 @@
 
     def _execute(self, subcmd, data_input):
         output = None
+        env = create_environment_dict(self.environment)
         try:
             if six.PY3:
                 output = subprocess.check_output(
-                    [self.exe, subcmd], input=data_input
+                    [self.exe, subcmd], input=data_input, env=env,
                 )
             else:
                 process = subprocess.Popen(
                     [self.exe, subcmd], stdin=subprocess.PIPE,
-                    stdout=subprocess.PIPE
+                    stdout=subprocess.PIPE, env=env,
                 )
                 output, err = process.communicate(data_input)
                 if process.returncode != 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/dockerpycreds/utils.py 
new/docker-pycreds-0.3.0/dockerpycreds/utils.py
--- old/docker-pycreds-0.2.3/dockerpycreds/utils.py     2018-04-25 
20:59:24.000000000 +0200
+++ new/docker-pycreds-0.3.0/dockerpycreds/utils.py     2018-06-07 
04:38:31.000000000 +0200
@@ -5,7 +5,7 @@
 
 def find_executable(executable, path=None):
     """
-    As distutils.spawn.find_executable, but on Windows, looks up
+    As distutils.spawn.find_executable, but on Windows, look up
     every extension declared in PATHEXT instead of just `.exe`
     """
     if sys.platform != 'win32':
@@ -27,3 +27,12 @@
         return None
     else:
         return executable
+
+
+def create_environment_dict(overrides):
+    """
+    Create and return a copy of os.environ with the specified overrides
+    """
+    result = os.environ.copy()
+    result.update(overrides or {})
+    return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/dockerpycreds/version.py 
new/docker-pycreds-0.3.0/dockerpycreds/version.py
--- old/docker-pycreds-0.2.3/dockerpycreds/version.py   2018-04-25 
22:41:40.000000000 +0200
+++ new/docker-pycreds-0.3.0/dockerpycreds/version.py   2018-06-07 
04:39:03.000000000 +0200
@@ -1,2 +1,2 @@
-version = "0.2.3"
+version = "0.3.0"
 version_info = tuple([int(d) for d in version.split("-")[0].split(".")])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/tests/store_test.py 
new/docker-pycreds-0.3.0/tests/store_test.py
--- old/docker-pycreds-0.2.3/tests/store_test.py        2018-04-25 
20:44:22.000000000 +0200
+++ new/docker-pycreds-0.3.0/tests/store_test.py        2018-06-07 
04:38:31.000000000 +0200
@@ -1,3 +1,4 @@
+import os
 import random
 import sys
 
@@ -67,3 +68,10 @@
         self.store.erase(key)
         with pytest.raises(CredentialsNotFound):
             self.store.get(key)
+
+    def test_execute_with_env_override(self):
+        self.store.exe = 'env'
+        self.store.environment = {'FOO': 'bar'}
+        data = self.store._execute('--null', '')
+        assert b'\0FOO=bar\0' in data
+        assert 'FOO' not in os.environ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-pycreds-0.2.3/tests/utils_test.py 
new/docker-pycreds-0.3.0/tests/utils_test.py
--- old/docker-pycreds-0.2.3/tests/utils_test.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/docker-pycreds-0.3.0/tests/utils_test.py        2018-06-07 
04:38:31.000000000 +0200
@@ -0,0 +1,22 @@
+import os
+
+from dockerpycreds.utils import create_environment_dict
+
+try:
+    from unittest import mock
+except ImportError:
+    import mock
+
+
+@mock.patch.dict(os.environ)
+def test_create_environment_dict():
+    base = {'FOO': 'bar', 'BAZ': 'foobar'}
+    os.environ = base
+    assert create_environment_dict({'FOO': 'baz'}) == {
+        'FOO': 'baz', 'BAZ': 'foobar',
+    }
+    assert create_environment_dict({'HELLO': 'world'}) == {
+        'FOO': 'bar', 'BAZ': 'foobar', 'HELLO': 'world',
+    }
+
+    assert os.environ == base


Reply via email to