Hello community,

here is the log from the commit of package python-py for openSUSE:Factory 
checked in at 2014-10-01 07:40:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-py (Old)
 and      /work/SRC/openSUSE:Factory/.python-py.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-py"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-py/python-py.changes      2014-07-31 
10:04:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-py.new/python-py.changes 2014-10-01 
07:40:13.000000000 +0200
@@ -1,0 +2,28 @@
+Sat Sep 27 17:35:17 UTC 2014 - dmuel...@suse.com
+
+- update to 1.4.25:
+  - fix issue52: vaguely fix py25 compat of py.path.local (it's not
+  officially supported), also fix docs
+  - fix pytest issue 589: when checking if we have a recursion error
+  check for the specific "maximum recursion depth" text of the exception.
+- update to 1.4.24:
+  - Fix retrieving source when an else: line has an other statement on
+  the same line.
+  - add localpath read_text/write_text/read_bytes/write_bytes methods
+  as shortcuts and clearer bytes/text interfaces for read/write.
+  Adapted from a PR from Paul Moore.
+- update to 1.4.23:
+  - use newer apipkg version which makes attribute access on
+   alias modules resolve to None rather than an ImportError.
+   This helps with code that uses inspect.getframeinfo()
+   on py34 which causes a complete walk on sys.modules
+   thus triggering the alias module to resolve and blowing
+   up with ImportError.  The negative side is that something
+   like "py.test.X" will now result in None instead of "importerror: pytest"
+   if pytest is not installed.  But you shouldn't import "py.test" 
+   anyway anymore.
+ - adapt one svn test to only check for any exception instead 
+   of specific ones because different svn versions cause different
+   errors and we don't care.
+
+-------------------------------------------------------------------

Old:
----
  py-1.4.22.tar.gz

New:
----
  py-1.4.25.tar.gz

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

Other differences:
------------------
++++++ python-py.spec ++++++
--- /var/tmp/diff_new_pack.KvdJov/_old  2014-10-01 07:40:14.000000000 +0200
+++ /var/tmp/diff_new_pack.KvdJov/_new  2014-10-01 07:40:14.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-py
-Version:        1.4.22
+Version:        1.4.25
 Release:        0
 Summary:        Library with cross-python path, ini-parsing, io, code, log 
facilities
 License:        MIT

++++++ py-1.4.22.tar.gz -> py-1.4.25.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/CHANGELOG new/py-1.4.25/CHANGELOG
--- old/py-1.4.22/CHANGELOG     2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/CHANGELOG     2014-09-24 13:39:53.000000000 +0200
@@ -1,3 +1,41 @@
+1.4.25
+==================================================
+
+- fix issue52: vaguely fix py25 compat of py.path.local (it's not
+  officially supported), also fix docs
+
+- fix pytest issue 589: when checking if we have a recursion error
+  check for the specific "maximum recursion depth" text of the exception.
+
+1.4.24
+==================================================
+
+- Fix retrieving source when an else: line has an other statement on
+  the same line.
+
+- add localpath read_text/write_text/read_bytes/write_bytes methods
+  as shortcuts and clearer bytes/text interfaces for read/write.
+  Adapted from a PR from Paul Moore.
+
+
+1.4.23
+==================================================
+
+- use newer apipkg version which makes attribute access on
+  alias modules resolve to None rather than an ImportError.
+  This helps with code that uses inspect.getframeinfo()
+  on py34 which causes a complete walk on sys.modules
+  thus triggering the alias module to resolve and blowing
+  up with ImportError.  The negative side is that something
+  like "py.test.X" will now result in None instead of "importerror: pytest"
+  if pytest is not installed.  But you shouldn't import "py.test" 
+  anyway anymore.
+
+- adapt one svn test to only check for any exception instead 
+  of specific ones because different svn versions cause different
+  errors and we don't care.
+
+
 1.4.22
 ==================================================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/PKG-INFO new/py-1.4.25/PKG-INFO
--- old/py-1.4.22/PKG-INFO      2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/PKG-INFO      2014-09-24 13:39:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: py
-Version: 1.4.22
+Version: 1.4.25
 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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/doc/install.txt 
new/py-1.4.25/doc/install.txt
--- old/py-1.4.22/doc/install.txt       2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/doc/install.txt       2014-09-24 13:39:53.000000000 +0200
@@ -7,7 +7,7 @@
 
 **PyPI name**: py_
 
