commit python3-py for openSUSE:Factory
Hello community, here is the log from the commit of package python3-py for openSUSE:Factory checked in at 2017-01-18 21:28:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-py (Old) and /work/SRC/openSUSE:Factory/.python3-py.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python3-py" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-py/python3-py-doc.changes 2016-05-17 17:11:24.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-py.new/python3-py-doc.changes 2017-01-18 21:28:44.355472065 +0100 @@ -1,0 +2,24 @@ +Fri Jan 13 04:15:28 UTC 2017 - arun@gmx.de + +- specfile: + * update copyright year + +- update to version 1.4.32: + * fix issue70: added ability to copy all stat info in + py.path.local.copy. + * make TerminalWriter.fullwidth a property. This results in the + correct value when the terminal gets resized. + * update supported html tags to include recent additions. Thanks + Denis Afonso for the PR. + * Remove internal code in "Source.compile" meant to support earlier + Python 3 versions that produced the side effect of leaving "None" + in "sys.modules" when called (see pytest-dev/pytest#2103). Thanks + Bruno Oliveira for the PR. + +------------------------------------------------------------------- +Tue Jul 5 02:31:46 UTC 2016 - arun@gmx.de + +- specfile: + * fixed source url + +------------------------------------------------------------------- @@ -7 +30,0 @@ - --- /work/SRC/openSUSE:Factory/python3-py/python3-py.changes 2016-05-17 17:11:24.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-py.new/python3-py.changes 2017-01-18 21:28:44.403465278 +0100 @@ -1,0 +2,20 @@ +Fri Jan 13 04:15:28 UTC 2017 - arun@gmx.de + +- specfile: + * update copyright year + * added CHANGELOG and AUTHORS + * README.txt -> README.rst + +- update to version 1.4.32: + * fix issue70: added ability to copy all stat info in + py.path.local.copy. + * make TerminalWriter.fullwidth a property. This results in the + correct value when the terminal gets resized. + * update supported html tags to include recent additions. Thanks + Denis Afonso for the PR. + * Remove internal code in "Source.compile" meant to support earlier + Python 3 versions that produced the side effect of leaving "None" + in "sys.modules" when called (see pytest-dev/pytest#2103). Thanks + Bruno Oliveira for the PR. + +------------------------------------------------------------------- @@ -7 +26,0 @@ - Old: ---- py-1.4.31.tar.gz New: ---- py-1.4.32.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-py-doc.spec ++++++ --- /var/tmp/diff_new_pack.Gp2mao/_old 2017-01-18 21:28:44.915392880 +0100 +++ /var/tmp/diff_new_pack.Gp2mao/_new 2017-01-18 21:28:44.915392880 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-py-doc # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,13 @@ Name: python3-py-doc -Version: 1.4.31 +Version: 1.4.32 Release: 0 Summary: Library with cross-python path, ini-parsing, io, code, log facilities License: MIT Group: Development/Languages/Python Url: http://pylib.readthedocs.org/ -Source: http://pypi.python.org/packages/source/p/py/py-%{version}.tar.gz +Source: https://files.pythonhosted.org/packages/source/p/py/py-%{version}.tar.gz BuildRequires: python3-Sphinx BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch ++++++ python3-py.spec ++++++ --- /var/tmp/diff_new_pack.Gp2mao/_old 2017-01-18 21:28:44.951387789 +0100 +++ /var/tmp/diff_new_pack.Gp2mao/_new 2017-01-18 21:28:44.959386659 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-py # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: python3-py -Version: 1.4.31 +Version: 1.4.32 Release: 0 Summary: Library with cross-python path, ini-parsing, io, code, log facilities License: MIT @@ -51,7 +51,7 @@ %files %defattr(-,root,root,-) -%doc LICENSE README.txt +%doc LICENSE README.rst CHANGELOG AUTHORS %{python3_sitelib}/* %changelog ++++++ py-1.4.31.tar.gz -> py-1.4.32.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/CHANGELOG new/py-1.4.32/CHANGELOG --- old/py-1.4.31/CHANGELOG 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/CHANGELOG 2016-12-16 16:33:43.000000000 +0100 @@ -1,3 +1,19 @@ + +1.4.32 +==================================================================== + +- fix issue70: added ability to copy all stat info in py.path.local.copy. + +- make TerminalWriter.fullwidth a property. This results in the correct + value when the terminal gets resized. + +- update supported html tags to include recent additions. + Thanks Denis Afonso for the PR. + +- Remove internal code in ``Source.compile`` meant to support earlier Python 3 versions that produced the side effect + of leaving ``None`` in ``sys.modules`` when called (see pytest-dev/pytest#2103). + Thanks Bruno Oliveira for the PR. + 1.4.31 ================================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/PKG-INFO new/py-1.4.32/PKG-INFO --- old/py-1.4.31/PKG-INFO 2015-11-27 21:48:12.000000000 +0100 +++ new/py-1.4.32/PKG-INFO 2016-12-16 17:05:32.000000000 +0100 @@ -1,32 +1,32 @@ Metadata-Version: 1.1 Name: py -Version: 1.4.31 +Version: 1.4.32 Summary: library with cross-python path, ini-parsing, io, code, log facilities Home-page: http://pylib.readthedocs.org/ Author: holger krekel, Ronny Pfannschmidt, Benjamin Peterson and others Author-email: pytest-dev@python.org License: MIT license -Description: .. image:: https://drone.io/bitbucket.org/pytest-dev/py/status.png - :target: https://drone.io/bitbucket.org/pytest-dev/py/latest - .. image:: https://pypip.in/v/py/badge.png - :target: https://pypi.python.org/pypi/py - - The py lib is a Python development support library featuring - the following tools and modules: - - * py.path: uniform local and svn path objects - * py.apipkg: explicit API control and lazy-importing - * py.iniconfig: easy parsing of .ini files - * py.code: dynamic code generation and introspection - - NOTE: prior to the 1.4 release this distribution used to - contain py.test which is now its own package, see http://pytest.org - - For questions and more information please visit http://pylib.readthedocs.org - - Bugs and issues: http://bitbucket.org/pytest-dev/py/issues/ - - Authors: Holger Krekel and others, 2004-2015 +Description: .. image:: https://img.shields.io/pypi/pyversions/pytest.svg + :target: https://pypi.org/project/py + .. image:: https://img.shields.io/travis/pytest-dev/py.svg + :target: https://travis-ci.org/pytest-dev/py + + The py lib is a Python development support library featuring + the following tools and modules: + + * ``py.path``: uniform local and svn path objects + * ``py.apipkg``: explicit API control and lazy-importing + * ``py.iniconfig``: easy parsing of .ini files + * ``py.code``: dynamic code generation and introspection + + NOTE: prior to the 1.4 release this distribution used to + contain py.test which is now its own package, see http://pytest.org + + For questions and more information please visit http://pylib.readthedocs.org + + Bugs and issues: https://github.com/pytest-dev/py + + Authors: Holger Krekel and others, 2004-2016 Platform: unix Platform: linux diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/README.rst new/py-1.4.32/README.rst --- old/py-1.4.31/README.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/py-1.4.32/README.rst 2016-12-16 16:32:49.000000000 +0100 @@ -0,0 +1,21 @@ +.. image:: https://img.shields.io/pypi/pyversions/pytest.svg + :target: https://pypi.org/project/py +.. image:: https://img.shields.io/travis/pytest-dev/py.svg + :target: https://travis-ci.org/pytest-dev/py + +The py lib is a Python development support library featuring +the following tools and modules: + +* ``py.path``: uniform local and svn path objects +* ``py.apipkg``: explicit API control and lazy-importing +* ``py.iniconfig``: easy parsing of .ini files +* ``py.code``: dynamic code generation and introspection + +NOTE: prior to the 1.4 release this distribution used to +contain py.test which is now its own package, see http://pytest.org + +For questions and more information please visit http://pylib.readthedocs.org + +Bugs and issues: https://github.com/pytest-dev/py + +Authors: Holger Krekel and others, 2004-2016 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/README.txt new/py-1.4.32/README.txt --- old/py-1.4.31/README.txt 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/README.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -.. image:: https://drone.io/bitbucket.org/pytest-dev/py/status.png - :target: https://drone.io/bitbucket.org/pytest-dev/py/latest -.. image:: https://pypip.in/v/py/badge.png - :target: https://pypi.python.org/pypi/py - -The py lib is a Python development support library featuring -the following tools and modules: - -* py.path: uniform local and svn path objects -* py.apipkg: explicit API control and lazy-importing -* py.iniconfig: easy parsing of .ini files -* py.code: dynamic code generation and introspection - -NOTE: prior to the 1.4 release this distribution used to -contain py.test which is now its own package, see http://pytest.org - -For questions and more information please visit http://pylib.readthedocs.org - -Bugs and issues: http://bitbucket.org/pytest-dev/py/issues/ - -Authors: Holger Krekel and others, 2004-2015 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/__init__.py new/py-1.4.32/py/__init__.py --- old/py-1.4.31/py/__init__.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/__init__.py 2016-12-16 16:37:11.000000000 +0100 @@ -8,7 +8,7 @@ (c) Holger Krekel and others, 2004-2014 """ -__version__ = '1.4.31' +__version__ = '1.4.32' from py import _apipkg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_code/source.py new/py-1.4.32/py/_code/source.py --- old/py-1.4.31/py/_code/source.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_code/source.py 2016-12-16 16:32:49.000000000 +0100 @@ -193,14 +193,6 @@ if flag & _AST_FLAG: return co lines = [(x + "\n") for x in self.lines] - if sys.version_info[0] >= 3: - # XXX py3's inspect.getsourcefile() checks for a module - # and a pep302 __loader__ ... we don't have a module - # at code compile-time so we need to fake it here - m = ModuleType("_pycodecompile_pseudo_module") - py.std.inspect.modulesbyfile[filename] = None - py.std.sys.modules[None] = m - m.__loader__ = 1 py.std.linecache.cache[filename] = (1, None, lines, filename) return co diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_error.py new/py-1.4.32/py/_error.py --- old/py-1.4.31/py/_error.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_error.py 2016-09-17 09:18:18.000000000 +0200 @@ -23,6 +23,7 @@ 2: errno.ENOENT, 3: errno.ENOENT, 17: errno.EEXIST, + 18: errno.EXDEV, 13: errno.EBUSY, # empty cd drive, but ENOMEDIUM seems unavailiable 22: errno.ENOTDIR, 20: errno.ENOTDIR, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_io/terminalwriter.py new/py-1.4.32/py/_io/terminalwriter.py --- old/py-1.4.31/py/_io/terminalwriter.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_io/terminalwriter.py 2016-12-16 16:32:49.000000000 +0100 @@ -137,10 +137,19 @@ file = colorama.AnsiToWin32(file).stream self.encoding = encoding or getattr(file, 'encoding', "utf-8") self._file = file - self.fullwidth = get_terminal_width() self.hasmarkup = should_do_markup(file) self._lastlen = 0 + @property + def fullwidth(self): + if hasattr(self, '_terminal_width'): + return self._terminal_width + return get_terminal_width() + + @fullwidth.setter + def fullwidth(self, value): + self._terminal_width = value + def _escaped(self, text, esc): if esc and self.hasmarkup: text = (''.join(['\x1b[%sm' % cod for cod in esc]) + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_path/common.py new/py-1.4.32/py/_path/common.py --- old/py-1.4.31/py/_path/common.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_path/common.py 2016-12-16 16:32:49.000000000 +0100 @@ -6,6 +6,40 @@ # Moved from local.py. iswin32 = sys.platform == "win32" or (getattr(os, '_name', False) == 'nt') +try: + from os import fspath +except ImportError: + def fspath(path): + """ + Return the string representation of the path. + If str or bytes is passed in, it is returned unchanged. + This code comes from PEP 519, modified to support earlier versions of + python. + + This is required for python < 3.6. + """ + if isinstance(path, (py.builtin.text, py.builtin.bytes)): + return path + + # Work from the object's type to match method resolution of other magic + # methods. + path_type = type(path) + try: + return path_type.__fspath__(path) + except AttributeError: + if hasattr(path_type, '__fspath__'): + raise + try: + import pathlib + except ImportError: + pass + else: + if isinstance(path, pathlib.PurePath): + return py.builtin.text(path) + + raise TypeError("expected str, bytes or os.PathLike object, not " + + path_type.__name__) + class Checkers: _depend_on_existence = 'exists', 'link', 'dir', 'file' @@ -89,7 +123,7 @@ Checkers = Checkers def __div__(self, other): - return self.join(str(other)) + return self.join(fspath(other)) __truediv__ = __div__ # py3k def basename(self): @@ -343,11 +377,14 @@ """ return True if other refers to the same stat object as self. """ return self.strpath == str(other) + def __fspath__(self): + return str(self) + class Visitor: def __init__(self, fil, rec, ignore, bf, sort): - if isinstance(fil, str): + if isinstance(fil, py.builtin._basestring): fil = FNMatcher(fil) - if isinstance(rec, str): + if isinstance(rec, py.builtin._basestring): self.rec = FNMatcher(rec) elif not hasattr(rec, '__call__') and rec: self.rec = lambda path: True @@ -400,4 +437,3 @@ if not os.path.isabs(pattern): pattern = '*' + path.sep + pattern return py.std.fnmatch.fnmatch(name, pattern) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_path/local.py new/py-1.4.32/py/_path/local.py --- old/py-1.4.31/py/_path/local.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_path/local.py 2016-09-17 09:18:18.000000000 +0200 @@ -7,7 +7,7 @@ import sys, os, re, atexit, io import py from py._path import common -from py._path.common import iswin32 +from py._path.common import iswin32, fspath from stat import S_ISLNK, S_ISDIR, S_ISREG from os.path import abspath, normpath, isabs, exists, isdir, isfile, islink, dirname @@ -147,22 +147,25 @@ """ if path is None: self.strpath = py.error.checked_call(os.getcwd) - elif isinstance(path, common.PathBase): - self.strpath = path.strpath - elif isinstance(path, py.builtin._basestring): + else: + try: + path = fspath(path) + except TypeError: + raise ValueError("can only pass None, Path instances " + "or non-empty strings to LocalPath") if expanduser: path = os.path.expanduser(path) self.strpath = abspath(path) - else: - raise ValueError("can only pass None, Path instances " - "or non-empty strings to LocalPath") def __hash__(self): return hash(self.strpath) def __eq__(self, other): - s1 = self.strpath - s2 = getattr(other, "strpath", other) + s1 = fspath(self) + try: + s2 = fspath(other) + except TypeError: + return False if iswin32: s1 = s1.lower() try: @@ -175,15 +178,15 @@ return not (self == other) def __lt__(self, other): - return self.strpath < getattr(other, "strpath", other) + return fspath(self) < fspath(other) def __gt__(self, other): - return self.strpath > getattr(other, "strpath", other) + return fspath(self) > fspath(other) def samefile(self, other): """ return True if 'other' references the same file as 'self'. """ - other = getattr(other, "strpath", other) + other = fspath(other) if not isabs(other): other = abspath(other) if self == other: @@ -320,7 +323,7 @@ of the args is an absolute path. """ sep = self.sep - strargs = [getattr(arg, "strpath", arg) for arg in args] + strargs = [fspath(arg) for arg in args] strpath = self.strpath if kwargs.get('abs'): newargs = [] @@ -402,8 +405,13 @@ """ return last modification time of the path. """ return self.stat().mtime - def copy(self, target, mode=False): - """ copy path to target.""" + def copy(self, target, mode=False, stat=False): + """ copy path to target. + + If mode is True, will copy copy permission from path to target. + If stat is True, copy permission, last modification + time, last access time, and flags from path to target. + """ if self.check(file=1): if target.check(dir=1): target = target.join(self.basename) @@ -411,6 +419,8 @@ copychunked(self, target) if mode: copymode(self.strpath, target.strpath) + if stat: + copystat(self, target) else: def rec(p): return p.check(link=0) @@ -427,10 +437,12 @@ newx.ensure(dir=1) if mode: copymode(x.strpath, newx.strpath) + if stat: + copystat(x, newx) def rename(self, target): """ rename this path to target. """ - target = getattr(target, "strpath", target) + target = fspath(target) return py.error.checked_call(os.rename, self.strpath, target) def dump(self, obj, bin=1): @@ -444,7 +456,7 @@ def mkdir(self, *args): """ create & return the directory joined with args. """ p = self.join(*args) - py.error.checked_call(os.mkdir, getattr(p, "strpath", p)) + py.error.checked_call(os.mkdir, fspath(p)) return p def write_binary(self, data, ensure=False): @@ -887,8 +899,13 @@ make_numbered_dir = classmethod(make_numbered_dir) def copymode(src, dest): + """ copy permission from src to dst. """ py.std.shutil.copymode(src, dest) +def copystat(src, dest): + """ copy permission, last modification time, last access time, and flags from src to dst.""" + py.std.shutil.copystat(str(src), str(dest)) + def copychunked(src, dest): chunksize = 524288 # half a meg of bytes fsrc = src.open('rb') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py/_xmlgen.py new/py-1.4.32/py/_xmlgen.py --- old/py-1.4.31/py/_xmlgen.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/py/_xmlgen.py 2016-12-16 16:32:49.000000000 +0100 @@ -74,16 +74,18 @@ __tagclass__ = HtmlTag __stickyname__ = True __tagspec__ = dict([(x,1) for x in ( - 'a,abbr,acronym,address,applet,area,b,bdo,big,blink,' - 'blockquote,body,br,button,caption,center,cite,code,col,' - 'colgroup,comment,dd,del,dfn,dir,div,dl,dt,em,embed,' - 'fieldset,font,form,frameset,h1,h2,h3,h4,h5,h6,head,html,' - 'i,iframe,img,input,ins,kbd,label,legend,li,link,listing,' - 'map,marquee,menu,meta,multicol,nobr,noembed,noframes,' - 'noscript,object,ol,optgroup,option,p,pre,q,s,script,' - 'select,small,span,strike,strong,style,sub,sup,table,' - 'tbody,td,textarea,tfoot,th,thead,title,tr,tt,u,ul,xmp,' - 'base,basefont,frame,hr,isindex,param,samp,var' + 'a,abbr,acronym,address,applet,area,article,aside,audio,b,' + 'base,basefont,bdi,bdo,big,blink,blockquote,body,br,button,' + 'canvas,caption,center,cite,code,col,colgroup,command,comment,' + 'datalist,dd,del,details,dfn,dir,div,dl,dt,em,embed,' + 'fieldset,figcaption,figure,footer,font,form,frame,frameset,h1,' + 'h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,img,input,' + 'ins,isindex,kbd,keygen,label,legend,li,link,listing,map,mark,' + 'marquee,menu,meta,meter,multicol,nav,nobr,noembed,noframes,' + 'noscript,object,ol,optgroup,option,output,p,param,pre,progress,' + 'q,rp,rt,ruby,s,samp,script,section,select,small,source,span,' + 'strike,strong,style,sub,summary,sup,table,tbody,td,textarea,' + 'tfoot,th,thead,time,title,tr,track,tt,u,ul,xmp,var,video,wbr' ).split(',') if x]) class Style(object): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py.egg-info/PKG-INFO new/py-1.4.32/py.egg-info/PKG-INFO --- old/py-1.4.31/py.egg-info/PKG-INFO 2015-11-27 21:48:12.000000000 +0100 +++ new/py-1.4.32/py.egg-info/PKG-INFO 2016-12-16 17:05:32.000000000 +0100 @@ -1,32 +1,32 @@ Metadata-Version: 1.1 Name: py -Version: 1.4.31 +Version: 1.4.32 Summary: library with cross-python path, ini-parsing, io, code, log facilities Home-page: http://pylib.readthedocs.org/ Author: holger krekel, Ronny Pfannschmidt, Benjamin Peterson and others Author-email: pytest-dev@python.org License: MIT license -Description: .. image:: https://drone.io/bitbucket.org/pytest-dev/py/status.png - :target: https://drone.io/bitbucket.org/pytest-dev/py/latest - .. image:: https://pypip.in/v/py/badge.png - :target: https://pypi.python.org/pypi/py - - The py lib is a Python development support library featuring - the following tools and modules: - - * py.path: uniform local and svn path objects - * py.apipkg: explicit API control and lazy-importing - * py.iniconfig: easy parsing of .ini files - * py.code: dynamic code generation and introspection - - NOTE: prior to the 1.4 release this distribution used to - contain py.test which is now its own package, see http://pytest.org - - For questions and more information please visit http://pylib.readthedocs.org - - Bugs and issues: http://bitbucket.org/pytest-dev/py/issues/ - - Authors: Holger Krekel and others, 2004-2015 +Description: .. image:: https://img.shields.io/pypi/pyversions/pytest.svg + :target: https://pypi.org/project/py + .. image:: https://img.shields.io/travis/pytest-dev/py.svg + :target: https://travis-ci.org/pytest-dev/py + + The py lib is a Python development support library featuring + the following tools and modules: + + * ``py.path``: uniform local and svn path objects + * ``py.apipkg``: explicit API control and lazy-importing + * ``py.iniconfig``: easy parsing of .ini files + * ``py.code``: dynamic code generation and introspection + + NOTE: prior to the 1.4 release this distribution used to + contain py.test which is now its own package, see http://pytest.org + + For questions and more information please visit http://pylib.readthedocs.org + + Bugs and issues: https://github.com/pytest-dev/py + + Authors: Holger Krekel and others, 2004-2016 Platform: unix Platform: linux diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/py.egg-info/SOURCES.txt new/py-1.4.32/py.egg-info/SOURCES.txt --- old/py-1.4.31/py.egg-info/SOURCES.txt 2015-11-27 21:48:12.000000000 +0100 +++ new/py-1.4.32/py.egg-info/SOURCES.txt 2016-12-16 17:05:32.000000000 +0100 @@ -2,7 +2,7 @@ CHANGELOG LICENSE MANIFEST.in -README.txt +README.rst conftest.py setup.cfg setup.py @@ -83,34 +83,106 @@ py/_process/forkedfunc.py py/_process/killproc.py testing/conftest.py +testing/conftest.pyc testing/test_iniconfig.py +testing/__pycache__/conftest.cpython-27-PYTEST.pyc +testing/__pycache__/conftest.cpython-35-PYTEST.pyc +testing/__pycache__/conftest.cpython-35.pyc +testing/__pycache__/test_iniconfig.cpython-27-PYTEST.pyc +testing/__pycache__/test_iniconfig.cpython-35-PYTEST.pyc testing/code/test_assertion.py testing/code/test_code.py testing/code/test_excinfo.py testing/code/test_source.py +testing/code/__pycache__/test_assertion.cpython-27-PYTEST.pyc +testing/code/__pycache__/test_assertion.cpython-35-PYTEST.pyc +testing/code/__pycache__/test_code.cpython-27-PYTEST.pyc +testing/code/__pycache__/test_code.cpython-35-PYTEST.pyc +testing/code/__pycache__/test_excinfo.cpython-27-PYTEST.pyc +testing/code/__pycache__/test_excinfo.cpython-35-PYTEST.pyc +testing/code/__pycache__/test_source.cpython-27-PYTEST.pyc +testing/code/__pycache__/test_source.cpython-35-PYTEST.pyc testing/io_/__init__.py +testing/io_/__init__.pyc testing/io_/test_capture.py testing/io_/test_saferepr.py testing/io_/test_terminalwriter.py +testing/io_/__pycache__/__init__.cpython-35.pyc +testing/io_/__pycache__/test_capture.cpython-27-PYTEST.pyc +testing/io_/__pycache__/test_capture.cpython-35-PYTEST.pyc +testing/io_/__pycache__/test_saferepr.cpython-27-PYTEST.pyc +testing/io_/__pycache__/test_saferepr.cpython-35-PYTEST.pyc +testing/io_/__pycache__/test_terminalwriter.cpython-27-PYTEST.pyc +testing/io_/__pycache__/test_terminalwriter.cpython-35-PYTEST.pyc testing/log/__init__.py +testing/log/__init__.pyc testing/log/test_log.py testing/log/test_warning.py +testing/log/__pycache__/__init__.cpython-35.pyc +testing/log/__pycache__/test_log.cpython-27-PYTEST.pyc +testing/log/__pycache__/test_log.cpython-35-PYTEST.pyc +testing/log/__pycache__/test_warning.cpython-27-PYTEST.pyc +testing/log/__pycache__/test_warning.cpython-35-PYTEST.pyc +testing/path/__init__.pyc testing/path/common.py +testing/path/common.pyc testing/path/conftest.py +testing/path/conftest.pyc testing/path/repotest.dump testing/path/svntestbase.py +testing/path/svntestbase.pyc testing/path/test_cacheutil.py testing/path/test_local.py testing/path/test_svnauth.py testing/path/test_svnurl.py testing/path/test_svnwc.py +testing/path/__pycache__/__init__.cpython-35.pyc +testing/path/__pycache__/common.cpython-27-PYTEST.pyc +testing/path/__pycache__/common.cpython-35-PYTEST.pyc +testing/path/__pycache__/common.cpython-35.pyc +testing/path/__pycache__/conftest.cpython-27-PYTEST.pyc +testing/path/__pycache__/conftest.cpython-35-PYTEST.pyc +testing/path/__pycache__/conftest.cpython-35.pyc +testing/path/__pycache__/svntestbase.cpython-27-PYTEST.pyc +testing/path/__pycache__/svntestbase.cpython-35-PYTEST.pyc +testing/path/__pycache__/svntestbase.cpython-35.pyc +testing/path/__pycache__/test_cacheutil.cpython-27-PYTEST.pyc +testing/path/__pycache__/test_cacheutil.cpython-35-PYTEST.pyc +testing/path/__pycache__/test_local.cpython-27-PYTEST.pyc +testing/path/__pycache__/test_local.cpython-35-PYTEST.pyc +testing/path/__pycache__/test_svnauth.cpython-27-PYTEST.pyc +testing/path/__pycache__/test_svnauth.cpython-35-PYTEST.pyc +testing/path/__pycache__/test_svnurl.cpython-27-PYTEST.pyc +testing/path/__pycache__/test_svnurl.cpython-35-PYTEST.pyc +testing/path/__pycache__/test_svnwc.cpython-27-PYTEST.pyc +testing/path/__pycache__/test_svnwc.cpython-35-PYTEST.pyc testing/process/__init__.py +testing/process/__init__.pyc testing/process/test_cmdexec.py testing/process/test_forkedfunc.py testing/process/test_killproc.py +testing/process/__pycache__/__init__.cpython-35.pyc +testing/process/__pycache__/test_cmdexec.cpython-27-PYTEST.pyc +testing/process/__pycache__/test_cmdexec.cpython-35-PYTEST.pyc +testing/process/__pycache__/test_forkedfunc.cpython-27-PYTEST.pyc +testing/process/__pycache__/test_forkedfunc.cpython-35-PYTEST.pyc +testing/process/__pycache__/test_killproc.cpython-27-PYTEST.pyc +testing/process/__pycache__/test_killproc.cpython-35-PYTEST.pyc testing/root/__init__.py +testing/root/__init__.pyc testing/root/test_builtin.py testing/root/test_error.py testing/root/test_py_imports.py testing/root/test_std.py -testing/root/test_xmlgen.py \ No newline at end of file +testing/root/test_xmlgen.py +testing/root/__pycache__/__init__.cpython-35.pyc +testing/root/__pycache__/test_builtin.cpython-27-PYTEST.pyc +testing/root/__pycache__/test_builtin.cpython-35-PYTEST.pyc +testing/root/__pycache__/test_error.cpython-27-PYTEST.pyc +testing/root/__pycache__/test_error.cpython-35-PYTEST.pyc +testing/root/__pycache__/test_py_imports.cpython-27-PYTEST.pyc +testing/root/__pycache__/test_py_imports.cpython-35-PYTEST.pyc +testing/root/__pycache__/test_std.cpython-27-PYTEST.pyc +testing/root/__pycache__/test_std.cpython-35-PYTEST.pyc +testing/root/__pycache__/test_xmlgen.cpython-27-PYTEST.pyc +testing/root/__pycache__/test_xmlgen.cpython-35-PYTEST.pyc \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/setup.py new/py-1.4.32/setup.py --- old/py-1.4.31/setup.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/setup.py 2016-12-16 17:00:32.000000000 +0100 @@ -1,13 +1,25 @@ -import os, sys +import os +import sys from setuptools import setup + +def get_version(): + p = os.path.join(os.path.dirname( + os.path.abspath(__file__)), "py", "__init__.py") + with open(p) as f: + for line in f.readlines(): + if "__version__" in line: + return line.strip().split("=")[-1].strip(" '") + raise ValueError("could not read version") + + def main(): setup( name='py', description='library with cross-python path, ini-parsing, io, code, log facilities', - long_description = open('README.txt').read(), - version='1.4.31', + long_description=open('README.rst').read(), + version=get_version(), url='http://pylib.readthedocs.org/', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], Binary files old/py-1.4.31/testing/__pycache__/conftest.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/__pycache__/conftest.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/__pycache__/conftest.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/__pycache__/conftest.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/__pycache__/conftest.cpython-35.pyc and new/py-1.4.32/testing/__pycache__/conftest.cpython-35.pyc differ Binary files old/py-1.4.31/testing/__pycache__/test_iniconfig.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/__pycache__/test_iniconfig.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/__pycache__/test_iniconfig.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/__pycache__/test_iniconfig.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_assertion.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_assertion.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_assertion.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_assertion.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_code.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_code.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_code.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_code.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_excinfo.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_excinfo.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_excinfo.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_excinfo.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_source.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_source.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/code/__pycache__/test_source.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/code/__pycache__/test_source.cpython-35-PYTEST.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/testing/code/test_excinfo.py new/py-1.4.32/testing/code/test_excinfo.py --- old/py-1.4.31/testing/code/test_excinfo.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/testing/code/test_excinfo.py 2016-09-22 09:34:20.000000000 +0200 @@ -600,7 +600,10 @@ def entry(): func1() """) - excinfo = py.test.raises(ValueError, mod.entry) + try: + mod.entry() + except ValueError: + excinfo = py.code.ExceptionInfo() from py._code.code import Code monkeypatch.setattr(Code, 'path', 'bogus') excinfo.traceback[0].frame.code.path = "bogus" @@ -720,7 +723,10 @@ def entry(): f(0) """) - excinfo = py.test.raises(ValueError, mod.entry) + try: + mod.entry() + except ValueError: + excinfo = py.code.ExceptionInfo() for style in ("short", "long", "no"): for showlocals in (True, False): Binary files old/py-1.4.31/testing/conftest.pyc and new/py-1.4.32/testing/conftest.pyc differ Binary files old/py-1.4.31/testing/io_/__init__.pyc and new/py-1.4.32/testing/io_/__init__.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/__init__.cpython-35.pyc and new/py-1.4.32/testing/io_/__pycache__/__init__.cpython-35.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_capture.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_capture.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_capture.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_capture.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_saferepr.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_saferepr.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_saferepr.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_saferepr.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_terminalwriter.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_terminalwriter.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/io_/__pycache__/test_terminalwriter.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/io_/__pycache__/test_terminalwriter.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/log/__init__.pyc and new/py-1.4.32/testing/log/__init__.pyc differ Binary files old/py-1.4.31/testing/log/__pycache__/__init__.cpython-35.pyc and new/py-1.4.32/testing/log/__pycache__/__init__.cpython-35.pyc differ Binary files old/py-1.4.31/testing/log/__pycache__/test_log.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/log/__pycache__/test_log.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/log/__pycache__/test_log.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/log/__pycache__/test_log.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/log/__pycache__/test_warning.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/log/__pycache__/test_warning.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/log/__pycache__/test_warning.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/log/__pycache__/test_warning.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__init__.pyc and new/py-1.4.32/testing/path/__init__.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/__init__.cpython-35.pyc and new/py-1.4.32/testing/path/__pycache__/__init__.cpython-35.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/common.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/common.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/common.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/common.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/common.cpython-35.pyc and new/py-1.4.32/testing/path/__pycache__/common.cpython-35.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/conftest.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/conftest.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/conftest.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/conftest.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/conftest.cpython-35.pyc and new/py-1.4.32/testing/path/__pycache__/conftest.cpython-35.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/svntestbase.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/svntestbase.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/svntestbase.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/svntestbase.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/svntestbase.cpython-35.pyc and new/py-1.4.32/testing/path/__pycache__/svntestbase.cpython-35.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_cacheutil.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_cacheutil.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_cacheutil.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_cacheutil.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_local.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_local.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_local.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_local.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnauth.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnauth.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnauth.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnauth.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnurl.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnurl.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnurl.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnurl.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnwc.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnwc.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/path/__pycache__/test_svnwc.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/path/__pycache__/test_svnwc.cpython-35-PYTEST.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/testing/path/common.py new/py-1.4.32/testing/path/common.py --- old/py-1.4.31/testing/path/common.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/testing/path/common.py 2016-12-16 16:32:49.000000000 +0100 @@ -1,6 +1,8 @@ import py import sys +import pytest + class CommonFSTests(object): def test_constructor_equality(self, path1): p = path1.__class__(path1) @@ -186,9 +188,12 @@ assert "sampledir" in l assert not path1.sep.join(["sampledir", "otherfile"]) in l - def test_visit_filterfunc_is_string(self, path1): + @pytest.mark.parametrize('fil', ['*dir', u'*dir', + pytest.mark.skip("sys.version_info <" + " (3,6)")(b'*dir')]) + def test_visit_filterfunc_is_string(self, path1, fil): l = [] - for i in path1.visit('*dir'): + for i in path1.visit(fil): l.append(i.relto(path1)) assert len(l), 2 assert "sampledir" in l @@ -429,6 +434,26 @@ assert dest.join('otherfile').check(file=1) assert not source.join('sampledir').check() + def test_fspath_protocol_match_strpath(self, path1): + assert path1.__fspath__() == path1.strpath + + def test_fspath_func_match_strpath(self, path1): + try: + from os import fspath + except ImportError: + from py._path.common import fspath + assert fspath(path1) == path1.strpath + + @py.test.mark.skip("sys.version_info < (3,6)") + def test_fspath_open(self, path1): + f = path1.join('opentestfile') + open(f) + + @py.test.mark.skip("sys.version_info < (3,6)") + def test_fspath_fsencode(self, path1): + from os import fsencode + assert fsencode(path1) == fsencode(path1.strpath) + def setuptestfs(path): if path.join('samplefile').check(): return Binary files old/py-1.4.31/testing/path/common.pyc and new/py-1.4.32/testing/path/common.pyc differ Binary files old/py-1.4.31/testing/path/conftest.pyc and new/py-1.4.32/testing/path/conftest.pyc differ Binary files old/py-1.4.31/testing/path/svntestbase.pyc and new/py-1.4.32/testing/path/svntestbase.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/testing/path/test_local.py new/py-1.4.32/testing/path/test_local.py --- old/py-1.4.31/testing/path/test_local.py 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/testing/path/test_local.py 2016-12-16 16:32:49.000000000 +0100 @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import with_statement +import time import py import pytest import os, sys @@ -15,6 +16,8 @@ skiponwin32 = py.test.mark.skipif( "sys.platform == 'win32' or getattr(os, '_name', None) == 'nt'") +ATIME_RESOLUTION = 0.01 + def pytest_funcarg__path1(request): def setup(): @@ -26,6 +29,14 @@ assert path1.join("samplefile").check() return request.cached_setup(setup, teardown, scope="session") +def pytest_funcarg__fake_fspath_obj(request): + class FakeFSPathClass(object): + def __init__(self, path): + self._path = path + def __fspath__(self): + return self._path + return FakeFSPathClass("this/is/a/fake/path") + class TestLocalPath(common.CommonFSTests): def test_join_normpath(self, tmpdir): assert tmpdir.join(".") == tmpdir @@ -298,6 +309,14 @@ x2 = py.path.local.sysfind(name, paths=[x.dirpath()]) assert x2 == x + def test_fspath_protocol_other_class(self, fake_fspath_obj): + # py.path is always absolute + py_path = py.path.local(fake_fspath_obj) + str_path = fake_fspath_obj.__fspath__() + assert py_path.check(endswith=str_path) + assert py_path.join(fake_fspath_obj).strpath == os.path.join( + py_path.strpath, str_path) + class TestExecutionOnWindows: pytestmark = win32only @@ -716,9 +735,9 @@ # we could wait here but timer resolution is very # system dependent path.read() - time.sleep(0.01) + time.sleep(ATIME_RESOLUTION) atime2 = path.atime() - time.sleep(0.01) + time.sleep(ATIME_RESOLUTION) duration = time.time() - now assert (atime2-atime1) <= duration @@ -781,6 +800,34 @@ a.copy(b, mode=True) assert b.join(f.basename).stat().mode == newmode + def test_copy_stat_file(self, tmpdir): + src = tmpdir.ensure('src') + dst = tmpdir.join('dst') + # a small delay before the copy + time.sleep(ATIME_RESOLUTION) + src.copy(dst, stat=True) + oldstat = src.stat() + newstat = dst.stat() + assert oldstat.mode == newstat.mode + assert (dst.atime() - src.atime()) < ATIME_RESOLUTION + assert (dst.mtime() - src.mtime()) < ATIME_RESOLUTION + + def test_copy_stat_dir(self, tmpdir): + test_files = ['a', 'b', 'c'] + src = tmpdir.join('src') + for f in test_files: + src.join(f).write(f, ensure=True) + dst = tmpdir.join('dst') + # a small delay before the copy + time.sleep(ATIME_RESOLUTION) + src.copy(dst, stat=True) + for f in test_files: + oldstat = src.join(f).stat() + newstat = dst.join(f).stat() + assert (newstat.atime - oldstat.atime) < ATIME_RESOLUTION + assert (newstat.mtime - oldstat.mtime) < ATIME_RESOLUTION + assert oldstat.mode == newstat.mode + @failsonjython def test_chown_identity(self, path1): owner = path1.stat().owner Binary files old/py-1.4.31/testing/process/__init__.pyc and new/py-1.4.32/testing/process/__init__.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/__init__.cpython-35.pyc and new/py-1.4.32/testing/process/__pycache__/__init__.cpython-35.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_cmdexec.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_cmdexec.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_cmdexec.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_cmdexec.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_forkedfunc.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_forkedfunc.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_forkedfunc.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_forkedfunc.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_killproc.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_killproc.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/process/__pycache__/test_killproc.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/process/__pycache__/test_killproc.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__init__.pyc and new/py-1.4.32/testing/root/__init__.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/__init__.cpython-35.pyc and new/py-1.4.32/testing/root/__pycache__/__init__.cpython-35.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_builtin.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_builtin.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_builtin.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_builtin.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_error.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_error.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_error.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_error.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_py_imports.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_py_imports.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_py_imports.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_py_imports.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_std.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_std.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_std.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_std.cpython-35-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_xmlgen.cpython-27-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_xmlgen.cpython-27-PYTEST.pyc differ Binary files old/py-1.4.31/testing/root/__pycache__/test_xmlgen.cpython-35-PYTEST.pyc and new/py-1.4.32/testing/root/__pycache__/test_xmlgen.cpython-35-PYTEST.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py-1.4.31/tox.ini new/py-1.4.32/tox.ini --- old/py-1.4.31/tox.ini 2015-11-27 21:48:11.000000000 +0100 +++ new/py-1.4.32/tox.ini 2016-12-16 16:32:49.000000000 +0100 @@ -1,5 +1,5 @@ [tox] -envlist=py26,py27,py33,py34,external +envlist=py26,py27,py33,py34,py35,external # py27-xdist causes problems with svn, py25 requires virtualenv==1.9.1 #indexserver= # default=http://pypi.testrun.org @@ -7,12 +7,12 @@ [testenv] changedir=testing commands=py.test --confcutdir=.. -rfsxX --junitxml={envlogdir}/junit-{envname}.xml [] -deps=pytest +deps=pytest~=2.9.0 [testenv:py27-xdist] basepython=python2.7 deps= - pytest + pytest~=2.9.0 pytest-xdist commands= py.test -n3 -rfsxX --confcutdir=.. --runslowtests \
participants (1)
-
root@hilbertn.suse.de