Hello community,

here is the log from the commit of package python3-pbr for openSUSE:Factory 
checked in at 2015-11-18 22:33:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-pbr (Old)
 and      /work/SRC/openSUSE:Factory/.python3-pbr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-pbr"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-pbr/python3-pbr-doc.changes      
2015-09-30 05:52:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-pbr.new/python3-pbr-doc.changes 
2015-11-18 22:33:58.000000000 +0100
@@ -1,0 +2,10 @@
+Thu Oct  8 16:40:25 UTC 2015 - [email protected]
+
+- update to version 1.8.1:
+  * Handle the case where cmd.distribution has no pbr attribute
+  * test_integration cleanups
+  * Remove redundant testscenarios glue
+  * Add standard code coverage configuration file
+  * Add shields.io version/downloads links/badges into README.rst
+
+-------------------------------------------------------------------
python3-pbr.changes: same change

Old:
----
  pbr-1.8.0.tar.gz

New:
----
  pbr-1.8.1.tar.gz

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

Other differences:
------------------
++++++ python3-pbr-doc.spec ++++++
--- /var/tmp/diff_new_pack.PeMp1c/_old  2015-11-18 22:33:59.000000000 +0100
+++ /var/tmp/diff_new_pack.PeMp1c/_new  2015-11-18 22:33:59.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           python3-pbr-doc
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 Summary:        Documentation for python3-pbr
 License:        Apache-2.0

++++++ python3-pbr.spec ++++++
--- /var/tmp/diff_new_pack.PeMp1c/_old  2015-11-18 22:33:59.000000000 +0100
+++ /var/tmp/diff_new_pack.PeMp1c/_new  2015-11-18 22:33:59.000000000 +0100
@@ -21,7 +21,7 @@
 %bcond_with test
 
 Name:           python3-pbr
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 Summary:        Python Build Reasonableness
 License:        Apache-2.0

