def test_decimal_precision_scale_defaults(): field_json = {'type': 'decimal', 'name': 'decimal', 'precision': 0, 'scale': 0} field = make_field(field_json, {}, []) assert field.max_digits == 20 assert field.decimal_places == 10
def test_decimal_precision_scale(): field_json = {'type': 'decimal', 'name': 'decimal', 'precision': 50, 'scale': 15} field = make_field(field_json, {}, []) assert field.max_digits == 50 assert field.decimal_places == 15
def test_foreign_key(): field_json = {'type': 'integer', 'name': 'integer'} constraint_json = {'foreign_keys': [{'source_table': 'test', 'source_field': 'integer', 'target_table': 'other', 'target_field': 'field'}]} field = make_field(field_json, constraint_json, []) assert isinstance(field, ForeignKey) assert field.to_fields[0] == 'field' assert field.related_query_name() == 'test_integer_set'
def test_types(): fields_json = [ {'type': 'integer', 'name': 'integer'}, {'type': 'number', 'name': 'number', 'precision': 10, 'scale': 5}, {'type': 'decimal', 'name': 'decimal', 'precision': 10, 'scale': 5}, {'type': 'float', 'name': 'float'}, {'type': 'string', 'name': 'string', 'length': 128}, {'type': 'date', 'name': 'date'}, {'type': 'datetime', 'name': 'datetime'}, {'type': 'timestamp', 'name': 'timestamp'}, {'type': 'time', 'name': 'time'}, {'type': 'text', 'name': 'text'}, {'type': 'clob', 'name': 'clob'}, {'type': 'boolean', 'name': 'boolean'}, {'type': 'blob', 'name': 'blob'} ] field_types = [ IntegerField, DecimalField, DecimalField, FloatField, CharField, DateField, DateTimeField, DateTimeField, TimeField, TextField, TextField, BooleanField, BinaryField ] for i in range(len(fields_json)): field = make_field(fields_json[i], {}, []) assert isinstance(field, field_types[i])
def test_unique(): field_json = {'type': 'integer', 'name': 'integer'} constraint_json = {'uniques': [{'fields': ['integer']}]} field = make_field(field_json, constraint_json, []) assert field.unique
def test_primary_key(): field_json = {'type': 'integer', 'name': 'integer'} constraint_json = {'primary_keys': [{'fields': ['integer']}]} field = make_field(field_json, constraint_json, []) assert field.primary_key
def test_char_default_length(): field_json = {'type': 'string', 'name': 'string', 'length': 0} field = make_field(field_json, {}, []) assert field.max_length == 255
def test_index(): field_json = {'type': 'integer', 'name': 'integer'} index_json = [{'fields': ['integer']}] field = make_field(field_json, {}, index_json) assert field.db_index