'Test introspection of various Django field types'

def test_field_types(self):

    assertFieldType = self.make_field_type_asserter()
    if (not connection.features.interprets_empty_strings_as_nulls):
        assertFieldType('char_field', 'models.CharField(max_length=10)')
        assertFieldType('null_char_field', 'models.CharField(max_length=10,    blank=True,    null=True)')
        assertFieldType('email_field', 'models.CharField(max_length=254)')
        assertFieldType('file_field', 'models.CharField(max_length=100)')
        assertFieldType('file_path_field', 'models.CharField(max_length=100)')
        assertFieldType('slug_field', 'models.CharField(max_length=50)')
        assertFieldType('text_field', 'models.TextField()')
        assertFieldType('url_field', 'models.CharField(max_length=200)')
    assertFieldType('date_field', 'models.DateField()')
    assertFieldType('date_time_field', 'models.DateTimeField()')
    if connection.features.can_introspect_ip_address_field:
        assertFieldType('gen_ip_address_field', 'models.GenericIPAddressField()')
    elif (not connection.features.interprets_empty_strings_as_nulls):
        assertFieldType('gen_ip_address_field', 'models.CharField(max_length=39)')
    if connection.features.can_introspect_time_field:
        assertFieldType('time_field', 'models.TimeField()')
    if connection.features.has_native_uuid_field:
        assertFieldType('uuid_field', 'models.UUIDField()')
    elif (not connection.features.interprets_empty_strings_as_nulls):
        assertFieldType('uuid_field', 'models.CharField(max_length=32)')