-**Pythons**: 2.5, 2.6, 2.7, 3.2, 3.3, Jython-2.5.1, PyPy-2.0
+**Pythons**: CPython 2.6, 2.7, 3.3, 3.4, PyPy-2.3
 
 **Operating systems**: Linux, Windows, OSX, Unix
 
@@ -29,7 +29,7 @@
 will trigger an upgrade if you already have an older version installed.
 
 .. note::
-    
+
    As of version 1.4 py does not contain py.test anymore - you
    need to install the new `pytest`_ distribution.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/__init__.py new/py-1.4.25/py/__init__.py
--- old/py-1.4.22/py/__init__.py        2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/__init__.py        2014-09-24 13:39:53.000000000 +0200
@@ -6,9 +6,9 @@
 name->value mappings where value can be another namespace
 dictionary or an import path.
 
-(c) Holger Krekel and others, 2004-2013
+(c) Holger Krekel and others, 2004-2014
 """
-__version__ = '1.4.22'
+__version__ = '1.4.25'
 
 from py import _apipkg
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/_apipkg.py new/py-1.4.25/py/_apipkg.py
--- old/py-1.4.22/py/_apipkg.py 2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/_apipkg.py 2014-09-24 13:39:53.000000000 +0200
@@ -17,6 +17,7 @@
     that will leave paths from jython jars alone
     """
     if path.startswith('__pyclasspath__'):
+
         return path
     else:
         return os.path.abspath(path)
@@ -41,7 +42,7 @@
     if hasattr(oldmod, "__dict__"):
         oldmod.__dict__.update(d)
     mod = ApiModule(pkgname, exportdefs, implprefix=pkgname, attr=d)
-    sys.modules[pkgname]  = mod
+    sys.modules[pkgname] = mod
 
 def importobj(modpath, attrname):
     module = __import__(modpath, None, None, ['__doc__'])
@@ -72,11 +73,11 @@
         self.__implprefix__ = implprefix or name
         if attr:
             for name, val in attr.items():
-                #print "setting", self.__name__, name, val
+                # print "setting", self.__name__, name, val
                 setattr(self, name, val)
         for name, importspec in importspec.items():
             if isinstance(importspec, dict):
-                subname = '%s.%s'%(self.__name__, name)
+                subname = '%s.%s' % (self.__name__, name)
                 apimod = ApiModule(subname, importspec, implprefix)
                 sys.modules[subname] = apimod
                 setattr(self, name, apimod)
@@ -88,7 +89,7 @@
                     modpath = implprefix + modpath
 
                 if not attrname:
-                    subname = '%s.%s'%(self.__name__, name)
+                    subname = '%s.%s' % (self.__name__, name)
                     apimod = AliasModule(subname, modpath)
                     sys.modules[subname] = apimod
                     if '.' not in name:
@@ -108,7 +109,7 @@
 
     def __makeattr(self, name):
         """lazily compute value for name or raise AttributeError if unknown."""
-        #print "makeattr", self.__name__, name
+        # print "makeattr", self.__name__, name
         target = None
         if '__onfirstaccess__' in self.__map__:
             target = self.__map__.pop('__onfirstaccess__')
@@ -126,7 +127,7 @@
             try:
                 del self.__map__[name]
             except KeyError:
-                pass # in a recursive-import situation a double-del can happen
+                pass  # in a recursive-import situation a double-del can happen
             return result
 
     __getattr__ = __makeattr
@@ -166,7 +167,10 @@
             return '<AliasModule %r for %r>' % (modname, x)
 
         def __getattribute__(self, name):
-            return getattr(getmod(), name)
+            try:
+                return getattr(getmod(), name)
+            except ImportError:
+                return None
 
         def __setattr__(self, name, value):
             setattr(getmod(), name, value)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/_code/code.py 
new/py-1.4.25/py/_code/code.py
--- old/py-1.4.22/py/_code/code.py      2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/_code/code.py      2014-09-24 13:39:53.000000000 +0200
@@ -572,7 +572,8 @@
             traceback = traceback.filter()
         recursionindex = None
         if excinfo.errisinstance(RuntimeError):
-            recursionindex = traceback.recursionindex()
+            if "maximum recursion depth exceeded" in str(excinfo.value):
+                recursionindex = traceback.recursionindex()
         last = traceback[-1]
         entries = []
         extraline = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/_code/source.py 
