mirror of
https://github.com/Tiendil/pynames.git
synced 2025-09-22 04:40:47 +02:00
moved get_all_generators to utils from tests as this is useful
This commit is contained in:
parent
df7edc97eb
commit
a86c90b5bb
3 changed files with 45 additions and 42 deletions
|
@ -7,3 +7,4 @@ import pynames.korean
|
|||
import pynames.russian
|
||||
|
||||
from pynames.relations import GENDER, LANGUAGE
|
||||
from pynames.utils import get_all_generators
|
||||
|
|
|
@ -1,15 +1,9 @@
|
|||
# coding: utf-8
|
||||
|
||||
import os
|
||||
import importlib
|
||||
import unittest
|
||||
|
||||
import pynames
|
||||
|
||||
from pynames.relations import GENDER
|
||||
from pynames.base import BaseGenerator
|
||||
from pynames.from_list_generator import FromListGenerator
|
||||
from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGenerator
|
||||
from pynames.utils import get_all_generators
|
||||
|
||||
|
||||
# TODO: test forms:
|
||||
|
@ -17,45 +11,10 @@ from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGene
|
|||
# - how many items in forms (12 for russian)
|
||||
|
||||
|
||||
def get_all_generators():
|
||||
|
||||
submodules = []
|
||||
|
||||
root_dir = os.path.dirname(pynames.__file__)
|
||||
|
||||
for dirname in os.listdir(root_dir):
|
||||
module_path = os.path.join(root_dir, dirname)
|
||||
if not os.path.isdir(module_path):
|
||||
continue
|
||||
|
||||
try:
|
||||
module_name = 'pynames.%s' % dirname
|
||||
module = importlib.import_module(module_name)
|
||||
submodules.append(module)
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
generators = []
|
||||
|
||||
for module in submodules:
|
||||
for generator in module.__dict__.values():
|
||||
if not isinstance(generator, type) or not issubclass(generator, BaseGenerator):
|
||||
continue
|
||||
|
||||
if generator in (FromTablesGenerator, FromListGenerator, FromCSVTablesGenerator):
|
||||
continue
|
||||
|
||||
generators.append(generator)
|
||||
|
||||
return generators
|
||||
|
||||
|
||||
|
||||
class TestGenerators(unittest.TestCase):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def create_test_method(generator_class):
|
||||
|
||||
def test_method(self):
|
||||
|
|
43
pynames/utils.py
Normal file
43
pynames/utils.py
Normal file
|
@ -0,0 +1,43 @@
|
|||
# coding: utf-8
|
||||
|
||||
import os
|
||||
import importlib
|
||||
|
||||
import pynames
|
||||
|
||||
from pynames.base import BaseGenerator
|
||||
from pynames.from_list_generator import FromListGenerator
|
||||
from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGenerator
|
||||
|
||||
|
||||
def get_all_generators():
|
||||
|
||||
submodules = []
|
||||
|
||||
root_dir = os.path.dirname(pynames.__file__)
|
||||
|
||||
for dirname in os.listdir(root_dir):
|
||||
module_path = os.path.join(root_dir, dirname)
|
||||
if not os.path.isdir(module_path):
|
||||
continue
|
||||
|
||||
try:
|
||||
module_name = 'pynames.%s' % dirname
|
||||
module = importlib.import_module(module_name)
|
||||
submodules.append(module)
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
generators = []
|
||||
|
||||
for module in submodules:
|
||||
for generator in module.__dict__.values():
|
||||
if not isinstance(generator, type) or not issubclass(generator, BaseGenerator):
|
||||
continue
|
||||
|
||||
if generator in (FromTablesGenerator, FromListGenerator, FromCSVTablesGenerator):
|
||||
continue
|
||||
|
||||
generators.append(generator)
|
||||
|
||||
return generators
|
Loading…
Add table
Add a link
Reference in a new issue