[pypy-svn] r50740 - in pypy/dist/pypy/lib: _ctypes app_test/ctypes

fijal at codespeak.net fijal at codespeak.net
Thu Jan 17 23:17:39 CET 2008


Author: fijal
Date: Thu Jan 17 23:17:39 2008
New Revision: 50740

Modified:
   pypy/dist/pypy/lib/_ctypes/structure.py
   pypy/dist/pypy/lib/app_test/ctypes/test_structures.py
Log:
Another explicit AttributeError


Modified: pypy/dist/pypy/lib/_ctypes/structure.py
==============================================================================
--- pypy/dist/pypy/lib/_ctypes/structure.py	(original)
+++ pypy/dist/pypy/lib/_ctypes/structure.py	Thu Jan 17 23:17:39 2008
@@ -82,6 +82,8 @@
         if name == '_fields_':
             if self.__dict__.get('_fields_', None):
                 raise AttributeError("_fields_ is final")
+            if self in [v for k, v in value]:
+                raise AttributeError("Structure or union cannot contain itself")
             self._names, rawfields, self._fieldtypes = names_and_fields(
                 value, self.__bases__[0])
             self._ffistruct = _rawffi.Structure(rawfields)

Modified: pypy/dist/pypy/lib/app_test/ctypes/test_structures.py
==============================================================================
--- pypy/dist/pypy/lib/app_test/ctypes/test_structures.py	(original)
+++ pypy/dist/pypy/lib/app_test/ctypes/test_structures.py	Thu Jan 17 23:17:39 2008
@@ -394,7 +394,6 @@
 
 class TestRecursiveStructure:
     def test_contains_itself(self):
-        py.test.skip("???")
         class Recursive(Structure):
             pass
 



More information about the Pypy-commit mailing list