'Test introspection of various Django field types'

def test_number_field_types(self):

    assertFieldType = self.make_field_type_asserter()
    assertFieldType(u'id', u'models.IntegerField(primary_key=True)')
    assertFieldType(u'big_int_field', u'models.BigIntegerField()')
    if (connection.vendor == u'mysql'):
        assertFieldType(u'bool_field', u'models.IntegerField()')
        assertFieldType(u'null_bool_field', u'models.IntegerField(blank=True,    null=True)')
    else:
        assertFieldType(u'bool_field', u'models.BooleanField()')
        assertFieldType(u'null_bool_field', u'models.NullBooleanField()')
    if (connection.vendor == u'sqlite'):
        assertFieldType(u'decimal_field', u'models.DecimalField(max_digits=10,    decimal_places=5)    #    max_digits    and    decimal_places    have    been    guessed,    as    this    database    handles    decimal    fields    as    float')
    else:
        assertFieldType(u'decimal_field', u'models.DecimalField(max_digits=6,    decimal_places=1)')
    assertFieldType(u'float_field', u'models.FloatField()')
    assertFieldType(u'int_field', u'models.IntegerField()')
    if (connection.vendor == u'sqlite'):
        assertFieldType(u'pos_int_field', u'models.PositiveIntegerField()')
        assertFieldType(u'pos_small_int_field', u'models.PositiveSmallIntegerField()')
    else:
        assertFieldType(u'pos_int_field', u'models.IntegerField()')
        if (connection.vendor == u'postgresql'):
            assertFieldType(u'pos_small_int_field', u'models.SmallIntegerField()')
        else:
            assertFieldType(u'pos_small_int_field', u'models.IntegerField()')
    if (connection.vendor in (u'sqlite', u'postgresql')):
        assertFieldType(u'small_int_field', u'models.SmallIntegerField()')
    else:
        assertFieldType(u'small_int_field', u'models.IntegerField()')
