def test_integer_types(self):
    specs = []
    for type_ in [mysql.TINYINT, mysql.SMALLINT, mysql.MEDIUMINT, mysql.INTEGER, mysql.BIGINT]:
        for display_width in [None, 4, 7]:
            for unsigned in [False, True]:
                for zerofill in [None, True]:
                    kw = {}
                    if display_width:
                        kw['display_width'] = display_width
                    if (unsigned is not None):
                        kw['unsigned'] = unsigned
                    if (zerofill is not None):
                        kw['zerofill'] = zerofill
                    zerofill = bool(zerofill)
                    source_type = type_(**kw)
                    if (display_width is None):
                        display_width = {mysql.MEDIUMINT: 9, mysql.SMALLINT: 6, mysql.TINYINT: 4, mysql.INTEGER: 11, mysql.BIGINT: 20}[type_]
                    if zerofill:
                        unsigned = True
                    expected_type = type_(display_width=display_width, unsigned=unsigned, zerofill=zerofill)
                    specs.append((source_type, expected_type))
    specs.extend([(SmallInteger(), mysql.SMALLINT(display_width=6)), (Integer(), mysql.INTEGER(display_width=11)), (BigInteger, mysql.BIGINT(display_width=20))])
    self._run_test(specs, ['display_width', 'unsigned', 'zerofill'])
def test_integer_types(self):
    specs = []
    for type_ in [mysql.TINYINT, mysql.SMALLINT, mysql.MEDIUMINT, mysql.INTEGER, mysql.BIGINT]:
        for display_width in [None, 4, 7]:
            for unsigned in [False, True]:
                for zerofill in [None, True]:
                    kw = {}
                    if display_width:
                        kw['display_width'] = display_width
                    if (unsigned is not None):
                        kw['unsigned'] = unsigned
                    if (zerofill is not None):
                        kw['zerofill'] = zerofill
                    zerofill = bool(zerofill)
                    source_type = type_(**kw)
                    if (display_width is None):
                        display_width = {mysql.MEDIUMINT: 9, mysql.SMALLINT: 6, mysql.TINYINT: 4, mysql.INTEGER: 11, mysql.BIGINT: 20}[type_]
                    if zerofill:
                        unsigned = True
                    expected_type = type_(display_width=display_width, unsigned=unsigned, zerofill=zerofill)
                    specs.append((source_type, expected_type))
    specs.extend([(SmallInteger(), mysql.SMALLINT(display_width=6)), (Integer(), mysql.INTEGER(display_width=11)), (BigInteger, mysql.BIGINT(display_width=20))])
    self._run_test(specs, ['display_width', 'unsigned', 'zerofill'])