]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Connection encoding renamed to client_encoding
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 25 Jul 2020 18:18:15 +0000 (19:18 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 26 Oct 2020 16:24:27 +0000 (17:24 +0100)
More precise and consistent with set_client_encoding()

psycopg3/psycopg3/connection.py
psycopg3/psycopg3/types/text.py
psycopg3_c/psycopg3_c/types/text.pyx
tests/test_connection.py
tests/test_connection_async.py
tests/test_copy.py
tests/test_cursor.py
tests/test_errors.py
tests/types/test_text.py

index 12eeb0e790a13a9aafa79ba160add3d0e2c2de44..71d564ef6aa2812b0322361f52363859f56fdabb 100644 (file)
@@ -147,15 +147,15 @@ class BaseConnection:
         return self._codec
 
     @property
-    def encoding(self) -> str:
+    def client_encoding(self) -> str:
         rv = self.pgconn.parameter_status(b"client_encoding")
         if rv is not None:
             return rv.decode("ascii")
         else:
             return "UTF8"
 
-    @encoding.setter
-    def encoding(self, value: str) -> None:
+    @client_encoding.setter
+    def client_encoding(self, value: str) -> None:
         self._set_client_encoding(value)
 
     def _set_client_encoding(self, value: str) -> None:
@@ -402,7 +402,7 @@ class AsyncConnection(BaseConnection):
 
     def _set_client_encoding(self, value: str) -> None:
         raise AttributeError(
-            "'encoding' is read-only on async connections:"
+            "'client_encoding' is read-only on async connections:"
             " please use await .set_client_encoding() instead."
         )
 
index e620b4b6814db6a8cf3037b4e6f5acd23392ee73..75aa80524f552a6b9bca0ec19bc48892db651eb7 100644 (file)
@@ -28,7 +28,7 @@ class StringDumper(Dumper):
 
         self._encode: EncodeFunc
         if self.connection is not None:
-            if self.connection.encoding != "SQL_ASCII":
+            if self.connection.client_encoding != "SQL_ASCII":
                 self._encode = self.connection.codec.encode
             else:
                 self._encode = codecs.lookup("utf8").encode
@@ -52,7 +52,7 @@ class StringLoader(Loader):
         super().__init__(oid, context)
 
         if self.connection is not None:
-            if self.connection.encoding != "SQL_ASCII":
+            if self.connection.client_encoding != "SQL_ASCII":
                 self.decode = self.connection.codec.decode
             else:
                 self.decode = None
index ed1a36d364bd130a4c64654fa5488f646f80de1b..dece9bc46233383eee4be1a244e6a42fa4461212 100644 (file)
@@ -20,9 +20,9 @@ cdef class StringLoader(CLoader):
         self.pydecoder = None
         conn = self.connection
         if conn is not None:
-            if conn.encoding == "UTF8":
+            if conn.client_encoding == "UTF8":
                 self.is_utf8 = 1
-            elif conn.encoding != "SQL_ASCII":
+            elif conn.client_encoding != "SQL_ASCII":
                 self.pydecoder = conn.codec.decode
         else:
             self.pydecoder = codecs.lookup("utf8").decode
index abbbbbc5711cfe4842c29810ab437242d83bbb59..eb00c6b3d4073674b1736d4adfba7f3a432a07ac 100644 (file)
@@ -159,14 +159,14 @@ def test_autocommit_unknown(conn):
 
 def test_get_encoding(conn):
     (enc,) = conn.cursor().execute("show client_encoding").fetchone()
-    assert enc == conn.encoding
+    assert enc == conn.client_encoding
 
 
 def test_set_encoding(conn):
-    newenc = "LATIN1" if conn.encoding != "LATIN1" else "UTF8"
-    assert conn.encoding != newenc
-    conn.encoding = newenc
-    assert conn.encoding == newenc
+    newenc = "LATIN1" if conn.client_encoding != "LATIN1" else "UTF8"
+    assert conn.client_encoding != newenc
+    conn.client_encoding = newenc
+    assert conn.client_encoding == newenc
     (enc,) = conn.cursor().execute("show client_encoding").fetchone()
     assert enc == newenc
 
@@ -182,8 +182,8 @@ def test_set_encoding(conn):
     ],
 )
 def test_normalize_encoding(conn, enc, out, codec):
-    conn.encoding = enc
-    assert conn.encoding == out
+    conn.client_encoding = enc
+    assert conn.client_encoding == out
     assert conn.codec.name == codec
 
 
