import core.utils import pytest @pytest.mark.parametrize("lst, as_string", [ (None, "",), ([], ""), (["hello", "world"], "hello world"), # (["hello world", "my friend"], '"hello world" "my friend"') ]) def test_i_can_create_string_from_a_list(lst, as_string): assert core.utils.sysarg_to_string(lst) == as_string def test_i_can_get_classes(): classes = list(core.utils.get_classes("core.builtin_concepts")) error_concept = core.utils.get_class("core.builtin_concepts.ErrorConcept") return_value_concept = core.utils.get_class("core.builtin_concepts.ReturnValueConcept") assert len(classes) > 2 assert error_concept in classes assert return_value_concept in classes def test_i_can_get_base_classes(): classes = list(core.utils.get_classes_from_package("parsers")) # example of classes that should be in the result base_parser = core.utils.get_class("parsers.BaseParser.BaseParser") default_parser = core.utils.get_class("parsers.DefaultParser.DefaultParser") exact_concept_parser = core.utils.get_class("parsers.ExactConceptParser.ExactConceptParser") python_parser = core.utils.get_class("parsers.PythonParser.PythonParser") node = core.utils.get_class("parsers.BaseParser.Node") def_concept_node = core.utils.get_class("parsers.DefaultParser.DefConceptNode") python_node = core.utils.get_class("parsers.PythonParser.PythonNode") assert base_parser in classes assert default_parser in classes assert exact_concept_parser in classes assert python_parser in classes assert node in classes assert def_concept_node in classes assert python_node in classes def test_i_can_get_sub_classes(): sub_classes = core.utils.get_sub_classes("parsers", "parsers.BaseParser.BaseParser") # example of classes that should be (or not) in the result base_parser = core.utils.get_class("parsers.BaseParser.BaseParser") default_parser = core.utils.get_class("parsers.DefaultParser.DefaultParser") exact_concept_parser = core.utils.get_class("parsers.ExactConceptParser.ExactConceptParser") python_parser = core.utils.get_class("parsers.PythonParser.PythonParser") assert base_parser not in sub_classes assert default_parser in sub_classes assert exact_concept_parser in sub_classes assert python_parser in sub_classes