summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Avis <eda@waniasset.com>2015-10-05 17:25:09 +0100
committerEd Avis <eda@waniasset.com>2015-10-05 17:25:09 +0100
commit6eaaf72611a29c74e214d356eae9c46866f13a20 (patch)
tree28dc4869390d0075d375add575274b547eb2f97d
parentd7cf9aee3e58bc0a3754e039ffc7e2b44a64ca92 (diff)
downloadsqlalchemy-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.py4
-rw-r--r--test/dialect/mssql/test_types.py24
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):