@@ -200,19 +200,19 @@ def test_normalize_encoding(conn, enc, out, codec):
 def test_encoding_env_var(dsn, monkeypatch, enc, out, codec):
     monkeypatch.setenv("PGCLIENTENCODING", enc)
     conn = psycopg3.connect(dsn)
-    assert conn.encoding == out
+    assert conn.client_encoding == out
     assert conn.codec.name == codec
 
 
 def test_set_encoding_unsupported(conn):
-    conn.encoding = "EUC_TW"
+    conn.client_encoding = "EUC_TW"
     with pytest.raises(psycopg3.NotSupportedError):
         conn.cursor().execute("select 1")
 
 
 def test_set_encoding_bad(conn):
     with pytest.raises(psycopg3.DatabaseError):
-        conn.encoding = "WAT"
+        conn.client_encoding = "WAT"
 
 
 @pytest.mark.parametrize(
index acb45b5e7fc9059984ea634912b145e2a0deb143..0e23dc7516575f989c064114643f5e512d716b49 100644 (file)
@@ -169,17 +169,17 @@ async def test_get_encoding(aconn):
     cur = aconn.cursor()
     await cur.execute("show client_encoding")
     (enc,) = await cur.fetchone()
-    assert enc == aconn.encoding
+    assert enc == aconn.client_encoding
 
 
 async def test_set_encoding(aconn):
-    newenc = "LATIN1" if aconn.encoding != "LATIN1" else "UTF8"
-    assert aconn.encoding != newenc
+    newenc = "LATIN1" if aconn.client_encoding != "LATIN1" else "UTF8"
+    assert aconn.client_encoding != newenc
     with pytest.raises(AttributeError):
-        aconn.encoding = newenc
-    assert aconn.encoding != newenc
+        aconn.client_encoding = newenc
+    assert aconn.client_encoding != newenc
     await aconn.set_client_encoding(newenc)
-    assert aconn.encoding == newenc
+    assert aconn.client_encoding == newenc
     cur = aconn.cursor()
     await cur.execute("show client_encoding")
     (enc,) = await cur.fetchone()
@@ -198,7 +198,7 @@ async def test_set_encoding(aconn):
 )
 async def test_normalize_encoding(aconn, enc, out, codec):
     await aconn.set_client_encoding(enc)
-    assert aconn.encoding == out
+    assert aconn.client_encoding == out
     assert aconn.codec.name == codec
 
 
@@ -215,7 +215,7 @@ async def test_normalize_encoding(aconn, enc, out, codec):
 async def test_encoding_env_var(dsn, monkeypatch, enc, out, codec):
     monkeypatch.setenv("PGCLIENTENCODING", enc)
     aconn = await psycopg3.AsyncConnection.connect(dsn)
-    assert aconn.encoding == out
+    assert aconn.client_encoding == out
     assert aconn.codec.name == codec
 
 
index e7433e5a66089e886d5167a909de3774d8122425..d0a5acaa072eef3ab5816fe6fd55fa57c1c48613 100644 (file)
@@ -180,7 +180,7 @@ def test_copy_in_allchars(conn):
     cur = conn.cursor()
     ensure_table(cur, sample_tabledef)
 
-    conn.encoding = "utf8"
+    conn.client_encoding = "utf8"
     with cur.copy("copy copy_in from stdin (format text)") as copy:
         for i in range(1, 256):
             copy.write_row((i, None, chr(i)))
index 21cdd467e3f293eb2c85e562a042ade348f6ae62..416a2108a470410ffbb7a56be45b913ad858b588 100644 (file)
@@ -101,14 +101,14 @@ def test_execute_binary_result(conn):
 
 @pytest.mark.parametrize("encoding", ["utf8", "latin9"])
 def test_query_encode(conn, encoding):
-    conn.encoding = encoding
+    conn.client_encoding = encoding
     cur = conn.cursor()
     (res,) = cur.execute("select '\u20ac'").fetchone()
     assert res == "\u20ac"
 
 
 def test_query_badenc(conn):
-    conn.encoding = "latin1"
+    conn.client_encoding = "latin1"
     cur = conn.cursor()
     with pytest.raises(UnicodeEncodeError):
         cur.execute("select '\u20ac'")
index f3dd8c2ae01d0c411ace962c38d11b0d2623386d..d7f58cf6978eedb650cd9f3ef0afc6bbdc7a5b87 100644 (file)
@@ -49,7 +49,7 @@ def test_diag_encoding(conn, enc):
     msgs = []
     conn.pgconn.exec_(b"set client_min_messages to notice")
     conn.add_notice_handler(lambda diag: msgs.append(diag.message_primary))
