Beispiel #1
0
def main():
    return_value = []
    mods_folder = join(dirname(abspath(__file__)), "mods")
    data_core = DataCore(name="items")
    data_core(mods_folder, templates_folder=False)
    for instance in data_core.get_model_type("items"):
        field_dict = {}
        for field in fields(instance):
            field_dict[field.name] = getattr(instance, field.name)

        return_value.append(field_dict)

    return return_value
Beispiel #2
0
def test_exclusions(file_structure):
    core_name = "test_exclusions"

    models_dir = f"ext{MODEL_TYPE_NAME}.py"
    templates_dir = f"exts{MODEL_TYPE_NAME}.py"
    templates_dir_val = file_structure["templates_dir"]

    pwetty = pprint.PrettyPrinter()
    pwetty.pprint(file_structure)

    data_core_test = DataCore(name=core_name)

    model_content = MODEL_FILE.replace("CORE_NAME", core_name)
    template_content = TEMPLATE_FILE.replace("CORE_NAME", core_name)

    file_structure["models_dir"].join(f"meta.meta").write("")
    file_structure["root_model_raw_dir"].join(f"meta.meta").write("")
    file_structure["templates_dir"].join(f"meta.meta").write("")

    file_structure["models_dir"].join(models_dir).write(model_content)
    templates_dir_val.join(templates_dir).write(template_content)

    mods_dir_path = str(file_structure["mods_dir"].realpath())
    data_core_test(mods_dir_path, excluded_extensions=[
        "meta",
    ])
Beispiel #3
0
def test_yaml_write(file_structure):
    data_core = DataCore(name="test_yaml_write")

    raw_file = """
    data:
    - name: Copper
    - description: Fragile material
    - value: 1
    """.strip()

    writing_method_test(file_structure, data_core, raw_file, "yaml")
Beispiel #4
0
def test_json_write(file_structure):
    data_core = DataCore(name="test_json_write")

    raw_file = """
    {"data": [
        {"name": "Copper"},
        {"description": "Fragile material"},
        {"value": 1}
    ]}
    """.strip()

    writing_method_test(file_structure, data_core, raw_file, "json")
    def test_repr():
        DataCore(name="test_repr")
        class TemplateRepr(Template, data_name="template_repr",
                           core_name="test_repr"):
            name: str

        class ModelRepr(Model, core_name="test_repr"):
            name: str

        print(repr(TemplateRepr("Test")))
        print(repr(ModelRepr("Test")))
        print(repr(TemplateRepr("Test").wrapper))
        print(repr(ModelRepr("Test").wrapper))
    def test_direct_instance_dataclass():
        current_core = DataCore(name="direct_instance")
        class TemplateDirectInstance(Template, core_name="direct_instance"):
            name: str

        class ModelDirectInstance(Model, core_name="direct_instance"):
            name: str

        instanced = ModelDirectInstance(DEFAULT_TEST_FIELD_CONTENT)

        assert isinstance(instanced, ModelDirectInstance), INSTANCE_ERROR
        assert instanced
        assert getattr(instanced,
                       DEFAULT_TEST_FIELD_NAME) == DEFAULT_TEST_FIELD_CONTENT
        assert instanced in current_core.all_model_instances

        instanced = TemplateDirectInstance(DEFAULT_TEST_FIELD_CONTENT)

        assert isinstance(instanced, TemplateDirectInstance), INSTANCE_ERROR
        assert getattr(instanced,
                       DEFAULT_TEST_FIELD_NAME) == DEFAULT_TEST_FIELD_CONTENT
Beispiel #7
0
def test_exceptions(tmpdir):
    core_name = "general_test_exceptions"
    data_core_test = DataCore(name=core_name)

    with pytest.raises(PCDInvalidBaseData):
        #pylint: disable=unused-variable
        class DataTest(BaseData):
            pass

    with pytest.raises(PCDDataCoreIsNotUnique):
        DataCore(name=core_name)

    with pytest.raises(PCDTypeError):
        mods_dir = tmpdir.mkdir("mods")
        data_core_test(mods_dir.realpath(), invalid="invalid")

    with pytest.raises(PCDDataCoreIsNotUnique):
        DataCore()
        DataCore()

    with pytest.raises(PCDInvalidPathType):
        data_core_test.get_folder("invalid")
Beispiel #8
0
    def test_inner_dependencies_json(self, file_structure):
        core_name = "test_inner_dependencies_json"
        data_core = DataCore(name=core_name)

        self.dependency_test(data_core, file_structure, JSON_CONTENT, "json")
Beispiel #9
0
    def test_inner_dependencies_yaml(self, file_structure):
        core_name = "test_inner_dependencies_yaml"
        data_core = DataCore(name=core_name)

        self.dependency_test(data_core, file_structure, YAML_CONTENT, "yaml")
Beispiel #10
0
    def test_load_json_types(self, file_structure):
        core_name = "test_load_json_types"
        data_core = DataCore(name=core_name)

        self.raw_testing(data_core, file_structure, JSON_CONTENT, "json")
Beispiel #11
0
    def test_load_yaml_types(self, file_structure):
        core_name = "test_load_yaml_types"
        data_core = DataCore(name=core_name)

        self.raw_testing(data_core, file_structure, YAML_CONTENT, "yaml")