diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-11-30 12:19:26 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-11-30 12:19:26 -0500 |
| commit | 03a3b5ffd3027c79ce9b17b9388fd074e69b889d (patch) | |
| tree | 72834b6bc48c6e2435cd745317c30cad023080b0 /test/dialect | |
| parent | 8145100da43381007e8683373b3f82fb8c21df86 (diff) | |
| download | sqlalchemy-03a3b5ffd3027c79ce9b17b9388fd074e69b889d.tar.gz | |
- A descriptive ValueError is now raised in the event that SQL server
returns an invalid date or time format from a DATE or TIME
column, rather than failing with a NoneType error. Pull request
courtesy Ed Avis.
pullreq github:206
Diffstat (limited to 'test/dialect')
| -rw-r--r-- | test/dialect/mssql/test_types.py | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/test/dialect/mssql/test_types.py b/test/dialect/mssql/test_types.py index 6c6ff6841..dad86c60a 100644 --- a/test/dialect/mssql/test_types.py +++ b/test/dialect/mssql/test_types.py @@ -1,5 +1,5 @@ # -*- encoding: utf-8 -from sqlalchemy.testing import eq_, engines, pickleable +from sqlalchemy.testing import eq_, engines, pickleable, assert_raises_message import datetime import os from sqlalchemy import Table, Column, MetaData, Float, \ @@ -8,8 +8,8 @@ from sqlalchemy import Table, Column, MetaData, Float, \ UnicodeText, LargeBinary from sqlalchemy import types, schema from sqlalchemy.databases import mssql -from sqlalchemy.dialects.mssql.base import TIME, MS_2005_VERSION, \ - MS_2008_VERSION +from sqlalchemy.dialects.mssql.base import TIME, _MSDate +from sqlalchemy.dialects.mssql.base import MS_2005_VERSION, MS_2008_VERSION from sqlalchemy.testing import fixtures, \ AssertsExecutionResults, ComparesTables from sqlalchemy import testing @@ -34,6 +34,36 @@ 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) + assert_raises_message( + ValueError, + "could not parse 'abc' as a time value", + result_processor, 'abc' + ) + + +class MSDateTypeTest(fixtures.TestBase): + + def test_result_processor(self): + expected = datetime.date(2000, 1, 2) + self._assert_result_processor(expected, '2000-01-02') + + def _assert_result_processor(self, expected, value): + mssql_date_type = _MSDate() + 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) + assert_raises_message( + ValueError, + "could not parse 'abc' as a date value", + result_processor, 'abc' + ) + class TypeDDLTest(fixtures.TestBase): |
