Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ dist
*.tmp
*~
#\#*
secrets.py
_trial_temp
2 changes: 1 addition & 1 deletion txmysql/protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
0x04: 4,
0x05: 8,
0x08: 8,
0x09: 3,
0x09: 4,
0x0c: 8
}

Expand Down
40 changes: 39 additions & 1 deletion txmysql/test/test_txmysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ def test_0400_start_connect_long_query_timeout(self):
self.assertTrue(isinstance(e, ConnectionDone))
finally:
conn.disconnect()

@defer.inlineCallbacks
def test_0500_retry_on_error(self):
"""
Expand Down Expand Up @@ -382,6 +382,44 @@ def test_0900_autoRepairKeyError(self):
conn.disconnect()
FREEBSD_TESTS.append(test_0900_autoRepairKeyError.__name__)

@defer.inlineCallbacks
def test_1000_mediumint_fix_issue_3(self):
"""
See https://github.com/hybridlogic/txMySQL/issues/3
"""
yield self._start_mysql()
conn = self._connect_mysql(retry_on_error=True)
yield conn.selectDb("foo")
yield conn.runOperation("create database if not exists foo")
yield conn.runOperation("drop table if exists users")
yield conn.runOperation("""
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user` varchar(30) NOT NULL DEFAULT '',
`credit` mediumint(8) unsigned NOT NULL DEFAULT '0',
`class` tinyint(2) unsigned NOT NULL DEFAULT '0',
`first_usage` int(10) unsigned NOT NULL DEFAULT '0',
`last_usage` int(10) unsigned NOT NULL DEFAULT '0',
`enabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_uc` (`user`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
""")
yield conn.runOperation("""
INSERT INTO `users` (`id`,`user`,`credit`,`class`,`first_usage`,`last_usage`,`enabled`) VALUES (1,'foo',1000000,10,1312417862,0,0)
""")
result = yield conn.runQuery("SELECT id, user, credit, class, first_usage, last_usage, enabled FROM users")
self.assertEquals(result, [[1,'foo',1000000,10,1312417862,0,0]])
result = yield conn.runQuery("SELECT id, user, credit, first_usage, last_usage, enabled FROM users")
self.assertEquals(result, [[1,'foo',1000000,1312417862,0,0]])
result = yield conn.runQuery("SELECT first_usage, last_usage, enabled FROM users")
self.assertEquals(result, [[1312417862,0,0]])
result = yield conn.runQuery("SELECT credit, class FROM users")
self.assertEquals(result, [[1000000,10]])
result = yield conn.runQuery("SELECT class, credit FROM users")
self.assertEquals(result, [[10,1000000]])
conn.disconnect()

# Utility functions:

def _stop_mysql(self):
Expand Down