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
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", ])
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")
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
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")
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")
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")
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")
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")