mirror of
https://github.com/Tiendil/pynames.git
synced 2026-02-27 03:44:06 +01: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
|
import pynames.russian
|
||||||
|
|
||||||
from pynames.relations import GENDER, LANGUAGE
|
from pynames.relations import GENDER, LANGUAGE
|
||||||
|
from pynames.utils import get_all_generators
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,9 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
|
|
||||||
import os
|
|
||||||
import importlib
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import pynames
|
|
||||||
|
|
||||||
from pynames.relations import GENDER
|
from pynames.relations import GENDER
|
||||||
from pynames.base import BaseGenerator
|
from pynames.utils import get_all_generators
|
||||||
from pynames.from_list_generator import FromListGenerator
|
|
||||||
from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGenerator
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: test forms:
|
# TODO: test forms:
|
||||||
|
|
@ -17,45 +11,10 @@ from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGene
|
||||||
# - how many items in forms (12 for russian)
|
# - 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):
|
class TestGenerators(unittest.TestCase):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def create_test_method(generator_class):
|
def create_test_method(generator_class):
|
||||||
|
|
||||||
def test_method(self):
|
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