[pypy-svn] r63142 - pypy/trunk/pypy/module/sys/test

pedronis at codespeak.net pedronis at codespeak.net
Fri Mar 20 15:35:09 CET 2009


Author: pedronis
Date: Fri Mar 20 15:35:09 2009
New Revision: 63142

Modified:
   pypy/trunk/pypy/module/sys/test/test_sysmodule.py
Log:
(iko, pedronis)

tweaks to make two tests reasonable or skipped in the -A case



Modified: pypy/trunk/pypy/module/sys/test/test_sysmodule.py
==============================================================================
--- pypy/trunk/pypy/module/sys/test/test_sysmodule.py	(original)
+++ pypy/trunk/pypy/module/sys/test/test_sysmodule.py	Fri Mar 20 15:35:09 2009
@@ -1,5 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 import autopath
+from pypy.conftest import option
 from py.test import raises
 from pypy.interpreter.gateway import app2interp_temp
 
@@ -20,6 +21,10 @@
     space.sys.get('__stdout__')
 
 class AppTestAppSysTests:
+
+    def setup_class(cls):
+        cls.w_appdirect = cls.space.wrap(option.runappdirect)
+    
     def test_sys_in_modules(self):
         import sys
         modules = sys.modules
@@ -70,19 +75,24 @@
         else:
             raise AssertionError, "ZeroDivisionError not caught"
 
-def app_test_io(): 
-    import sys
-    assert isinstance(sys.stdout, file)
-    assert isinstance(sys.__stdout__, file)
-    assert isinstance(sys.stderr, file)
-    assert isinstance(sys.__stderr__, file)
-    assert isinstance(sys.stdin, file)
-    assert isinstance(sys.__stdin__, file)
+    def test_io(self): 
+        import sys
+        assert isinstance(sys.__stdout__, file)
+        assert isinstance(sys.__stderr__, file)
+        assert isinstance(sys.__stdin__, file)
+    
+        if self.appdirect and not isinstance(sys.stdout, file):
+            return
+
+        assert isinstance(sys.stdout, file)
+        assert isinstance(sys.stderr, file)
+        assert isinstance(sys.stdin, file)
 
 class AppTestSysModulePortedFromCPython:
 
     def setup_class(cls):
         init_globals_via_builtins_hack(cls.space)
+        cls.w_appdirect = cls.space.wrap(option.runappdirect)
 
     def test_original_displayhook(self):
         import __builtin__
@@ -247,12 +257,20 @@
         # can't check more than the type, as the user might have changed it
         assert isinstance(sys.getdefaultencoding(), str)
 
-    def test_getdefaultencoding(self):
+    def test_setdefaultencoding(self):
+        if self.appdirect:
+            skip("not worth running appdirect")
+            
         encoding = sys.getdefaultencoding()
-        sys.setdefaultencoding("ascii")
         try:
+            sys.setdefaultencoding("ascii")
             assert sys.getdefaultencoding() == 'ascii'
             raises(UnicodeDecodeError, unicode, '\x80')
+
+            sys.setdefaultencoding("latin-1")
+            assert sys.getdefaultencoding() == 'latin-1'
+            assert unicode('\x80') == u'\u0080'
+            
         finally:
             sys.setdefaultencoding(encoding)
 



More information about the Pypy-commit mailing list