mirror of https://github.com/mitsuhiko/flask.git
Armin Ronacher
13 years ago
5 changed files with 89 additions and 16 deletions
@ -0,0 +1,61 @@
|
||||
# -*- coding: utf-8 -*- |
||||
""" |
||||
flask.testsuite.ext |
||||
~~~~~~~~~~~~~~~~~~~ |
||||
|
||||
Tests the extension import thing. |
||||
|
||||
:copyright: (c) 2011 by Armin Ronacher. |
||||
:license: BSD, see LICENSE for more details. |
||||
""" |
||||
import sys |
||||
import unittest |
||||
from flask.testsuite import FlaskTestCase |
||||
|
||||
|
||||
class ExtImportHookTestCase(FlaskTestCase): |
||||
|
||||
def setup(self): |
||||
for entry, value in sys.modules.items(): |
||||
if entry.startswith('flask.ext.') and value is not None: |
||||
sys.modules.pop(entry, None) |
||||
from flask import ext |
||||
reload(ext) |
||||
|
||||
# reloading must not add more hooks |
||||
import_hooks = 0 |
||||
for item in sys.meta_path: |
||||
cls = type(item) |
||||
if cls.__module__ == 'flask.ext' and \ |
||||
cls.__name__ == '_ExtensionImporter': |
||||
import_hooks += 1 |
||||
self.assert_equal(import_hooks, 1) |
||||
|
||||
def test_flaskext_simple_import_normal(self): |
||||
from flask.ext.newext_simple import ext_id |
||||
self.assert_equal(ext_id, 'newext_simple') |
||||
|
||||
def test_flaskext_simple_import_module(self): |
||||
from flask.ext import newext_simple |
||||
self.assert_equal(newext_simple.ext_id, 'newext_simple') |
||||
self.assert_equal(newext_simple.__name__, 'flask_newext_simple') |
||||
|
||||
def test_flaskext_package_import_normal(self): |
||||
from flask.ext.newext_package import ext_id |
||||
self.assert_equal(ext_id, 'newext_package') |
||||
|
||||
def test_flaskext_package_import_module(self): |
||||
from flask.ext import newext_package |
||||
self.assert_equal(newext_package.ext_id, 'newext_package') |
||||
self.assert_equal(newext_package.__name__, 'flask_newext_package') |
||||
|
||||
def test_flaskext_package_import_submodule(self): |
||||
from flask.ext.newext_package import submodule |
||||
self.assert_equal(submodule.__name__, 'flask_newext_package.submodule') |
||||
self.assert_equal(submodule.test_function(), 42) |
||||
|
||||
|
||||
def suite(): |
||||
suite = unittest.TestSuite() |
||||
suite.addTest(unittest.makeSuite(ExtImportHookTestCase)) |
||||
return suite |
@ -0,0 +1 @@
|
||||
ext_id = 'newext_package' |
@ -0,0 +1,2 @@
|
||||
def test_function(): |
||||
return 42 |
Loading…
Reference in new issue