-    conn.encoding = enc
+    conn.client_encoding = enc
     cur = conn.cursor()
     cur.execute(
         "do $$begin raise notice 'hello %', chr(8364); end$$ language plpgsql"
@@ -59,7 +59,7 @@ def test_diag_encoding(conn, enc):
 
 @pytest.mark.parametrize("enc", ["utf8", "latin9"])
 def test_error_encoding(conn, enc):
-    conn.encoding = enc
+    conn.client_encoding = enc
     cur = conn.cursor()
     with pytest.raises(e.DatabaseError) as excinfo:
         cur.execute(
index 758d482444910832581f2e4d25e0dcd1a0c42198..90da912625d291b130ad18d6331e431831dddaee 100644 (file)
@@ -38,7 +38,7 @@ def test_dump_enc(conn, fmt_in, encoding):
     cur = conn.cursor()
     ph = "%s" if fmt_in == Format.TEXT else "%b"
 
-    conn.encoding = encoding
+    conn.client_encoding = encoding
     (res,) = cur.execute(f"select {ph}::bytea", (eur,)).fetchone()
     assert res == eur.encode("utf8")
 
@@ -48,7 +48,7 @@ def test_dump_ascii(conn, fmt_in):
     cur = conn.cursor()
     ph = "%s" if fmt_in == Format.TEXT else "%b"
 
-    conn.encoding = "sql_ascii"
+    conn.client_encoding = "sql_ascii"
     (res,) = cur.execute(f"select ascii({ph})", (eur,)).fetchone()
     assert res == ord(eur)
 
@@ -58,7 +58,7 @@ def test_dump_badenc(conn, fmt_in):
     cur = conn.cursor()
     ph = "%s" if fmt_in == Format.TEXT else "%b"
 
-    conn.encoding = "latin1"
+    conn.client_encoding = "latin1"
     with pytest.raises(UnicodeEncodeError):
         cur.execute(f"select {ph}::bytea", (eur,))
 
@@ -69,7 +69,7 @@ def test_dump_badenc(conn, fmt_in):
 def test_load_enc(conn, typename, encoding, fmt_out):
     cur = conn.cursor(format=fmt_out)
 
-    conn.encoding = encoding
+    conn.client_encoding = encoding
     (res,) = cur.execute(
         f"select chr(%s::int)::{typename}", (ord(eur),)
     ).fetchone()
@@ -81,7 +81,7 @@ def test_load_enc(conn, typename, encoding, fmt_out):
 def test_load_badenc(conn, typename, fmt_out):
     cur = conn.cursor(format=fmt_out)
 
-    conn.encoding = "latin1"
+    conn.client_encoding = "latin1"
     with pytest.raises(psycopg3.DatabaseError):
         cur.execute(f"select chr(%s::int)::{typename}", (ord(eur),))
 
@@ -91,7 +91,7 @@ def test_load_badenc(conn, typename, fmt_out):
 def test_load_ascii(conn, typename, fmt_out):
     cur = conn.cursor(format=fmt_out)
 
-    conn.encoding = "sql_ascii"
+    conn.client_encoding = "sql_ascii"
     (res,) = cur.execute(
         f"select chr(%s::int)::{typename}", (ord(eur),)
     ).fetchone()
@@ -103,7 +103,7 @@ def test_load_ascii(conn, typename, fmt_out):
 def test_load_ascii_encanyway(conn, typename, fmt_out):
     cur = conn.cursor(format=fmt_out)
 
-    conn.encoding = "sql_ascii"
+    conn.client_encoding = "sql_ascii"
     (res,) = cur.execute(f"select 'aa'::{typename}").fetchone()
     assert res == "aa"
 
@@ -123,7 +123,7 @@ def test_text_array(conn, typename, fmt_in, fmt_out):
 @pytest.mark.parametrize("fmt_in", [Format.TEXT, Format.BINARY])
 @pytest.mark.parametrize("fmt_out", [Format.TEXT, Format.BINARY])
 def test_text_array_ascii(conn, fmt_in, fmt_out):
-    conn.encoding = "sql_ascii"
+    conn.client_encoding = "sql_ascii"
     cur = conn.cursor(format=fmt_out)
     a = list(map(chr, range(1, 256))) + [eur]
     exp = [s.encode("utf8") for s in a]