new/py-1.4.25/py/_code/source.py
--- old/py-1.4.22/py/_code/source.py    2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/_code/source.py    2014-09-24 13:39:53.000000000 +0200
@@ -377,8 +377,10 @@
         end = len(source.lines)
     while end:
         line = source.lines[end-1].lstrip()
-        if (not line or line.startswith("#") or line.startswith("else:") or
-            line.startswith("finally:")):
+        if (not line
+                or line.startswith("#")
+                or line.replace(" ", "") == "else:"
+                or line.replace(" ", "") == "finally:"):
             end -= 1
         else:
             break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/_path/common.py 
new/py-1.4.25/py/_path/common.py
--- old/py-1.4.22/py/_path/common.py    2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/_path/common.py    2014-09-24 13:39:53.000000000 +0200
@@ -115,17 +115,21 @@
         """
         return self.new(basename='').join(*args, **kwargs)
 
+    def read_binary(self):
+        """ read and return a bytestring from reading the path. """
+        with self.open('rb') as f:
+            return f.read()
+
+    def read_text(self, encoding):
+        """ read and return a Unicode string from reading the path. """
+        with self.open("r", encoding=encoding) as f:
+            return f.read()
+
+
     def read(self, mode='r'):
         """ read and return a bytestring from reading the path. """
-        if sys.version_info < (2,3):
-            for x in 'u', 'U':
-                if x in mode:
-                    mode = mode.replace(x, '')
-        f = self.open(mode)
-        try:
+        with self.open(mode) as f:
             return f.read()
-        finally:
-            f.close()
 
     def readlines(self, cr=1):
         """ read and return a list of lines from the path. if cr is False, the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py/_path/local.py 
new/py-1.4.25/py/_path/local.py
--- old/py-1.4.22/py/_path/local.py     2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py/_path/local.py     2014-09-24 13:39:53.000000000 +0200
@@ -1,8 +1,10 @@
 """
 local path implementation.
 """
+from __future__ import with_statement
+
 from contextlib import contextmanager
-import sys, os, re, atexit
+import sys, os, re, atexit, io
 import py
 from py._path import common
 from stat import S_ISLNK, S_ISDIR, S_ISREG
@@ -330,13 +332,15 @@
         obj.strpath = normpath(strpath)
         return obj
 
-    def open(self, mode='r', ensure=False):
+    def open(self, mode='r', ensure=False, encoding=None):
         """ return an opened file with the given mode.
 
         If ensure is True, create parent directories if needed.
         """
         if ensure:
             self.dirpath().ensure(dir=1)
+        if encoding:
+            return py.error.checked_call(io.open, self.strpath, mode, 
encoding=encoding)
         return py.error.checked_call(open, self.strpath, mode)
 
     def _fastjoin(self, name):
@@ -434,6 +438,24 @@
         py.error.checked_call(os.mkdir, getattr(p, "strpath", p))
         return p
 
+    def write_binary(self, data, ensure=False):
+        """ write binary data into path.   If ensure is True create
+        missing parent directories.
+        """
+        if ensure:
+            self.dirpath().ensure(dir=1)
+        with self.open('wb') as f:
+            f.write(data)
+
+    def write_text(self, data, encoding, ensure=False):
+        """ write text data into path using the specified encoding.
+        If ensure is True create missing parent directories.
+        """
+        if ensure:
+            self.dirpath().ensure(dir=1)
+        with self.open('w', encoding=encoding) as f:
+            f.write(data)
+
     def write(self, data, mode='w', ensure=False):
         """ write data into path.   If ensure is True create
         missing parent directories.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py.egg-info/PKG-INFO 
new/py-1.4.25/py.egg-info/PKG-INFO
--- old/py-1.4.22/py.egg-info/PKG-INFO  2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/py.egg-info/PKG-INFO  2014-09-24 13:39:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: py
-Version: 1.4.22
+Version: 1.4.25
 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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/py.egg-info/SOURCES.txt 
new/py-1.4.25/py.egg-info/SOURCES.txt
--- old/py-1.4.22/py.egg-info/SOURCES.txt       2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/py.egg-info/SOURCES.txt       2014-09-24 13:39:53.000000000 
+0200
@@ -4,6 +4,7 @@
 MANIFEST.in
 README.txt
 conftest.py
+setup.cfg
 setup.py
 tox.ini
 doc/Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/setup.cfg new/py-1.4.25/setup.cfg
--- old/py-1.4.22/setup.cfg     2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/setup.cfg     2014-09-24 13:39:53.000000000 +0200
@@ -1,3 +1,6 @@
+[wheel]
+universal = 1
+
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/setup.py new/py-1.4.25/setup.py
--- old/py-1.4.22/setup.py      2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/setup.py      2014-09-24 13:39:53.000000000 +0200
@@ -7,7 +7,7 @@
         name='py',
         description='library with cross-python path, ini-parsing, io, code, 
log facilities',
         long_description = open('README.txt').read(),
-        version='1.4.22',
+        version='1.4.25',
         url='http://pylib.readthedocs.org/',
         license='MIT license',
         platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/code/test_assertion.py 
new/py-1.4.25/testing/code/test_assertion.py
--- old/py-1.4.22/testing/code/test_assertion.py        2014-07-17 
10:51:42.000000000 +0200
+++ new/py-1.4.25/testing/code/test_assertion.py        2014-09-24 
13:39:53.000000000 +0200
@@ -14,12 +14,6 @@
         s = str(e)
         assert s.startswith('assert 2 == 3\n')
 
-def test_assert_with_explicit_message():
-    try:
-        assert f() == 3, "hello"
-    except AssertionError:
-        e = exvalue()
-        assert e.msg == 'hello'
 
 def test_assert_within_finally():
     excinfo = py.test.raises(ZeroDivisionError, """
