Hello community, here is the log from the commit of package python-cov-core for openSUSE:Factory checked in at 2014-07-31 07:41:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-cov-core (Old) and /work/SRC/openSUSE:Factory/.python-cov-core.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cov-core" Changes: -------- --- /work/SRC/openSUSE:Factory/python-cov-core/python-cov-core.changes 2013-09-03 22:03:08.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-cov-core.new/python-cov-core.changes 2014-07-31 07:41:53.000000000 +0200 @@ -1,0 +2,6 @@ +Wed Jul 30 07:27:46 UTC 2014 - toddrme2...@gmail.com + +- Update to 1.13.0 + * No upstream changelog + +------------------------------------------------------------------- Old: ---- cov-core-1.7.tar.gz New: ---- cov-core-1.13.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-cov-core.spec ++++++ --- /var/tmp/diff_new_pack.g0yNbT/_old 2014-07-31 07:41:54.000000000 +0200 +++ /var/tmp/diff_new_pack.g0yNbT/_new 2014-07-31 07:41:54.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-cov-core # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ Name: python-cov-core -Version: 1.7 +Version: 1.13.0 Release: 0 License: MIT Summary: Plugin core for use by pytest-cov, nose-cov and nose2-cov @@ -25,6 +25,7 @@ Source: https://pypi.python.org/packages/source/c/cov-core/cov-core-%{version}.tar.gz BuildRequires: python-devel BuildRequires: python-setuptools +BuildRequires: python-coverage Requires: python-coverage BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 @@ -48,7 +49,7 @@ %files %defattr(-,root,root,-) -%doc LICENSE.txt README.txt +%doc LICENSE.txt README.rst %{python_sitelib}/* %changelog ++++++ cov-core-1.7.tar.gz -> cov-core-1.13.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/MANIFEST.in new/cov-core-1.13.0/MANIFEST.in --- old/cov-core-1.7/MANIFEST.in 2010-07-17 03:00:37.000000000 +0200 +++ new/cov-core-1.13.0/MANIFEST.in 2014-04-24 11:30:04.000000000 +0200 @@ -1,4 +1,4 @@ -include README.txt +include README.rst include LICENSE.txt include setup.py include cov_core.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/PKG-INFO new/cov-core-1.13.0/PKG-INFO --- old/cov-core-1.7/PKG-INFO 2012-09-01 08:12:56.000000000 +0200 +++ new/cov-core-1.13.0/PKG-INFO 2014-06-12 20:43:30.000000000 +0200 @@ -1,16 +1,16 @@ Metadata-Version: 1.1 Name: cov-core -Version: 1.7 +Version: 1.13.0 Summary: plugin core for use by pytest-cov, nose-cov and nose2-cov -Home-page: http://bitbucket.org/memedough/cov-core/overview -Author: Meme Dough -Author-email: memedo...@gmail.com +Home-page: https://github.com/schlamar/cov-core +Author: Marc Schlaich +Author-email: marc.schla...@gmail.com License: MIT License Description: cov-core ======== - This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless your developing a - coverage plugin for a test framework then you probably want one of those. + This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless you're developing a + coverage plugin for a test framework, you probably want one of those. Keywords: cover coverage Platform: UNKNOWN Classifier: Development Status :: 4 - Beta diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/README.rst new/cov-core-1.13.0/README.rst --- old/cov-core-1.7/README.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/cov-core-1.13.0/README.rst 2014-04-24 11:09:25.000000000 +0200 @@ -0,0 +1,5 @@ +cov-core +======== + +This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless you're developing a +coverage plugin for a test framework, you probably want one of those. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/README.txt new/cov-core-1.13.0/README.txt --- old/cov-core-1.7/README.txt 2012-03-11 08:18:51.000000000 +0100 +++ new/cov-core-1.13.0/README.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -cov-core -======== - -This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless your developing a -coverage plugin for a test framework then you probably want one of those. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/cov_core.egg-info/PKG-INFO new/cov-core-1.13.0/cov_core.egg-info/PKG-INFO --- old/cov-core-1.7/cov_core.egg-info/PKG-INFO 2012-09-01 08:12:56.000000000 +0200 +++ new/cov-core-1.13.0/cov_core.egg-info/PKG-INFO 2014-06-12 20:43:30.000000000 +0200 @@ -1,16 +1,16 @@ Metadata-Version: 1.1 Name: cov-core -Version: 1.7 +Version: 1.13.0 Summary: plugin core for use by pytest-cov, nose-cov and nose2-cov -Home-page: http://bitbucket.org/memedough/cov-core/overview -Author: Meme Dough -Author-email: memedo...@gmail.com +Home-page: https://github.com/schlamar/cov-core +Author: Marc Schlaich +Author-email: marc.schla...@gmail.com License: MIT License Description: cov-core ======== - This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless your developing a - coverage plugin for a test framework then you probably want one of those. + This is a lib package for use by pytest-cov, nose-cov and nose2-cov. Unless you're developing a + coverage plugin for a test framework, you probably want one of those. Keywords: cover coverage Platform: UNKNOWN Classifier: Development Status :: 4 - Beta diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/cov_core.egg-info/SOURCES.txt new/cov-core-1.13.0/cov_core.egg-info/SOURCES.txt --- old/cov-core-1.7/cov_core.egg-info/SOURCES.txt 2012-09-01 08:12:56.000000000 +0200 +++ new/cov-core-1.13.0/cov_core.egg-info/SOURCES.txt 2014-06-12 20:43:30.000000000 +0200 @@ -1,6 +1,6 @@ LICENSE.txt MANIFEST.in -README.txt +README.rst cov_core.py cov_core_init.py setup.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/cov_core.egg-info/requires.txt new/cov-core-1.13.0/cov_core.egg-info/requires.txt --- old/cov-core-1.7/cov_core.egg-info/requires.txt 2012-09-01 08:12:56.000000000 +0200 +++ new/cov-core-1.13.0/cov_core.egg-info/requires.txt 2014-06-12 20:43:30.000000000 +0200 @@ -1 +1 @@ -coverage>=3.4 \ No newline at end of file +coverage>=3.6 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/cov_core.py new/cov-core-1.13.0/cov_core.py --- old/cov-core-1.7/cov_core.py 2012-04-12 12:40:59.000000000 +0200 +++ new/cov-core-1.13.0/cov_core.py 2014-06-12 20:26:37.000000000 +0200 @@ -8,23 +8,11 @@ import os -def multiprocessing_hook(): - try: - import multiprocessing.util - multiprocessing.util.register_after_fork(multiprocessing_start, - multiprocessing_start) - except ImportError: - pass - - def multiprocessing_start(obj): cov = cov_core_init.init() - if cov: - import multiprocessing.util - multiprocessing.util.Finalize(None, - multiprocessing_finish, - args=(cov,), - exitpriority=1000) + import multiprocessing.util + multiprocessing.util.Finalize( + None, multiprocessing_finish, args=(cov,), exitpriority=1000) def multiprocessing_finish(cov): @@ -32,12 +20,40 @@ cov.save() +try: + import multiprocessing.util + multiprocessing.util.register_after_fork(multiprocessing_start, + multiprocessing_start) +except ImportError: + pass + + +_cov_data = dict() + + +def on_py_fork_starts(proc): + cov = cov_core_init.init() + _cov_data[proc] = cov + + +def on_py_fork_exits(proc): + cov = _cov_data.pop(proc) + multiprocessing_finish(cov) + + +try: + import py + py.process.ForkedFunc.register_on_start(on_py_fork_starts) + py.process.ForkedFunc.register_on_exit(on_py_fork_exits) +except (ImportError, AttributeError): + pass + + class CovController(object): """Base class for different plugin implementations.""" def __init__(self, cov_source, cov_report, cov_config, config=None, nodeid=None): """Get some common config used by multiple derived classes.""" - self.cov_source = cov_source self.cov_report = cov_report self.cov_config = cov_config @@ -56,15 +72,13 @@ os.environ['COV_CORE_SOURCE'] = UNIQUE_SEP.join(self.cov_source) os.environ['COV_CORE_DATA_FILE'] = self.cov_data_file os.environ['COV_CORE_CONFIG'] = self.cov_config - multiprocessing_hook() @staticmethod def unset_env(): """Remove coverage info from env.""" - - del os.environ['COV_CORE_SOURCE'] - del os.environ['COV_CORE_DATA_FILE'] - del os.environ['COV_CORE_CONFIG'] + os.environ.pop('COV_CORE_SOURCE', None) + os.environ.pop('COV_CORE_DATA_FILE', None) + os.environ.pop('COV_CORE_CONFIG', None) @staticmethod def get_node_desc(platform, version_info): @@ -161,6 +175,13 @@ if self.cov_config and os.path.exists(self.cov_config): self.config.option.rsyncdir.append(self.cov_config) + self.cov = coverage.coverage(source=self.cov_source, + data_file=self.cov_data_file, + config_file=self.cov_config) + self.cov.erase() + self.cov.start() + self.cov.config.paths['source'] = [self.topdir] + def configure_node(self, node): """Slaves need to know if they are collocated and what files have moved.""" @@ -189,6 +210,8 @@ cov.data.arcs = node.slaveoutput['cov_slave_arcs'] cov.stop() cov.save() + path = node.slaveoutput['cov_slave_path'] + self.cov.config.paths['source'].append(path) # Record the slave types that contribute to the data file. rinfo = node.gateway._rinfo() @@ -199,10 +222,7 @@ """Combines coverage data and sets the list of coverage objects to report on.""" # Combine all the suffix files into the data file. - self.cov = coverage.coverage(source=self.cov_source, - data_file=self.cov_data_file, - config_file=self.cov_config) - self.cov.erase() + self.cov.stop() self.cov.combine() self.cov.save() @@ -256,25 +276,15 @@ # data file to indicate that we have finished. self.config.slaveoutput['cov_slave_node_id'] = self.nodeid else: - # If we are not collocated then rewrite the filenames from - # the slave location to the master location. - slave_topdir = self.topdir - path_rewrites = [(os.path.join(slave_topdir, os.path.basename(rsync_root)), rsync_root) - for rsync_root in self.config.slaveinput['cov_master_rsync_roots']] - path_rewrites.append((slave_topdir, self.config.slaveinput['cov_master_topdir'])) - - def rewrite_path(filename): - for slave_path, master_path in path_rewrites: - filename = filename.replace(slave_path, master_path) - return filename - - lines = dict((rewrite_path(filename), data) for filename, data in self.cov.data.lines.items()) - arcs = dict((rewrite_path(filename), data) for filename, data in self.cov.data.arcs.items()) + # If we are not collocated then add the current path + # and coverage data to the output so we can combine + # it on the master node. # Send all the data to the master over the channel. + self.config.slaveoutput['cov_slave_path'] = self.topdir self.config.slaveoutput['cov_slave_node_id'] = self.nodeid - self.config.slaveoutput['cov_slave_lines'] = lines - self.config.slaveoutput['cov_slave_arcs'] = arcs + self.config.slaveoutput['cov_slave_lines'] = self.cov.data.lines + self.config.slaveoutput['cov_slave_arcs'] = self.cov.data.arcs def summary(self, stream): """Only the master reports so do nothing.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/cov_core_init.py new/cov-core-1.13.0/cov_core_init.py --- old/cov-core-1.7/cov_core_init.py 2012-03-11 06:02:29.000000000 +0100 +++ new/cov-core-1.13.0/cov_core_init.py 2014-06-12 20:26:37.000000000 +0200 @@ -14,8 +14,11 @@ info passed via env vars. """ + UNIQUE_SEP = '084031f3d2994d40a88c8b699b69e148' +import cov_core # noqa: register multiprocessing handler + def init(): @@ -54,7 +57,6 @@ auto_data=True) cov.erase() cov.start() - return cov except Exception: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cov-core-1.7/setup.py new/cov-core-1.13.0/setup.py --- old/cov-core-1.7/setup.py 2012-09-01 08:09:34.000000000 +0200 +++ new/cov-core-1.13.0/setup.py 2014-06-12 20:41:41.000000000 +0200 @@ -7,7 +7,8 @@ # imported. PTH_FILE_NAME = 'init_cov_core.pth' -# The line in the path file must begin with "import" so that site.py will exec it. +# The line in the path file must begin with "import" +# so that site.py will exec it. PTH_FILE = '''\ import os; os.environ.get('COV_CORE_SOURCE') and __import__('cov_core_init').init() ''' @@ -20,15 +21,16 @@ ''' % (PTH_FILE_NAME, PTH_FILE) setuptools.setup(name='cov-core', - version='1.7', - description='plugin core for use by pytest-cov, nose-cov and nose2-cov', - long_description=open('README.txt').read().strip(), - author='Meme Dough', - author_email='memedo...@gmail.com', - url='http://bitbucket.org/memedough/cov-core/overview', + version='1.13.0', + description='plugin core for use by pytest-cov, ' + 'nose-cov and nose2-cov', + long_description=open('README.rst').read().strip(), + author='Marc Schlaich', + author_email='marc.schla...@gmail.com', + url='https://github.com/schlamar/cov-core', py_modules=['cov_core', 'cov_core_init'], - install_requires=['coverage>=3.4'], + install_requires=['coverage>=3.6'], license='MIT License', zip_safe=False, keywords='cover coverage', @@ -47,18 +49,22 @@ if sys.argv[1] in ('install', 'develop'): for path in sys.path: - if (path.endswith('site-packages')) or (path.endswith('dist-packages') and 'local' in path): + if (path.endswith('site-packages')) or (path.endswith('dist-packages') + and 'local' in path): path = os.path.join(path, PTH_FILE_NAME) try: pth_file = open(path, 'w') pth_file.write(PTH_FILE) pth_file.close() - sys.stdout.write('\nWrote pth file for subprocess measurement to %s\n' % path) + sys.stdout.write('\nWrote pth file for subprocess ' + 'measurement to %s\n' % path) break except Exception: - sys.stdout.write('\nFailed to write pth file for subprocess measurement to %s\n' % path) + sys.stdout.write('\nFailed to write pth file for subprocess ' + 'measurement to %s\n' % path) sys.stdout.write(PTH_FILE_FAILURE) break else: - sys.stdout.write('\nFailed to find site-packages or dist-packages dir to put pth file in.\n') + sys.stdout.write('\nFailed to find site-packages or dist-packages ' + 'dir to put pth file in.\n') sys.stdout.write(PTH_FILE_FAILURE) -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org