summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-09-07 17:58:47 +0000
committerJason Kirtland <jek@discorporate.us>2007-09-07 17:58:47 +0000
commit07181033700fd1e52efc017a0dd9c45eb23e95d7 (patch)
tree4318a6e4bd6b742a7694b777dcb6770890db623d
parent64b0267d280f8990f0551f7308e954427f1de625 (diff)
downloadsqlalchemy-07181033700fd1e52efc017a0dd9c45eb23e95d7.tar.gz
Fixed repr() of mysql floats [ticket:775]
Added repr testing to mysql dialect
-rw-r--r--lib/sqlalchemy/databases/mysql.py7
-rw-r--r--test/dialect/mysql.py14
2 files changed, 17 insertions, 4 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index 8bbe8b683..9eba2abdb 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -403,16 +403,15 @@ class MSFloat(sqltypes.Float, _NumericType):
underlying database API, which continue to be numeric.
"""
- if length is not None:
- self.length=length
+ self.length = length
_NumericType.__init__(self, **kw)
sqltypes.Float.__init__(self, precision, asdecimal=asdecimal)
def get_col_spec(self):
if hasattr(self, 'length') and self.length is not None:
- return self._extend("FLOAT(%(precision)s, %(length)s)" % {'precision': self.precision, 'length' : self.length})
+ return self._extend("FLOAT(%s, %s)" % (self.precision, self.length))
elif self.precision is not None:
- return self._extend("FLOAT(%(precision)s)" % {'precision': self.precision})
+ return self._extend("FLOAT(%s)" % (self.precision,))
else:
return self._extend("FLOAT")
diff --git a/test/dialect/mysql.py b/test/dialect/mysql.py
index 2ea7abf03..1482056ab 100644
--- a/test/dialect/mysql.py
+++ b/test/dialect/mysql.py
@@ -161,6 +161,7 @@ class TypesTest(AssertMixin):
index = int(col.name[1:])
self.assert_eq(gen.get_column_specification(col),
"%s %s" % (col.name, columns[index][3]))
+ self.assert_(repr(col))
try:
numeric_table.create(checkfirst=True)
@@ -245,6 +246,7 @@ class TypesTest(AssertMixin):
index = int(col.name[1:])
self.assert_eq(gen.get_column_specification(col),
"%s %s" % (col.name, columns[index][3]))
+ self.assert_(repr(col))
try:
charset_table.create(checkfirst=True)
@@ -278,6 +280,8 @@ class TypesTest(AssertMixin):
self.assert_eq(colspec(bit_table.c.b7), 'b7 BIT(63)')
self.assert_eq(colspec(bit_table.c.b8), 'b8 BIT(64)')
+ for col in bit_table.c:
+ self.assert_(repr(col))
try:
meta.create_all()
@@ -331,6 +335,8 @@ class TypesTest(AssertMixin):
self.assert_eq(colspec(bool_table.c.b3), 'b3 TINYINT(1)')
self.assert_eq(colspec(bool_table.c.b4), 'b4 TINYINT')
+ for col in bool_table.c:
+ self.assert_(repr(col))
try:
meta.create_all()
@@ -406,6 +412,7 @@ class TypesTest(AssertMixin):
Column('id', Integer, primary_key=True),
Column('t', *spec))
self.assert_eq(colspec(t.c.t), "t %s" % expected)
+ self.assert_(repr(t.c.t))
t.create()
r = Table('mysql_ts%s' % idx, MetaData(testbase.db),
autoload=True)
@@ -426,6 +433,8 @@ class TypesTest(AssertMixin):
Column('y4', mysql.MSYear(2)),
Column('y5', mysql.MSYear(4)))
+ for col in year_table.c:
+ self.assert_(repr(col))
try:
year_table.create()
reflected = Table('mysql_year', MetaData(testbase.db),
@@ -457,6 +466,8 @@ class TypesTest(AssertMixin):
self.assert_eq(colspec(set_table.c.s2), "s2 SET('a')")
self.assert_eq(colspec(set_table.c.s3), "s3 SET('5','7','9')")
+ for col in set_table.c:
+ self.assert_(repr(col))
try:
set_table.create()
reflected = Table('mysql_set', MetaData(testbase.db),
@@ -568,6 +579,9 @@ class TypesTest(AssertMixin):
Column('e3', mysql.MSEnum("'a'", "''")),
Column('e4', mysql.MSEnum("''", "'a'")),
Column('e5', mysql.MSEnum("''", "'''a'''", "'b''b'", "''''")))
+
+ for col in enum_table.c:
+ self.assert_(repr(col))
try:
enum_table.create()
reflected = Table('mysql_enum', MetaData(testbase.db),