summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-06-17 00:28:14 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-06-17 00:28:14 +0100
commitb241def64bdc9ac350ecae4b665d9eec11a48229 (patch)
treeb37317dcd66791385240c4e04d42fcfa6ea56a8c
parent2df79c5a5f2288d3caf34443c71ab15bde9935e3 (diff)
downloadpsycopg2-2_9_1.tar.gz
Fix representation of sql.Placeholder2_9_1
Fix also Placeholder tests, including an error which made an assert always true, which made us miss the regression in #1291.
-rw-r--r--lib/sql.py5
-rwxr-xr-xtests/test_sql.py28
2 files changed, 16 insertions, 17 deletions
diff --git a/lib/sql.py b/lib/sql.py
index 13548da..69b352b 100644
--- a/lib/sql.py
+++ b/lib/sql.py
@@ -438,7 +438,10 @@ class Placeholder(Composable):
return self._wrapped
def __repr__(self):
- return f"Placeholder({self._wrapped if self._wrapped is not None else ''!r})"
+ if self._wrapped is None:
+ return f"{self.__class__.__name__}()"
+ else:
+ return f"{self.__class__.__name__}({self._wrapped!r})"
def as_string(self, context):
if self._wrapped is not None:
diff --git a/tests/test_sql.py b/tests/test_sql.py
index 407c07d..4519b4a 100755
--- a/tests/test_sql.py
+++ b/tests/test_sql.py
@@ -373,29 +373,25 @@ class PlaceholderTest(ConnectingTestCase):
self.assertEqual(sql.Placeholder('foo').name, 'foo')
def test_repr(self):
- self.assert_(str(sql.Placeholder()), 'Placeholder()')
- self.assert_(repr(sql.Placeholder()), 'Placeholder()')
- self.assert_(sql.Placeholder().as_string(self.conn), '%s')
+ self.assertEqual(str(sql.Placeholder()), 'Placeholder()')
+ self.assertEqual(repr(sql.Placeholder()), 'Placeholder()')
+ self.assertEqual(sql.Placeholder().as_string(self.conn), '%s')
def test_repr_name(self):
- self.assert_(str(sql.Placeholder('foo')), "Placeholder('foo')")
- self.assert_(repr(sql.Placeholder('foo')), "Placeholder('foo')")
- self.assert_(sql.Placeholder('foo').as_string(self.conn), '%(foo)s')
+ self.assertEqual(str(sql.Placeholder('foo')), "Placeholder('foo')")
+ self.assertEqual(repr(sql.Placeholder('foo')), "Placeholder('foo')")
+ self.assertEqual(sql.Placeholder('foo').as_string(self.conn), '%(foo)s')
def test_bad_name(self):
self.assertRaises(ValueError, sql.Placeholder, ')')
def test_eq(self):
- self.assert_(sql.Placeholder('foo') == sql.Placeholder('foo'))
- self.assert_(sql.Placeholder('foo') != sql.Placeholder('bar'))
- self.assert_(sql.Placeholder('foo') != 'foo')
- self.assert_(sql.Placeholder() == sql.Placeholder())
- self.assert_(sql.Placeholder('foo') != sql.Placeholder())
- self.assert_(sql.Placeholder('foo') != sql.Literal('foo'))
-
- def test_as_string(self):
- self.assertEqual(sql.Placeholder().as_string(self.conn), "%s")
- self.assertEqual(sql.Placeholder('foo').as_string(self.conn), "%(foo)s")
+ self.assertEqual(sql.Placeholder('foo'), sql.Placeholder('foo'))
+ self.assertNotEqual(sql.Placeholder('foo'), sql.Placeholder('bar'))
+ self.assertNotEqual(sql.Placeholder('foo'), 'foo')
+ self.assertEqual(sql.Placeholder(), sql.Placeholder())
+ self.assertNotEqual(sql.Placeholder('foo'), sql.Placeholder())
+ self.assertNotEqual(sql.Placeholder('foo'), sql.Literal('foo'))
class ValuesTest(ConnectingTestCase):