++++++ pbr-1.8.0.tar.gz -> pbr-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/.coveragerc new/pbr-1.8.1/.coveragerc
--- old/pbr-1.8.0/.coveragerc   1970-01-01 01:00:00.000000000 +0100
+++ new/pbr-1.8.1/.coveragerc   2015-10-07 23:56:44.000000000 +0200
@@ -0,0 +1,8 @@
+[run]
+branch = True
+source = pbr
+omit = pbr/tests/*,pbr/openstack/*
+
+[report]
+ignore_errors = True
+precision = 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/AUTHORS new/pbr-1.8.1/AUTHORS
--- old/pbr-1.8.0/AUTHORS       2015-09-14 22:59:19.000000000 +0200
+++ new/pbr-1.8.1/AUTHORS       2015-10-07 23:57:05.000000000 +0200
@@ -72,6 +72,7 @@
 Robert Collins <[email protected]>
 Robert Myers <[email protected]>
 Roger Luethi <[email protected]>
+Ronald Bradford <[email protected]>
 Ruby Loo <[email protected]>
 Russell Bryant <[email protected]>
 Ryan Petrello <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/ChangeLog new/pbr-1.8.1/ChangeLog
--- old/pbr-1.8.0/ChangeLog     2015-09-14 22:59:19.000000000 +0200
+++ new/pbr-1.8.1/ChangeLog     2015-10-07 23:57:05.000000000 +0200
@@ -1,6 +1,15 @@
 CHANGES
 =======
 
+1.8.1
+-----
+
+* Handle the case where cmd.distribution has no pbr attribute
+* test_integration cleanups
+* Remove redundant testscenarios glue
+* Add standard code coverage configuration file
+* Add shields.io version/downloads links/badges into README.rst
+
 1.8.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/PKG-INFO new/pbr-1.8.1/PKG-INFO
--- old/pbr-1.8.0/PKG-INFO      2015-09-14 22:59:19.000000000 +0200
+++ new/pbr-1.8.1/PKG-INFO      2015-10-07 23:57:05.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pbr
-Version: 1.8.0
+Version: 1.8.1
 Summary: Python Build Reasonableness
 Home-page: https://launchpad.net/pbr
 Author: OpenStack
@@ -9,6 +9,14 @@
 Description: Introduction
         ============
         
+        .. image:: https://img.shields.io/pypi/v/pbr.svg
+            :target: https://pypi.python.org/pypi/pbr/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/pbr.svg
+            :target: https://pypi.python.org/pypi/pbr/
+            :alt: Downloads
+        
         PBR is a library that injects some useful and sensible default 
behaviors
         into your setuptools run. It started off life as the chunks of code 
that
         were copied between all of the `OpenStack`_ projects. Around the time 
that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/README.rst new/pbr-1.8.1/README.rst
--- old/pbr-1.8.0/README.rst    2015-09-14 22:58:58.000000000 +0200
+++ new/pbr-1.8.1/README.rst    2015-10-07 23:56:44.000000000 +0200
@@ -1,6 +1,14 @@
 Introduction
 ============
 
+.. image:: https://img.shields.io/pypi/v/pbr.svg
+    :target: https://pypi.python.org/pypi/pbr/
+    :alt: Latest Version
+
+.. image:: https://img.shields.io/pypi/dm/pbr.svg
+    :target: https://pypi.python.org/pypi/pbr/
+    :alt: Downloads
+
 PBR is a library that injects some useful and sensible default behaviors
 into your setuptools run. It started off life as the chunks of code that
 were copied between all of the `OpenStack`_ projects. Around the time that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/pbr_json.py 
new/pbr-1.8.1/pbr/pbr_json.py
--- old/pbr-1.8.0/pbr/pbr_json.py       2015-09-14 22:58:58.000000000 +0200
+++ new/pbr-1.8.1/pbr/pbr_json.py       2015-10-07 23:56:45.000000000 +0200
@@ -20,7 +20,7 @@
 
 
 def write_pbr_json(cmd, basename, filename):
-    if not cmd.distribution.pbr:
+    if not hasattr(cmd.distribution, 'pbr') or not cmd.distribution.pbr:
         return
     git_dir = git._run_git_functions()
     if not git_dir:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/tests/__init__.py 
new/pbr-1.8.1/pbr/tests/__init__.py
--- old/pbr-1.8.0/pbr/tests/__init__.py 2015-09-14 22:58:58.000000000 +0200
+++ new/pbr-1.8.1/pbr/tests/__init__.py 2015-10-07 23:56:45.000000000 +0200
@@ -0,0 +1,26 @@
+# 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
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+
+import testscenarios
+
+
+def load_tests(loader, standard_tests, pattern):
+    # top level directory cached on loader instance
+    this_dir = os.path.dirname(__file__)
+    package_tests = loader.discover(start_dir=this_dir, pattern=pattern)
+    result = loader.suiteClass()
+    result.addTests(testscenarios.generate_scenarios(standard_tests))
+    result.addTests(testscenarios.generate_scenarios(package_tests))
+    return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/tests/test_integration.py 
new/pbr-1.8.1/pbr/tests/test_integration.py
--- old/pbr-1.8.0/pbr/tests/test_integration.py 2015-09-14 22:58:58.000000000 
+0200
+++ new/pbr-1.8.1/pbr/tests/test_integration.py 2015-10-07 23:56:45.000000000 
+0200
@@ -13,13 +13,15 @@
 
 import os.path
 import shlex
+import sys
 
 import fixtures
-import testscenarios
 import testtools
+import textwrap
 import virtualenv
 
 from pbr.tests import base
+from pbr.tests.test_packaging import TestRepo
 
 PIPFLAGS = shlex.split(os.environ.get('PIPFLAGS', ''))
 PIPVERSION = os.environ.get('PIPVERSION', 'pip')
@@ -28,6 +30,7 @@
 WHEELHOUSE = os.environ.get('WHEELHOUSE', '')
 PIP_CMD = ['-m', 'pip'] + PIPFLAGS + ['install', '-f', WHEELHOUSE]
 PROJECTS = shlex.split(os.environ.get('PROJECTS', ''))
+PBR_ROOT = os.path.abspath(os.path.join(__file__, '..', '..', '..'))
 
 
 def all_projects():
@@ -50,6 +53,41 @@
         yield (short_name, dict(name=name, short_name=short_name))
 
 
+class Venv(fixtures.Fixture):
+    """Create a virtual environment for testing with.
+
+    :attr path: The path to the environment root.
+    :attr python: The path to the python binary in the environment.
+    """
+
+    def __init__(self, reason, install_pbr=True):
+        """Create a Venv fixture.
+
+        :param reason: A human readable string to bake into the venv
+            file path to aid diagnostics in the case of failures.
+        :param install_pbr: By default pbr is installed inside the
+            venv. Setting this to false will disable that.
+        """
+        self._reason = reason
+        self._install_pbr = install_pbr
+
+    def _setUp(self):
+        path = self.useFixture(fixtures.TempDir()).path
+        virtualenv.create_environment(path, clear=True)
+        python = os.path.join(path, 'bin', 'python')
+        command = [python] + PIP_CMD + [
+            '-U', PIPVERSION, 'wheel']
+        if self._install_pbr:
+            command.append(PBRVERSION)
+        self.useFixture(base.CapturedSubprocess(
+            'mkvenv-' + self._reason, command))
+        self.addCleanup(delattr, self, 'path')
+        self.addCleanup(delattr, self, 'python')
+        self.path = path
+        self.python = python
+        return path, python
+
+
 class TestIntegration(base.BaseTestCase):
 
     scenarios = list(all_projects())
@@ -57,20 +95,12 @@
     def setUp(self):
         # Integration tests need a higher default - big repos can be slow to
         # clone, particularly under guest load.
-        os.environ['OS_TEST_TIMEOUT'] = os.environ.get('OS_TEST_TIMEOUT',
-                                                       '600')
-        super(TestIntegration, self).setUp()
+        env = fixtures.EnvironmentVariable(
+            'OS_TEST_TIMEOUT', os.environ.get('OS_TEST_TIMEOUT', '600'))
+        with env:
+            super(TestIntegration, self).setUp()
         base._config_git()
 
-    def venv(self, reason):
-        path = self.useFixture(fixtures.TempDir()).path
-        virtualenv.create_environment(path, clear=True)
-        python = os.path.join(path, 'bin', 'python')
-        self.useFixture(base.CapturedSubprocess(
-            'mkvenv-' + reason, [python] + PIP_CMD + [
-                '-U', PIPVERSION, 'wheel', PBRVERSION]))
-        return path, python
-
     @testtools.skipUnless(
         os.environ.get('PBR_INTEGRATION', None) == '1',
         'integration tests not enabled')
@@ -96,15 +126,19 @@
         self.useFixture(base.CapturedSubprocess(
             'clone',
             ['git', 'clone', os.path.join(REPODIR, self.short_name), path]))
-        _, python = self.venv('sdist')
+        venv = self.useFixture(Venv('sdist'))
+        python = venv.python
         self.useFixture(base.CapturedSubprocess(
             'sdist', [python, 'setup.py', 'sdist'], cwd=path))
-        _, python = self.venv('tarball')
+        venv = self.useFixture(Venv('tarball'))
+        python = venv.python
         filename = os.path.join(
             path, 'dist', os.listdir(os.path.join(path, 'dist'))[0])
         self.useFixture(base.CapturedSubprocess(
             'tarball', [python] + PIP_CMD + [filename]))
-        root, python = self.venv('install-git')
+        venv = self.useFixture(Venv('install-git'))
+        root = venv.path
+        python = venv.python
         self.useFixture(base.CapturedSubprocess(
             'install-git', [python] + PIP_CMD + ['git+file://' + path]))
         if self.short_name == 'nova':
@@ -113,10 +147,80 @@
                 if 'migrate.cfg' in filenames:
                     found = True
             self.assertTrue(found)
-        _, python = self.venv('install-e')
+        venv = self.useFixture(Venv('install-e'))
+        root = venv.path
+        python = venv.python
         self.useFixture(base.CapturedSubprocess(
             'install-e', [python] + PIP_CMD + ['-e', path]))
 
 
-def load_tests(loader, in_tests, pattern):
-    return testscenarios.load_tests_apply_scenarios(loader, in_tests, pattern)
+class TestInstallWithoutPbr(base.BaseTestCase):
+
+    @testtools.skipUnless(
+        os.environ.get('PBR_INTEGRATION', None) == '1',
+        'integration tests not enabled')
+    def test_install_without_pbr(self):
+        # Test easy-install of a thing that depends on a thing using pbr
+        tempdir = self.useFixture(fixtures.TempDir()).path
+        # A directory containing sdists of the things we're going to depend on
+        # in using-package.
+        dist_dir = os.path.join(tempdir, 'distdir')
+        os.mkdir(dist_dir)
+        self._run_cmd(sys.executable, ('setup.py', 'sdist', '-d', dist_dir),
+                      allow_fail=False, cwd=PBR_ROOT)
+        # testpkg - this requires a pbr-using package
+        test_pkg_dir = os.path.join(tempdir, 'testpkg')
+        os.mkdir(test_pkg_dir)
+        with open(os.path.join(test_pkg_dir, 'setup.py'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                #!/usr/bin/env python
+                import setuptools
+                setuptools.setup(
+                    name = 'pkgTest',
+                    tests_require = ['pkgReq'],
+                    test_suite='pkgReq'
+                )
+                """))
+        with open(os.path.join(test_pkg_dir, 'setup.cfg'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                [easy_install]
+                find_links = %s
+                """ % dist_dir))
+        repoTest = self.useFixture(TestRepo(test_pkg_dir))
+        repoTest.commit()
+        # reqpkg - this is a package that requires pbr
+        req_pkg_dir = os.path.join(tempdir, 'reqpkg')
+        pkg_req_module = os.path.join(req_pkg_dir, 'pkgReq/')
+        os.makedirs(pkg_req_module)
+        with open(os.path.join(req_pkg_dir, 'setup.py'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                #!/usr/bin/env python
+                import setuptools
+                setuptools.setup(
+                    setup_requires=['pbr'],
+                    pbr=True
+                )
+                """))
+        with open(os.path.join(req_pkg_dir, 'setup.cfg'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                [metadata]
+                name = pkgReq
+                """))
+        with open(os.path.join(req_pkg_dir, 'requirements.txt'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                pbr
+                """))
+        with open(os.path.join(req_pkg_dir, 'pkgReq/__init__.py'), 'wt') as f:
+            f.write(textwrap.dedent("""\
+                print("FakeTest loaded and ran")
+                """))
+        repoReq = self.useFixture(TestRepo(req_pkg_dir))
+        repoReq.commit()
+        self._run_cmd(sys.executable, ('setup.py', 'sdist', '-d', dist_dir),
+                      allow_fail=False, cwd=req_pkg_dir)
+        # A venv to test within
+        venv = self.useFixture(Venv('nopbr', install_pbr=False))
+        python = venv.python
+        # Run the depending script
+        self.useFixture(base.CapturedSubprocess(
+            'nopbr', [python] + ['setup.py', 'test'], cwd=test_pkg_dir))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/tests/test_packaging.py 
new/pbr-1.8.1/pbr/tests/test_packaging.py
--- old/pbr-1.8.0/pbr/tests/test_packaging.py   2015-09-14 22:58:58.000000000 
+0200
+++ new/pbr-1.8.1/pbr/tests/test_packaging.py   2015-10-07 23:56:45.000000000 
+0200
@@ -48,7 +48,6 @@
 import mock
 import pkg_resources
 import six
-import testscenarios
 from testtools import matchers
 
 from pbr import git
@@ -514,7 +513,3 @@
                 pkg_resources.split_sections(requires))
 
         self.assertEqual(expected_requirements, generated_requirements)
-
-
-def load_tests(loader, in_tests, pattern):
-    return testscenarios.load_tests_apply_scenarios(loader, in_tests, pattern)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/tests/test_setup.py 
new/pbr-1.8.1/pbr/tests/test_setup.py
--- old/pbr-1.8.0/pbr/tests/test_setup.py       2015-09-14 22:58:58.000000000 
+0200
+++ new/pbr-1.8.1/pbr/tests/test_setup.py       2015-10-07 23:56:45.000000000 
+0200
@@ -28,7 +28,6 @@
     BytesIO = io.BytesIO
 
 import fixtures
-import testscenarios
 
 from pbr import git
 from pbr import options
@@ -424,7 +423,3 @@
         self.assertEqual(
             ["git://foo.com/zipball#egg=bar"],
             packaging.parse_dependency_links([self.tmp_file]))
-
-
-def load_tests(loader, in_tests, pattern):
-    return testscenarios.load_tests_apply_scenarios(loader, in_tests, pattern)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr/tests/test_util.py 
new/pbr-1.8.1/pbr/tests/test_util.py
--- old/pbr-1.8.0/pbr/tests/test_util.py        2015-09-14 22:58:58.000000000 
+0200
+++ new/pbr-1.8.1/pbr/tests/test_util.py        2015-10-07 23:56:45.000000000 
+0200
@@ -17,7 +17,6 @@
 
 import six
 from six.moves import configparser
-import testscenarios
 
 from pbr.tests import base
 from pbr import util
@@ -74,7 +73,3 @@
 
         self.assertEqual(self.expected_extra_requires,
                          kwargs['extras_require'])
-
-
-def load_tests(loader, in_tests, pattern):
-    return testscenarios.load_tests_apply_scenarios(loader, in_tests, pattern)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr.egg-info/PKG-INFO 
new/pbr-1.8.1/pbr.egg-info/PKG-INFO
--- old/pbr-1.8.0/pbr.egg-info/PKG-INFO 2015-09-14 22:59:19.000000000 +0200
+++ new/pbr-1.8.1/pbr.egg-info/PKG-INFO 2015-10-07 23:57:05.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pbr
-Version: 1.8.0
+Version: 1.8.1
 Summary: Python Build Reasonableness
 Home-page: https://launchpad.net/pbr
 Author: OpenStack
@@ -9,6 +9,14 @@
 Description: Introduction
         ============
         
+        .. image:: https://img.shields.io/pypi/v/pbr.svg
+            :target: https://pypi.python.org/pypi/pbr/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/pbr.svg
+            :target: https://pypi.python.org/pypi/pbr/
+            :alt: Downloads
+        
         PBR is a library that injects some useful and sensible default 
behaviors
         into your setuptools run. It started off life as the chunks of code 
that
         were copied between all of the `OpenStack`_ projects. Around the time 
that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/pbr.egg-info/SOURCES.txt 
new/pbr-1.8.1/pbr.egg-info/SOURCES.txt
--- old/pbr-1.8.0/pbr.egg-info/SOURCES.txt      2015-09-14 22:59:19.000000000 
+0200
+++ new/pbr-1.8.1/pbr.egg-info/SOURCES.txt      2015-10-07 23:57:05.000000000 
+0200
@@ -1,3 +1,4 @@
+.coveragerc
 .mailmap
 .testr.conf
 AUTHORS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pbr-1.8.0/setup.cfg new/pbr-1.8.1/setup.cfg
--- old/pbr-1.8.0/setup.cfg     2015-09-14 22:59:19.000000000 +0200
+++ new/pbr-1.8.1/setup.cfg     2015-10-07 23:57:05.000000000 +0200
@@ -53,7 +53,7 @@
 universal = 1
 
 [egg_info]
-tag_build = 
 tag_date = 0
+tag_build = 
 tag_svn_revision = 0
 



Reply via email to