@@ -106,15 +100,6 @@
         assert s.startswith("assert 42 == 100")
         assert "where 42 = len([" in s
 
-def test_assert_non_string_message():
-    class A:
-        def __str__(self):
-            return "hello"
-    try:
-        assert 0 == 1, A()
-    except AssertionError:
-        e = exvalue()
-        assert e.msg == "hello"
 
 def test_assert_keyword_arg():
     def f(x=3):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/code/test_code.py 
new/py-1.4.25/testing/code/test_code.py
--- old/py-1.4.22/testing/code/test_code.py     2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/testing/code/test_code.py     2014-09-24 13:39:53.000000000 
+0200
@@ -132,3 +132,28 @@
     fr4 = py.code.Frame(f4('a', 'b', c='d'))
     assert fr4.getargs(var=True) == [('x', 'a'), ('y', ('b',)),
                                      ('z', {'c': 'd'})]
+
+
+class TestExceptionInfo:
+
+    def test_bad_getsource(self):
+        try:
+            if False: pass
+            else: assert False
+        except AssertionError:
+            exci = py.code.ExceptionInfo()
+        assert exci.getrepr()
+
+
+class TestTracebackEntry:
+
+    def test_getsource(self):
+        try:
+            if False: pass
+            else: assert False
+        except AssertionError:
+            exci = py.code.ExceptionInfo()
+        entry = exci.traceback[0]
+        source = entry.getsource()
+        assert len(source) == 4
+        assert 'else: assert False' in source[3]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/code/test_excinfo.py 
new/py-1.4.25/testing/code/test_excinfo.py
--- old/py-1.4.22/testing/code/test_excinfo.py  2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/testing/code/test_excinfo.py  2014-09-24 13:39:53.000000000 
+0200
@@ -16,7 +16,6 @@
 
 import pytest
 pytest_version_info = tuple(map(int, pytest.__version__.split(".")[:3]))
