mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-09 18:30:39 -04:00
68a350d462
- move testing.TestBase to test.lib.fixtures - massive search and replace
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
from test.lib import *
|
|
import os
|
|
import re
|
|
|
|
|
|
def find_py_files(dirs):
|
|
for dn in dirs:
|
|
dn = os.path.abspath(dn)
|
|
for root, dirs, files in os.walk(dn):
|
|
for r in '.svn', 'CVS', '.git', '.hg':
|
|
try:
|
|
dirs.remove(r)
|
|
except ValueError:
|
|
pass
|
|
pyfiles = [fn for fn in files if fn.endswith('.py')]
|
|
if not pyfiles:
|
|
continue
|
|
|
|
# Find the root of the packages.
|
|
|
|
packroot = root
|
|
while 1:
|
|
if not os.path.exists(os.path.join(packroot,
|
|
'__init__.py')):
|
|
break
|
|
packroot = os.path.dirname(packroot)
|
|
for fn in pyfiles:
|
|
yield os.path.join(root[len(packroot) + 1:], fn)
|
|
|
|
|
|
def filename_to_module_name(fn):
|
|
if os.path.basename(fn) == '__init__.py':
|
|
fn = os.path.dirname(fn)
|
|
return re.sub('\.py$', '', fn.replace(os.sep, '.'))
|
|
|
|
|
|
def find_modules(*args):
|
|
for fn in find_py_files(args or ('./examples', )):
|
|
yield filename_to_module_name(fn)
|
|
|
|
|
|
def check_import(module):
|
|
__import__(module)
|
|
|
|
|
|
class ExamplesTest(fixtures.TestBase):
|
|
|
|
# TODO: ensure examples are actually run regardless of check for
|
|
# "__main__", perhaps standardizing the format of all examples.
|
|
# ensure that examples with external dependencies are not run if
|
|
# those dependencies are not present (i.e. elementtree, postgis)
|
|
|
|
def test_examples(self):
|
|
pass
|
|
|
|
|
|
# for module in find_modules(): check_import.description =
|
|
# module yield check_import, module
|