Esempio n. 1
0
def test_module_non_dataclass_filter():
    inspector = ModuleFactoriesInspector([NonDataclassFactoryFilter()])
    assert {
        "dataclass",
        "NormalClass",
        "ExtendedNormalClass",
    } == _names(inspector.filtered_factories(module_model))
Esempio n. 2
0
def test_module_internals_factories_filter():
    inspector = ModuleFactoriesInspector([InternalsFactoryFilter()])
    assert {
        "_ProtectedClass",
        "MyClass",
        "_protected_fun",
        "my_fun",
    } == _names(inspector.filtered_factories(module_empty_annotations))
Esempio n. 3
0
def test_modules_all_functions():
    inspector = ModuleFactoriesInspector([])
    assert {
        "abstractmethod",
        "gather",
        "_protected_fun",
        "my_fun",
    } == _names(inspector.all_functions(module_empty_annotations))
Esempio n. 4
0
def test_module_factories_all_classes():
    inspector = ModuleFactoriesInspector([])
    assert {
        "ABC",
        "combinations",
        "_ProtectedClass",
        "MyClass",
    } == _names(inspector.all_types(module_empty_annotations))
Esempio n. 5
0
def test_module_non_model_filter():
    inspector = ModuleFactoriesInspector(
        [NonTypeFactoryFilter(types=module_model.NormalClass)]
    )
    assert {
        "dataclass",
        "DataClass",
    } == _names(inspector.filtered_factories(module_model))
Esempio n. 6
0
def test_module_public_filter():
    inspector = ModuleFactoriesInspector([PublicFactoryFilter()])
    assert {
        "ABC",
        "abstractmethod",
        "combinations",
        "gather",
        "MyClass",
        "my_fun",
    } == _names(inspector.filtered_factories(module_empty_annotations))
Esempio n. 7
0
def test_module_non_abstract_duck_filter():
    inspector = ModuleFactoriesInspector([NonAbstractFactoryFilter(duck_typing=True)])
    assert {
        "ABC",
        "abstractmethod",
        "NormalClass",
        "ImplementedAbstracts",
        "normal_fn",
        "normal_async_fn",
    } == _names(inspector.filtered_factories(module_abstract))
Esempio n. 8
0
def test_module_internals_or_all_filter():
    inspector = ModuleFactoriesInspector([InternalsOrAllFactoryFilter()])
    assert {
        "OtherClass",
        "my_fun2",
    } == _names(inspector.filtered_factories(module_all_present))
    assert {
        "_ProtectedClass",
        "MyClass",
        "_protected_fun",
        "my_fun",
    } == _names(inspector.filtered_factories(module_empty_annotations))
Esempio n. 9
0
 def __iter__(self) -> Iterator[ModuleElement]:
     for python_module in self.python_modules:
         for filters in self.filter_sets:
             inspector = ModuleFactoriesInspector(filters=filters)
             for name, factory in inspector.filtered_factories(
                     python_module):
                 yield ModuleElement.create(
                     injector=FactoryInjector(factory),
                     singleton=self.singleton,
                     label=_factory_name(factory),
                     export=self.export,
                     bootstrap=self.bootstrap,
                     agg_checks=self.agg_checks,
                 )
Esempio n. 10
0
def test_module_factories_all_factory_filter():
    inspector = ModuleFactoriesInspector([AllFactoryFilter()])
    assert {
        "OtherClass",
        "my_fun2",
    } == _names(inspector.filtered_factories(module_all_present))