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 - [email protected]
+
+- 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
+
+
[email protected](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