Register the AssertionRewritingHook loader with pkg_resources; fixes #366.
This commit is contained in:
		
							parent
							
								
									00c0d62c9b
								
							
						
					
					
						commit
						a4c17dfb19
					
				|  | @ -41,6 +41,7 @@ class AssertionRewritingHook(object): | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         self.session = None |         self.session = None | ||||||
|         self.modules = {} |         self.modules = {} | ||||||
|  |         self._register_with_pkg_resources() | ||||||
| 
 | 
 | ||||||
|     def set_session(self, session): |     def set_session(self, session): | ||||||
|         self.fnpats = session.config.getini("python_files") |         self.fnpats = session.config.getini("python_files") | ||||||
|  | @ -169,6 +170,23 @@ class AssertionRewritingHook(object): | ||||||
|         tp = desc[2] |         tp = desc[2] | ||||||
|         return tp == imp.PKG_DIRECTORY |         return tp == imp.PKG_DIRECTORY | ||||||
| 
 | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def _register_with_pkg_resources(cls): | ||||||
|  |         """ | ||||||
|  |         Ensure package resources can be loaded from this loader. | ||||||
|  |         """ | ||||||
|  |         try: | ||||||
|  |             pkg_resources = __import__('pkg_resources') | ||||||
|  |             # access an attribute in case a deferred importer is present | ||||||
|  |             pkg_resources.__name__ | ||||||
|  |         except ImportError: | ||||||
|  |             return | ||||||
|  | 
 | ||||||
|  |         # Since pytest tests are always located in the file system, the | ||||||
|  |         #  DefaultProvider is appropriate. | ||||||
|  |         pkg_resources.register_loader_type(cls, pkg_resources.DefaultProvider) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def _write_pyc(state, co, source_path, pyc): | def _write_pyc(state, co, source_path, pyc): | ||||||
|     # Technically, we don't have to have the same pyc format as |     # Technically, we don't have to have the same pyc format as | ||||||
|     # (C)Python, since these "pycs" should never be seen by builtin |     # (C)Python, since these "pycs" should never be seen by builtin | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue