diff options
author | Ed Avis <eda@waniasset.com> | 2015-10-05 17:25:09 +0100 |
---|---|---|
committer | Ed Avis <eda@waniasset.com> | 2015-10-05 17:25:09 +0100 |
commit | 6eaaf72611a29c74e214d356eae9c46866f13a20 (patch) | |
tree | 28dc4869390d0075d375add575274b547eb2f97d | |
parent | d7cf9aee3e58bc0a3754e039ffc7e2b44a64ca92 (diff) | |
download | sqlalchemy-pr/206.tar.gz |
Added tests for new error message on bad date/time values from MSSQL; changed messages slightly to be more testable.pr/206
-rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 4 | ||||
-rw-r--r-- | test/dialect/mssql/test_types.py | 24 |
2 files changed, 26 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 5c474aa6c..6735599c3 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -536,7 +536,7 @@ class _MSDate(sqltypes.Date): elif isinstance(value, util.string_types): m = self._reg.match(value) if not m: - raise Exception("could not parse value {0} with MSDate regexp {1}".format(value, self._reg_str)) + raise Exception("could not parse value {0} as a _MSDate".format(value)) return datetime.date(*[ int(x or 0) for x in m.groups() @@ -574,7 +574,7 @@ class TIME(sqltypes.TIME): elif isinstance(value, util.string_types): m = self._reg.match(value) if not m: - raise Exception("could not parse value {0} with TIME regexp {1}".format(value, self._reg_str)) + raise Exception("could not parse value {0} as a TIME".format(value)) return datetime.time(*[ int(x or 0) for x in m.groups()]) diff --git a/test/dialect/mssql/test_types.py b/test/dialect/mssql/test_types.py index 1c5c22aee..7a908720a 100644 --- a/test/dialect/mssql/test_types.py +++ b/test/dialect/mssql/test_types.py @@ -33,6 +33,18 @@ class TimeTypeTest(fixtures.TestBase): result_processor = mssql_time_type.result_processor(None, None) eq_(expected, result_processor(value)) + def test_result_processor_invalid(self): + mssql_time_type = TIME() + result_processor = mssql_time_type.result_processor(None, None) + ex = None + bogus_value = 'abc' + try: + result_processor(bogus_value) + except Exception as caught: + ex = str(caught) + expected = 'could not parse value ' + bogus_value + ' as a TIME' + eq_(expected, ex) + class MSDateTypeTest(fixtures.TestBase): @@ -45,6 +57,18 @@ class MSDateTypeTest(fixtures.TestBase): result_processor = mssql_date_type.result_processor(None, None) eq_(expected, result_processor(value)) + def test_result_processor_invalid(self): + mssql_date_type = _MSDate() + result_processor = mssql_date_type.result_processor(None, None) + ex = None + bogus_value = 'abc' + try: + result_processor(bogus_value) + except Exception as caught: + ex = str(caught) + expected = 'could not parse value ' + bogus_value + ' as a _MSDate' + eq_(expected, ex) + class TypeDDLTest(fixtures.TestBase): |