-pytest25 = pytest.mark.skipif(pytest_version_info < (2,5), reason="requires 
pytest-2.5")
 
 class TWMock:
     def __init__(self):
@@ -151,6 +150,17 @@
         recindex = traceback.recursionindex()
         assert recindex == 3
 
+    def test_traceback_only_specific_recursion_errors(self, monkeypatch):
+        def f(n):
+            if n == 0:
+                raise RuntimeError("hello")
+            f(n-1)
+
+        excinfo = pytest.raises(RuntimeError, f, 100)
+        monkeypatch.delattr(excinfo.traceback.__class__, "recursionindex")
+        repr = excinfo.getrepr()
+        assert "RuntimeError: hello" in str(repr.reprcrash)
+
     def test_traceback_no_recursion_index(self):
         def do_stuff():
             raise RuntimeError
@@ -244,15 +254,6 @@
     assert msg.startswith('ValueError')
     assert msg.endswith("world")
 
-@pytest25
-def test_excinfo_exconly_unicode_AssertionError():
-    val = py.builtin._totext('£€', 'utf-8')
-    def fail():
-        raise AssertionError(val)
-    excinfo = py.test.raises(Exception, fail)
-    msg = excinfo.exconly(tryshort=True)
-    assert msg == 'AssertionError: ' + val
-
 def test_excinfo_repr():
     excinfo = py.test.raises(ValueError, h)
     s = repr(excinfo)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/code/test_source.py 
new/py-1.4.25/testing/code/test_source.py
--- old/py-1.4.22/testing/code/test_source.py   2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/testing/code/test_source.py   2014-09-24 13:39:53.000000000 
+0200
@@ -489,6 +489,14 @@
     source = getstatement(0, "raise ValueError\n#hello")
     assert str(source) == "raise ValueError"
 
+def test_single_line_else():
+    source = getstatement(1, "if False: 2\nelse: 3")
+    assert str(source) == "else: 3"
+
+def test_single_line_finally():
+    source = getstatement(1, "try: 1\nfinally: 3")
+    assert str(source) == "finally: 3"
+
 def XXXtest_multiline():
     source = getstatement(0, """\
 raise ValueError(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/io_/test_terminalwriter.py 
new/py-1.4.25/testing/io_/test_terminalwriter.py
--- old/py-1.4.22/testing/io_/test_terminalwriter.py    2014-07-17 
10:51:42.000000000 +0200
+++ new/py-1.4.25/testing/io_/test_terminalwriter.py    2014-09-24 
13:39:53.000000000 +0200
@@ -54,6 +54,7 @@
 def test_terminalwriter_dumb_term_no_markup(monkeypatch):
     monkeypatch.setattr(os, 'environ', {'TERM': 'dumb', 'PATH': ''})
     class MyFile:
+        closed = False
         def isatty(self):
             return True
     monkeypatch.setattr(sys, 'stdout', MyFile())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/path/test_local.py 
new/py-1.4.25/testing/path/test_local.py
--- old/py-1.4.22/testing/path/test_local.py    2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/testing/path/test_local.py    2014-09-24 13:39:53.000000000 
+0200
@@ -801,3 +801,30 @@
         x.write(part.encode(sys.getdefaultencoding()))
         assert x.read() == part.encode(sys.getdefaultencoding())
 
+class TestBinaryAndTextMethods:
+    def test_read_binwrite(self, tmpdir):
+        x = tmpdir.join("hello")
+        part = py.builtin._totext("hällo", "utf8")
+        part_utf8 = part.encode("utf8")
+        x.write_binary(part_utf8)
+        assert x.read_binary() == part_utf8
+        s = x.read_text(encoding="utf8")
+        assert s == part
+        assert py.builtin._istext(s)
+
+    def test_read_textwrite(self, tmpdir):
+        x = tmpdir.join("hello")
+        part = py.builtin._totext("hällo", "utf8")
+        part_utf8 = part.encode("utf8")
+        x.write_text(part, encoding="utf8")
+        assert x.read_binary() == part_utf8
+        assert x.read_text(encoding="utf8") == part
+
+    def test_default_encoding(self, tmpdir):
+        x = tmpdir.join("hello")
+        # Can't use UTF8 as the default encoding (ASCII) doesn't support it
+        part = py.builtin._totext("hello", "ascii")
+        x.write_text(part, "ascii")
+        s = x.read_text("ascii")
+        assert s == part
+        assert type(s) == type(part)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/testing/path/test_svnwc.py 
new/py-1.4.25/testing/path/test_svnwc.py
--- old/py-1.4.22/testing/path/test_svnwc.py    2014-07-17 10:51:42.000000000 
+0200
+++ new/py-1.4.25/testing/path/test_svnwc.py    2014-09-24 13:39:53.000000000 
+0200
@@ -338,7 +338,7 @@
         somefile = root.join('somefile')
         somefile.ensure(file=True)
         # not yet added to repo
-        py.test.raises((py.process.cmdexec.Error, ValueError), 
'somefile.lock()')
+        py.test.raises(Exception, 'somefile.lock()')
         somefile.write('foo')
         somefile.commit('test')
         assert somefile.check(versioned=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/py-1.4.22/tox.ini new/py-1.4.25/tox.ini
--- old/py-1.4.22/tox.ini       2014-07-17 10:51:42.000000000 +0200
+++ new/py-1.4.25/tox.ini       2014-09-24 13:39:53.000000000 +0200
@@ -1,5 +1,5 @@
 [tox]
-envlist=py26,py27,py32,py33,external
+envlist=py26,py27,py33,py34,external
 # py27-xdist causes problems with svn, py25 requires virtualenv==1.9.1
 #indexserver=
 #    default=http://pypi.testrun.org

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to