def test_sort_data_models(): reference_a = Reference(path='A', original_name='A', name='A') reference_b = Reference(path='B', original_name='B', name='B') reference_c = Reference(path='C', original_name='C', name='C') data_type_a = DataType(reference=reference_a) data_type_b = DataType(reference=reference_b) data_type_c = DataType(reference=reference_c) reference = [ BaseModel( fields=[ DataModelField(data_type=data_type_a), DataModelFieldBase(data_type=data_type_c), ], reference=reference_a, ), BaseModel( fields=[DataModelField(data_type=data_type_b)], reference=reference_b, ), BaseModel( fields=[DataModelField(data_type=data_type_b)], reference=reference_c, ), ] unresolved, resolved, require_update_action_models = sort_data_models( reference) expected = OrderedDict() expected['B'] = reference[1] expected['C'] = reference[2] expected['A'] = reference[0] assert resolved == expected assert unresolved == [] assert require_update_action_models == ['B', 'A']
def test_sort_data_models_unresolved(): reference = [ BaseModel(name='A', reference_classes=['A', 'C'], fields=[]), BaseModel(name='B', reference_classes=['B'], fields=[]), BaseModel(name='C', reference_classes=['B'], fields=[]), BaseModel(name='D', reference_classes=['A', 'C', 'v'], fields=[]), BaseModel(name='z', reference_classes=['v'], fields=[]), ] with pytest.raises(Exception): sort_data_models(reference)
def test_sort_data_models_unresolved_raise_recursion_error(): reference = [ BaseModel(name='A', reference_classes=['A', 'C'], fields=[]), BaseModel(name='B', reference_classes=['B'], fields=[]), BaseModel(name='C', reference_classes=['B'], fields=[]), BaseModel(name='D', reference_classes=['A', 'C', 'v'], fields=[]), BaseModel(name='z', reference_classes=['v'], fields=[]), ] with pytest.raises(Exception): sort_data_models(reference, recursion_count=100000)
def test_sort_data_models(): reference = [ BaseModel(name='A', reference_classes=['A', 'C'], fields=[]), BaseModel(name='B', reference_classes=['B'], fields=[]), BaseModel(name='C', reference_classes=['B'], fields=[]), ] unresolved, resolved, require_update_action_models = sort_data_models(reference) expected = OrderedDict() expected['B'] = reference[1] expected['C'] = reference[2] expected['A'] = reference[0] assert resolved == expected assert unresolved == [] assert require_update_action_models == ['B', 'A']
def test_sort_data_models_unresolved(): reference_a = Reference(path='A', original_name='A', name='A') reference_b = Reference(path='B', original_name='B', name='B') reference_c = Reference(path='C', original_name='C', name='C') reference_d = Reference(path='D', original_name='D', name='D') reference_v = Reference(path='V', original_name='V', name='V') reference_z = Reference(path='Z', original_name='Z', name='Z') data_type_a = DataType(reference=reference_a) data_type_b = DataType(reference=reference_b) data_type_c = DataType(reference=reference_c) data_type_v = DataType(reference=reference_v) data_type_z = DataType(reference=reference_z) reference = [ BaseModel( fields=[ DataModelField(data_type=data_type_a), DataModelFieldBase(data_type=data_type_c), ], reference=reference_a, ), BaseModel( fields=[DataModelField(data_type=data_type_b)], reference=reference_b, ), BaseModel( fields=[DataModelField(data_type=data_type_b)], reference=reference_c, ), BaseModel( fields=[ DataModelField(data_type=data_type_a), DataModelField(data_type=data_type_c), DataModelField(data_type=data_type_z), ], reference=reference_d, ), BaseModel( fields=[DataModelField(data_type=data_type_v)], reference=reference_z, ), ] with pytest.raises(Exception): sort_data_models(reference)
def make_named_class(model: BaseModel): model.base_class = "pdk8s.model.NamedModel" model.BASE_CLASS = "pdk8s.model.NamedModel" cls_import = datamodel_code_generator.imports.Import(import_="pdk8s.model") model.imports.append(cls_import)