def teardown(): os.remove(blueprint_file) field = Fields.get(Fields.name == 'name') field.delete_instance() field = Fields.get(Fields.name == 'colour') field.delete_instance() type = Types.get(Types.name == 'flowers') type.delete_instance()
def nullable_field(request, complex_data): ships = Types.get(Types.name == 'ships') sails = Fields(name='sails', type=ships.id, field_type='string', nullable=False) sails.save() def teardown(): sails.delete_instance() request.addfinalizer(teardown)
def simple_data(request, blueprint_file): bands = Types(name='bands', enabled=0) bands.save() name = Fields(name='band_name', type=bands.id, field_type='string') name.save() def teardown(): name.delete_instance() bands.delete_instance() os.remove(blueprint_file) request.addfinalizer(teardown)
def build_field(request, name, type_id, field_type, unique=None, nullable=None): custom_field = Fields(name=name, type=type_id, field_type=field_type, unique=unique, nullable=nullable) custom_field.save() def teardown(): custom_field.delete_instance() request.addfinalizer(teardown) return custom_field
def test_complex_blueprint(complex_blueprint, blueprint_file): """ Tests the loading of blueprint with fields description. """ load_blueprint(blueprint_file) type = Types.get(Types.name == 'plants') assert type.id > 0 field = Fields.get(Fields.name == 'weight') assert field.field_type == 'int' assert field.type.id == type.id field = Fields.get(Fields.name == 'age') assert field.field_type == 'date' assert field.type.id == type.id field = Fields.get(Fields.name == 'colour') assert field.field_type == 'colours' assert field.type.id == type.id
def test_make_model_foreign_column(complex_type, custom_type_two, foreign_field): """ Tests whether make_model can generate models with foreign key fields. """ complex_type.enabled = 1 complex_type.save() custom_type_two.enabled = 1 model = make_model(custom_type_two) columns = Fields.select().where(Fields.type == custom_type_two.id, Fields.field_type == complex_type.name) for column in columns: field_object = getattr(model, column.name) assert isinstance(field_object, ForeignKeyField)
def test_load_simple_blueprint(simple_blueprint, blueprint_file): """ Tests the loading of a simple blueprint that has only a list of fields. """ load_blueprint(blueprint_file) type = Types.get(Types.name == 'flowers') assert type.id > 0 assert type.enabled == True fields = ['name', 'colour'] for field_name in fields: field = Fields.get(Fields.name == field_name) assert field.field_type == 'string' assert field.type.id == type.id assert field.nullable == True
def test_fields_io(): """ Verfies that is possible to create and delete a Fields instance. """ custom_type = Types(name='sometype', enabled=0) custom_type.save() field = Fields(name='myfield', type=custom_type.id, field_type='string') field.save() assert getattr(field, 'id') != None field.delete_instance() custom_type.delete_instance()
def test_make_model_columns(complex_type, complex_fields): """ Verifies that make_model can correctly generate a model. """ complex_type.enabled = 1 model = make_model(complex_type) fields_dict = { 'string': TextField, 'int': IntegerField, 'float': FloatField, 'bool': BooleanField, 'date': DateTimeField } columns = Fields.select().where(Fields.type == complex_type.id) for column in columns: field = fields_dict[column.field_type] field_object = getattr(model, column.name) assert isinstance(field_object, field) if column.unique: assert getattr(field_object, 'unique') == True if column.nullable: assert getattr(field_object, 'null') == True
def test_nullable_blueprint(nullable_blueprint, blueprint_file): load_blueprint(blueprint_file) field = Fields.get(Fields.name == 'children') assert field.nullable == True
def complex_data(request, blueprint_file): builders = Types(name='builders', enabled=0) builders.save() ships = Types(name='ships', enabled=0) ships.save() tonnage = Fields(name='tonnage', type=ships.id, field_type='int') tonnage.save() flag = Fields(name='flag', type=ships.id, field_type='string') flag.save() launch_date = Fields(name='launch_date', type=ships.id, field_type='date') launch_date.save() builder = Fields(name='builder', type=ships.id, field_type='builders') builder.save() def teardown(): tonnage.delete_instance() flag.delete_instance() launch_date.delete_instance() builder.delete_instance() ships.delete_instance() builders.delete_instance() os.remove(blueprint_file) request.addfinalizer(teardown)
def teardown(): field = Fields.get(Fields.name == 'children') field.delete_instance()