diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-02-17 16:53:01 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-02-17 16:53:01 -0500 |
| commit | 2965da0a5d89119787bd45ac6f5459a7b755656d (patch) | |
| tree | a9444e1311b5b39d736ce1d248d464b95c27a9aa /test | |
| parent | bf1d03a9e58a0256db0b1f7389e23a6d11c4a964 (diff) | |
| download | sqlalchemy-2965da0a5d89119787bd45ac6f5459a7b755656d.tar.gz | |
- handle parameter sets that aren't correctly formed, so that
for example an exception object made within a test suite can
still repr (error seen in Keystone)
Diffstat (limited to 'test')
| -rw-r--r-- | test/engine/test_logging.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/test/engine/test_logging.py b/test/engine/test_logging.py index efdee8aef..51ebc5250 100644 --- a/test/engine/test_logging.py +++ b/test/engine/test_logging.py @@ -1,4 +1,4 @@ -from sqlalchemy.testing import eq_, assert_raises_message +from sqlalchemy.testing import eq_, assert_raises_message, eq_regex from sqlalchemy import select import sqlalchemy as tsa from sqlalchemy.testing import engines @@ -8,6 +8,7 @@ from sqlalchemy.testing import mock from sqlalchemy.testing.util import lazy_gc from sqlalchemy import util + class LogParamsTest(fixtures.TestBase): __only_on__ = 'sqlite' __requires__ = 'ad_hoc_engines', @@ -106,6 +107,31 @@ class LogParamsTest(fixtures.TestBase): ) ) + def test_exception_format_dict_param(self): + exception = tsa.exc.IntegrityError("foo", {"x": "y"}, None) + eq_regex( + str(exception), + r"\(.*.NoneType\) None \[SQL: 'foo'\] \[parameters: {'x': 'y'}\]" + ) + + def test_exception_format_unexpected_parameter(self): + # test that if the parameters aren't any known type, we just + # run through repr() + exception = tsa.exc.IntegrityError("foo", "bar", "bat") + eq_regex( + str(exception), + r"\(.*.str\) bat \[SQL: 'foo'\] \[parameters: 'bar'\]" + ) + + def test_exception_format_unexpected_member_parameter(self): + # test that if the parameters aren't any known type, we just + # run through repr() + exception = tsa.exc.IntegrityError("foo", ["bar", "bat"], "hoho") + eq_regex( + str(exception), + r"\(.*.str\) hoho \[SQL: 'foo'\] \[parameters: \['bar', 'bat'\]\]" + ) + def test_result_large_param(self): import random largeparam = ''.join(chr(random.randint(52, 85)) for i in range(5000)) |
