fix test_importall to not stop on skipped plugins and fix the uncovered failure of genscript: standalone.py template is now safely importable
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									4a568f43fe
								
							
						
					
					
						commit
						76e49b57bf
					
				|  | @ -8,18 +8,10 @@ import base64 | ||||||
| import zlib | import zlib | ||||||
| import imp | import imp | ||||||
| 
 | 
 | ||||||
| if sys.version_info >= (3,0): |  | ||||||
|     exec("def do_exec(co, loc): exec(co, loc)\n") |  | ||||||
|     import pickle |  | ||||||
|     sources = sources.encode("ascii") # ensure bytes  |  | ||||||
|     sources = pickle.loads(zlib.decompress(base64.decodebytes(sources))) |  | ||||||
| else: |  | ||||||
|     import cPickle as pickle |  | ||||||
|     exec("def do_exec(co, loc): exec co in loc\n") |  | ||||||
|     sources = pickle.loads(zlib.decompress(base64.decodestring(sources))) |  | ||||||
| 
 |  | ||||||
| class DictImporter(object): | class DictImporter(object): | ||||||
|     sources = sources |     def __init__(self, sources): | ||||||
|  |         self.sources = sources | ||||||
|  | 
 | ||||||
|     def find_module(self, fullname, path=None): |     def find_module(self, fullname, path=None): | ||||||
|         if fullname in self.sources: |         if fullname in self.sources: | ||||||
|             return self |             return self | ||||||
|  | @ -53,12 +45,19 @@ class DictImporter(object): | ||||||
|             res = self.sources.get(name+'.__init__') |             res = self.sources.get(name+'.__init__') | ||||||
|         return res |         return res | ||||||
| 
 | 
 | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     if sys.version_info >= (3,0): | ||||||
|  |         exec("def do_exec(co, loc): exec(co, loc)\n") | ||||||
|  |         import pickle | ||||||
|  |         sources = sources.encode("ascii") # ensure bytes  | ||||||
|  |         sources = pickle.loads(zlib.decompress(base64.decodebytes(sources))) | ||||||
|  |     else: | ||||||
|  |         import cPickle as pickle | ||||||
|  |         exec("def do_exec(co, loc): exec co in loc\n") | ||||||
|  |         sources = pickle.loads(zlib.decompress(base64.decodestring(sources))) | ||||||
| 
 | 
 | ||||||
| 
 |     importer = DictImporter(sources) | ||||||
| importer = DictImporter() |  | ||||||
| 
 |  | ||||||
|     sys.meta_path.append(importer) |     sys.meta_path.append(importer) | ||||||
| 
 | 
 | ||||||
| if __name__ == "__main__": |  | ||||||
|     import py |     import py | ||||||
|     py.cmdline.pytest() |     py.cmdline.pytest() | ||||||
|  |  | ||||||
|  | @ -1,6 +1,7 @@ | ||||||
| import py | import py | ||||||
| import types | import types | ||||||
| import sys | import sys | ||||||
|  | from py._test.outcome import Skipped | ||||||
| 
 | 
 | ||||||
| def checksubpackage(name): | def checksubpackage(name): | ||||||
|     obj = getattr(py, name) |     obj = getattr(py, name) | ||||||
|  | @ -29,7 +30,6 @@ def test_importall(): | ||||||
|     nodirs = [ |     nodirs = [ | ||||||
|         base.join('_path', 'gateway',), |         base.join('_path', 'gateway',), | ||||||
|         base.join('_code', 'oldmagic.py'), |         base.join('_code', 'oldmagic.py'), | ||||||
|         base.join('_compat', 'testing'), |  | ||||||
|     ] |     ] | ||||||
|     if sys.version_info >= (3,0): |     if sys.version_info >= (3,0): | ||||||
|         nodirs.append(base.join('_code', '_assertionold.py')) |         nodirs.append(base.join('_code', '_assertionold.py')) | ||||||
|  | @ -50,7 +50,10 @@ def test_importall(): | ||||||
|             else: |             else: | ||||||
|                 relpath = relpath.replace(base.sep, '.') |                 relpath = relpath.replace(base.sep, '.') | ||||||
|                 modpath = 'py.%s' % relpath |                 modpath = 'py.%s' % relpath | ||||||
|  |                 try: | ||||||
|                     check_import(modpath) |                     check_import(modpath) | ||||||
|  |                 except Skipped: | ||||||
|  |                     pass | ||||||
| 
 | 
 | ||||||
| def check_import(modpath): | def check_import(modpath): | ||||||
|     py.builtin.print_("checking import", modpath) |     py.builtin.print_("checking import", modpath) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue