Skip to content

Commit 67f9ebc

Browse files
committed
BUG27277937: Fix confusing error message when using an unsupported collation
When using an unsupported collation an exception is raised with a confusing error message. A test was added for regression.
1 parent f85d3e6 commit 67f9ebc

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

lib/mysql/connector/constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -699,8 +699,8 @@ def get_charset_info(cls, charset=None, collation=None):
699699
continue
700700
if info[0] == charset and info[1] == collation:
701701
return (cid, info[0], info[1])
702-
raise ProgrammingError("Character set '{0}' unknown.".format(
703-
charset))
702+
_ = cls.get_default_collation(charset)
703+
raise ProgrammingError("Collation '{0}' unknown.".format(collation))
704704

705705
@classmethod
706706
def get_supported(cls):

tests/test_bugs.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5275,3 +5275,26 @@ def test_retrieve_stored_time_types(self):
52755275
expected_type = timedelta
52765276
self.run_test_retrieve_stored_type(stm, test_values, expected_values,
52775277
column, expected_type)
5278+
5279+
5280+
class BugOra27277937(tests.MySQLConnectorTests):
5281+
"""BUG#27277937: CONFUSING ERROR MESSAGE WHEN SPECIFYING UNSUPPORTED
5282+
COLLATION
5283+
"""
5284+
def setUp(self):
5285+
pass
5286+
5287+
def test_invalid_collation(self):
5288+
config = tests.get_mysql_config()
5289+
config["charset"] = "utf8"
5290+
config["collation"] = "foobar"
5291+
self.cnx = connection.MySQLConnection()
5292+
try:
5293+
self.cnx.connect(**config)
5294+
except errors.ProgrammingError as err:
5295+
self.assertEqual(err.msg, "Collation 'foobar' unknown.")
5296+
else:
5297+
self.fail("A ProgrammingError was expected")
5298+
5299+
def tearDown(self):
5300+
pass

0 commit comments

Comments
 (0)