Files
deb-python-pymysql/pymysql/tests/test_err.py
diana 73e88b8041 Revert error packet parsing changes (#508)
Revert the changes made in commit 02910b7 to the mysql error packet
parsing, as it didn't take the CLIENT_PROTOCOL_41 case into account.

It appears that the non-CLIENT_PROTOCOL_41 case was off by one as well
(sliced data on 4 vs 3).

I also added two new tests to cover those cases.

See: https://dev.mysql.com/doc/internals/en/packet-ERR_Packet.html
2016-09-01 11:06:58 +09:00

22 lines
670 B
Python

import unittest2
from pymysql import err
__all__ = ["TestRaiseException"]
class TestRaiseException(unittest2.TestCase):
def test_raise_mysql_exception(self):
data = b"\xff\x15\x04Access denied"
with self.assertRaises(err.OperationalError) as cm:
err.raise_mysql_exception(data)
self.assertEqual(cm.exception.args, (1045, 'Access denied'))
def test_raise_mysql_exception_client_protocol_41(self):
data = b"\xff\x15\x04#28000Access denied"
with self.assertRaises(err.OperationalError) as cm:
err.raise_mysql_exception(data)
self.assertEqual(cm.exception.args, (1045, 'Access denied'))