[pypy-commit] pypy default: Compatibility with pytest 3.*

rlamy pypy.commits at gmail.com
Fri Dec 22 10:14:33 EST 2017


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: 
Changeset: r93551:3f6df999bd4c
Date: 2017-12-22 16:09 +0100
http://bitbucket.org/pypy/pypy/changeset/3f6df999bd4c/

Log:	Compatibility with pytest 3.*

diff --git a/pypy/module/test_lib_pypy/ctypes_tests/test_commethods.py b/pypy/module/test_lib_pypy/ctypes_tests/test_commethods.py
--- a/pypy/module/test_lib_pypy/ctypes_tests/test_commethods.py
+++ b/pypy/module/test_lib_pypy/ctypes_tests/test_commethods.py
@@ -2,10 +2,10 @@
 # Can't resist from implementing some kind of mini-comtypes
 # theller ;-)
 
-import py
+import pytest
 import sys
 if sys.platform != "win32":
-    py.test.skip('windows only test')
+    pytest.importorskip('skip_the_whole_module')  # hack!
 
 import ctypes, new, unittest
 from ctypes.wintypes import HRESULT
@@ -27,7 +27,7 @@
         if instance is None:
             return self
         return new.instancemethod(self.func, instance, owner)
-    
+
 def commethod(index, restype, *argtypes):
     """A decorator that generates COM methods.  The decorated function
     itself is not used except for it's name."""
@@ -72,7 +72,8 @@
     assert 4 == punk.AddRef()
 
     punk.SetName("TypeLib_ByPYPY")
-    py.test.raises(COMError, lambda: punk.SetName(None))
+    with pytest.raises(COMError):
+        punk.SetName(None)
 
     # This would save the typelib to disk.
     ## punk.SaveAllChanges()
diff --git a/pypy/module/test_lib_pypy/ctypes_tests/test_init.py b/pypy/module/test_lib_pypy/ctypes_tests/test_init.py
--- a/pypy/module/test_lib_pypy/ctypes_tests/test_init.py
+++ b/pypy/module/test_lib_pypy/ctypes_tests/test_init.py
@@ -1,7 +1,6 @@
-import py
+import pytest
 from ctypes import *
 
-py.test.skip("subclassing semantics and implementation details not implemented")
 
 class X(Structure):
     _fields_ = [("a", c_int),
@@ -21,19 +20,20 @@
     _fields_ = [("x", X)]
 
 
-class TestInit:
-    def test_get(self):
-        # make sure the only accessing a nested structure
-        # doesn't call the structure's __new__ and __init__
-        y = Y()
-        assert (y.x.a, y.x.b) == (0, 0)
-        assert y.x.new_was_called == False
+ at pytest.mark.xfail(
+    reason="subclassing semantics and implementation details not implemented")
+def test_get():
+    # make sure the only accessing a nested structure
+    # doesn't call the structure's __new__ and __init__
+    y = Y()
+    assert (y.x.a, y.x.b) == (0, 0)
+    assert y.x.new_was_called == False
 
-        # But explicitely creating an X structure calls __new__ and __init__, of course.
-        x = X()
-        assert (x.a, x.b) == (9, 12)
-        assert x.new_was_called == True
+    # But explicitely creating an X structure calls __new__ and __init__, of course.
+    x = X()
+    assert (x.a, x.b) == (9, 12)
+    assert x.new_was_called == True
 
-        y.x = x
-        assert (y.x.a, y.x.b) == (9, 12)
-        assert y.x.new_was_called == False
+    y.x = x
+    assert (y.x.a, y.x.b) == (9, 12)
+    assert y.x.new_was_called == False
diff --git a/pypy/module/test_lib_pypy/ctypes_tests/test_win32.py b/pypy/module/test_lib_pypy/ctypes_tests/test_win32.py
--- a/pypy/module/test_lib_pypy/ctypes_tests/test_win32.py
+++ b/pypy/module/test_lib_pypy/ctypes_tests/test_win32.py
@@ -4,11 +4,11 @@
 from ctypes.test import is_resource_enabled
 from support import BaseCTypesTestChecker
 
-import py
+import pytest
 import sys
 
 if sys.platform != "win32":
-    py.test.skip("win32-only tests")
+    pytest.importorskip('skip_the_whole_module')  # hack!
 
 class TestWindows(BaseCTypesTestChecker):
     def test_callconv_1(self):
@@ -16,13 +16,15 @@
 
         IsWindow = windll.user32.IsWindow
         # ValueError: Procedure probably called with not enough arguments (4 bytes missing)
-        py.test.raises(ValueError, IsWindow)
+        with pytest.raises(ValueError):
+            IsWindow()
 
         # This one should succeeed...
         assert IsWindow(0) == 0
 
         # ValueError: Procedure probably called with too many arguments (8 bytes in excess)
-        py.test.raises(ValueError, IsWindow, 0, 0, 0)
+        with pytest.raises(ValueError):
+            IsWindow(0, 0, 0)
 
     def test_callconv_2(self):
         # Calling stdcall function as cdecl
@@ -31,13 +33,15 @@
 
         # ValueError: Procedure called with not enough arguments (4 bytes missing)
         # or wrong calling convention
-        py.test.raises(ValueError, IsWindow, None)
+        with pytest.raises(ValueError):
+            IsWindow(None)
 
     if is_resource_enabled("SEH"):
         def test_SEH(self):
             # Call functions with invalid arguments, and make sure that access violations
             # are trapped and raise an exception.
-            py.test.raises(WindowsError, windll.kernel32.GetModuleHandleA, 32)
+            with pytest.raises(WindowsError):
+                windll.kernel32.GetModuleHandleA(32)
 
 class TestWintypes(BaseCTypesTestChecker):
 


More information about the pypy-commit mailing list