]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Fixed formats in query with repeated arguments
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 8 Apr 2020 15:48:11 +0000 (03:48 +1200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 8 Apr 2020 15:48:11 +0000 (03:48 +1200)
Fixed test that wasn't checking the format.

psycopg3/utils/queries.py
tests/test_query.py

index fb89383b9e11a94cb74d611f6a83f8c87629220e..5fcbf8d46b9c55cd6e5fe35b76fe583a0f8ae779 100644 (file)
@@ -65,13 +65,13 @@ def query2pg(
         order = []
         for part in parts[:-1]:
             assert isinstance(part.item, str)
-            formats.append(part.format)
             chunks.append(part.pre)
             if part.item not in seen:
                 ph = b"$%d" % (len(seen) + 1)
                 seen[part.item] = (ph, part.format)
                 order.append(part.item)
                 chunks.append(ph)
+                formats.append(part.format)
             else:
                 if seen[part.item][1] != part.format:
                     raise e.ProgrammingError(
index 0323017813ba26cacfa9efece97f7ae94856e189..7fa3e15915d89c82620c91ecf6d51670276aa8f7 100644 (file)
@@ -90,6 +90,7 @@ def test_query2pg_seq(query, params, want, wformats):
 def test_query2pg_map(query, params, want, wformats, worder):
     out, formats, order = query2pg(query, params, codecs.lookup("utf-8"))
     assert out == want
+    assert formats == wformats
     assert order == worder