Modernize Python exception syntax in tests
Change the exception syntax used in the tests to use the more current except Exception as ex: rather than the old except Exception, ex: Since support for Python <2.6 has been removed, all supported versions now support the new style, and we can save one step in the Python 3 compatibility conversion. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/98b69261-298c-13d2-f34d-836fd9c29b21%402ndquadrant.com
This commit is contained in:
parent
37f21ed132
commit
45223fd9ce
|
@ -186,7 +186,7 @@ DETAIL: message:(plpy.Error: message text), detail:(detail text), hint: (hint t
|
|||
DO $$
|
||||
try:
|
||||
plpy.execute("select raise_exception(_message => 'my message', _sqlstate => 'XX987', _hint => 'some hint', _table_name => 'users_tab', _datatype_name => 'user_type')")
|
||||
except Exception, e:
|
||||
except Exception as e:
|
||||
plpy.info(e.spidata)
|
||||
raise e
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
@ -196,7 +196,7 @@ HINT: some hint
|
|||
DO $$
|
||||
try:
|
||||
plpy.error(message = 'my message', sqlstate = 'XX987', hint = 'some hint', table_name = 'users_tab', datatype_name = 'user_type')
|
||||
except Exception, e:
|
||||
except Exception as e:
|
||||
plpy.info('sqlstate: %s, hint: %s, table_name: %s, datatype_name: %s' % (e.sqlstate, e.hint, e.table_name, e.datatype_name))
|
||||
raise e
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
|
|
@ -97,7 +97,7 @@ CREATE FUNCTION invalid_type_caught(a text) RETURNS text
|
|||
q = "SELECT fname FROM users WHERE lname = $1"
|
||||
try:
|
||||
SD["plan"] = plpy.prepare(q, [ "test" ])
|
||||
except plpy.SPIError, ex:
|
||||
except plpy.SPIError as ex:
|
||||
plpy.notice(str(ex))
|
||||
return None
|
||||
rv = plpy.execute(SD["plan"], [ a ])
|
||||
|
@ -122,7 +122,7 @@ CREATE FUNCTION invalid_type_reraised(a text) RETURNS text
|
|||
q = "SELECT fname FROM users WHERE lname = $1"
|
||||
try:
|
||||
SD["plan"] = plpy.prepare(q, [ "test" ])
|
||||
except plpy.SPIError, ex:
|
||||
except plpy.SPIError as ex:
|
||||
plpy.error(str(ex))
|
||||
rv = plpy.execute(SD["plan"], [ a ])
|
||||
if len(rv):
|
||||
|
@ -321,9 +321,9 @@ $$
|
|||
from plpy import spiexceptions
|
||||
try:
|
||||
plpy.execute("insert into specific values (%s)" % (i or "NULL"));
|
||||
except spiexceptions.NotNullViolation, e:
|
||||
except spiexceptions.NotNullViolation as e:
|
||||
plpy.notice("Violated the NOT NULL constraint, sqlstate %s" % e.sqlstate)
|
||||
except spiexceptions.UniqueViolation, e:
|
||||
except spiexceptions.UniqueViolation as e:
|
||||
plpy.notice("Violated the UNIQUE constraint, sqlstate %s" % e.sqlstate)
|
||||
$$ LANGUAGE plpythonu;
|
||||
SELECT specific_exception(2);
|
||||
|
|
|
@ -21,7 +21,7 @@ CREATE FUNCTION import_succeed() returns text
|
|||
import re
|
||||
import string
|
||||
import time
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.notice("import failed -- %s" % str(ex))
|
||||
return "failed, that wasn''t supposed to happen"
|
||||
return "succeeded, as expected"'
|
||||
|
|
|
@ -25,7 +25,7 @@ CREATE FUNCTION test_param_names3(a0 integer) RETURNS boolean AS $$
|
|||
try:
|
||||
assert a1 == args[0]
|
||||
return False
|
||||
except NameError, e:
|
||||
except NameError as e:
|
||||
assert e.args[0].find("a1") > -1
|
||||
return True
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
|
|
@ -26,7 +26,7 @@ CREATE FUNCTION spi_prepared_plan_test_one(a text) RETURNS text
|
|||
try:
|
||||
rv = plpy.execute(SD["myplan"], [a])
|
||||
return "there are " + str(rv[0]["count"]) + " " + str(a) + "s"
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
@ -39,7 +39,7 @@ CREATE FUNCTION spi_prepared_plan_test_two(a text) RETURNS text
|
|||
try:
|
||||
rv = SD["myplan"].execute([a])
|
||||
return "there are " + str(rv[0]["count"]) + " " + str(a) + "s"
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
@ -53,7 +53,7 @@ try:
|
|||
rv = plpy.execute(SD["myplan"])
|
||||
if len(rv):
|
||||
return rv[0]["count"]
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
|
|
@ -66,7 +66,7 @@ with plpy.subtransaction():
|
|||
with plpy.subtransaction():
|
||||
plpy.execute("INSERT INTO subtransaction_tbl VALUES (3)")
|
||||
plpy.execute("error")
|
||||
except plpy.SPIError, e:
|
||||
except plpy.SPIError as e:
|
||||
if not swallow:
|
||||
raise
|
||||
plpy.notice("Swallowed %s(%r)" % (e.__class__.__name__, e.args[0]))
|
||||
|
|
|
@ -400,7 +400,7 @@ CREATE FUNCTION test_type_unmarshal(x bytea) RETURNS text AS $$
|
|||
import marshal
|
||||
try:
|
||||
return marshal.loads(x)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
return 'FAILED: ' + str(e)
|
||||
$$ LANGUAGE plpythonu;
|
||||
SELECT test_type_unmarshal(x) FROM test_type_marshal() x;
|
||||
|
|
|
@ -14,7 +14,7 @@ REGRESS := $(foreach test,$(REGRESS),$(if $(filter $(test),$(REGRESS_PLPYTHON3_M
|
|||
pgregress-python3-mangle:
|
||||
$(MKDIR_P) sql/python3 expected/python3 results/python3
|
||||
for file in $(patsubst %,$(srcdir)/sql/%.sql,$(REGRESS_PLPYTHON3_MANGLE)) $(patsubst %,$(srcdir)/expected/%*.out,$(REGRESS_PLPYTHON3_MANGLE)); do \
|
||||
sed -e 's/except \([[:alpha:]][[:alpha:].]*\), *\([[:alpha:]][[:alpha:]]*\):/except \1 as \2:/g' \
|
||||
sed \
|
||||
-e "s/<type 'exceptions\.\([[:alpha:]]*\)'>/<class '\1'>/g" \
|
||||
-e "s/<type 'long'>/<class 'int'>/g" \
|
||||
-e "s/\([0-9][0-9]*\)L/\1/g" \
|
||||
|
|
|
@ -125,7 +125,7 @@ $$;
|
|||
DO $$
|
||||
try:
|
||||
plpy.execute("select raise_exception(_message => 'my message', _sqlstate => 'XX987', _hint => 'some hint', _table_name => 'users_tab', _datatype_name => 'user_type')")
|
||||
except Exception, e:
|
||||
except Exception as e:
|
||||
plpy.info(e.spidata)
|
||||
raise e
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
@ -133,7 +133,7 @@ $$ LANGUAGE plpythonu;
|
|||
DO $$
|
||||
try:
|
||||
plpy.error(message = 'my message', sqlstate = 'XX987', hint = 'some hint', table_name = 'users_tab', datatype_name = 'user_type')
|
||||
except Exception, e:
|
||||
except Exception as e:
|
||||
plpy.info('sqlstate: %s, hint: %s, table_name: %s, datatype_name: %s' % (e.sqlstate, e.hint, e.table_name, e.datatype_name))
|
||||
raise e
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
|
|
@ -82,7 +82,7 @@ CREATE FUNCTION invalid_type_caught(a text) RETURNS text
|
|||
q = "SELECT fname FROM users WHERE lname = $1"
|
||||
try:
|
||||
SD["plan"] = plpy.prepare(q, [ "test" ])
|
||||
except plpy.SPIError, ex:
|
||||
except plpy.SPIError as ex:
|
||||
plpy.notice(str(ex))
|
||||
return None
|
||||
rv = plpy.execute(SD["plan"], [ a ])
|
||||
|
@ -104,7 +104,7 @@ CREATE FUNCTION invalid_type_reraised(a text) RETURNS text
|
|||
q = "SELECT fname FROM users WHERE lname = $1"
|
||||
try:
|
||||
SD["plan"] = plpy.prepare(q, [ "test" ])
|
||||
except plpy.SPIError, ex:
|
||||
except plpy.SPIError as ex:
|
||||
plpy.error(str(ex))
|
||||
rv = plpy.execute(SD["plan"], [ a ])
|
||||
if len(rv):
|
||||
|
@ -247,9 +247,9 @@ $$
|
|||
from plpy import spiexceptions
|
||||
try:
|
||||
plpy.execute("insert into specific values (%s)" % (i or "NULL"));
|
||||
except spiexceptions.NotNullViolation, e:
|
||||
except spiexceptions.NotNullViolation as e:
|
||||
plpy.notice("Violated the NOT NULL constraint, sqlstate %s" % e.sqlstate)
|
||||
except spiexceptions.UniqueViolation, e:
|
||||
except spiexceptions.UniqueViolation as e:
|
||||
plpy.notice("Violated the UNIQUE constraint, sqlstate %s" % e.sqlstate)
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ CREATE FUNCTION import_succeed() returns text
|
|||
import re
|
||||
import string
|
||||
import time
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.notice("import failed -- %s" % str(ex))
|
||||
return "failed, that wasn''t supposed to happen"
|
||||
return "succeeded, as expected"'
|
||||
|
|
|
@ -29,7 +29,7 @@ CREATE FUNCTION test_param_names3(a0 integer) RETURNS boolean AS $$
|
|||
try:
|
||||
assert a1 == args[0]
|
||||
return False
|
||||
except NameError, e:
|
||||
except NameError as e:
|
||||
assert e.args[0].find("a1") > -1
|
||||
return True
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
|
|
@ -31,7 +31,7 @@ CREATE FUNCTION spi_prepared_plan_test_one(a text) RETURNS text
|
|||
try:
|
||||
rv = plpy.execute(SD["myplan"], [a])
|
||||
return "there are " + str(rv[0]["count"]) + " " + str(a) + "s"
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
@ -45,7 +45,7 @@ CREATE FUNCTION spi_prepared_plan_test_two(a text) RETURNS text
|
|||
try:
|
||||
rv = SD["myplan"].execute([a])
|
||||
return "there are " + str(rv[0]["count"]) + " " + str(a) + "s"
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
@ -60,7 +60,7 @@ try:
|
|||
rv = plpy.execute(SD["myplan"])
|
||||
if len(rv):
|
||||
return rv[0]["count"]
|
||||
except Exception, ex:
|
||||
except Exception as ex:
|
||||
plpy.error(str(ex))
|
||||
return None
|
||||
'
|
||||
|
|
|
@ -40,7 +40,7 @@ with plpy.subtransaction():
|
|||
with plpy.subtransaction():
|
||||
plpy.execute("INSERT INTO subtransaction_tbl VALUES (3)")
|
||||
plpy.execute("error")
|
||||
except plpy.SPIError, e:
|
||||
except plpy.SPIError as e:
|
||||
if not swallow:
|
||||
raise
|
||||
plpy.notice("Swallowed %s(%r)" % (e.__class__.__name__, e.args[0]))
|
||||
|
|
|
@ -163,7 +163,7 @@ CREATE FUNCTION test_type_unmarshal(x bytea) RETURNS text AS $$
|
|||
import marshal
|
||||
try:
|
||||
return marshal.loads(x)
|
||||
except ValueError, e:
|
||||
except ValueError as e:
|
||||
return 'FAILED: ' + str(e)
|
||||
$$ LANGUAGE plpythonu;
|
||||
|
||||
|
|
|
@ -290,7 +290,6 @@ sub mangle_plpython3
|
|||
close($handle);
|
||||
do
|
||||
{
|
||||
s/except ([[:alpha:]][[:alpha:].]*), *([[:alpha:]][[:alpha:]]*):/except $1 as $2:/g;
|
||||
s/<type 'exceptions\.([[:alpha:]]*)'>/<class '$1'>/g;
|
||||
s/<type 'long'>/<class 'int'>/g;
|
||||
s/([0-9][0-9]*)L/$1/g;
|
||||
|
|
Loading…
Reference in New Issue