Explain is_package AttributeError in find_package

When a PEP 302 import hook is used that doesn't implement .is_package()
an AttributeError is raised. This looks like a bug in Flask. This change
fixes that problem in the sense that it explains, that the
AttributeError is intentional.
This commit is contained in:
Daniel Neuhäuser 2013-08-13 15:53:58 +02:00
parent f606a6d6a1
commit 94f4360137
3 changed files with 23 additions and 2 deletions

View file

@ -16,6 +16,7 @@ import pkgutil
import unittest
from contextlib import contextmanager
from flask.testsuite import FlaskTestCase
from flask._compat import PY2
# config keys used for the ConfigTestCase
@ -291,6 +292,18 @@ class InstanceTestCase(FlaskTestCase):
if 'site_egg' in sys.modules:
del sys.modules['site_egg']
if PY2:
def test_meta_path_loader_without_is_package(self):
class Loader(object):
def find_module(self, name):
return self
sys.meta_path.append(Loader())
try:
with self.assert_raises(AttributeError):
flask.Flask(__name__)
finally:
sys.meta_path.pop()
def suite():
suite = unittest.TestSuite()