tlocke / pg8000

A Pure-Python PostgreSQL Driver
BSD 3-Clause "New" or "Revised" License
515 stars 46 forks source link

test failure #88

Closed Alessandro-Barbieri closed 3 years ago

Alessandro-Barbieri commented 3 years ago

Tests in gentoo overlay GURU's Ci fails with

>>> Test phase: dev-python/pg8000-1.21.2
 * python3_8: running distutils-r1_run_phase python_test
python3.8 -m pytest -vv -ra -l -Wdefault
============================= test session starts ==============================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -- /usr/bin/python3.8
cachedir: .pytest_cache
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /var/tmp/portage/dev-python/pg8000-1.21.2/work/pg8000-1.21.2
plugins: benchmark-3.4.1, mock-3.6.1
collecting ... collected 526 items / 1 error / 525 selected

==================================== ERRORS ====================================
_____________ ERROR collecting test/native/test_typeconversion.py ______________
test/native/test_typeconversion.py:450: in <module>
    CURRENCY = CURRENCIES[LANG]
E   KeyError: 'C.UTF8'
        BIGINT     = 20
        BIGINT_ARRAY = 1016
        BOOLEAN    = 16
        CIDR_ARRAY = 651
        CURRENCIES = {'C.UTF-8': '$', 'en_GB.UTF-8': '£'}
        DATE       = 1082
        Date       = <class 'datetime.date'>
        Datetime   = <class 'datetime.datetime'>
        Decimal    = <class 'decimal.Decimal'>
        Enum       = <enum 'Enum'>
        FLOAT_ARRAY = 1022
        INET       = 869
        INTEGER_ARRAY = 1007
        INTERVAL   = 1186
        IPv4Address = <class 'ipaddress.IPv4Address'>
        IPv4Network = <class 'ipaddress.IPv4Network'>
        JSON       = 114
        JSONB      = 3802
        JSONB_ARRAY = 3807
        JSON_ARRAY = 199
        LANG       = 'C.UTF8'
        MONEY      = 790
        MONEY_ARRAY = 791
        NUMERIC    = 1700
        NUMERIC_ARRAY = 1231
        OrderedDict = <class 'collections.OrderedDict'>
        PGInterval = <class 'pg8000.converters.PGInterval'>
        POINT      = 600
        SMALLINT_ARRAY = 1005
        TIME       = 1083
        TIMESTAMP  = 1114
        TIMESTAMPTZ = 1184
        TIMESTAMPTZ_ARRAY = 1185
        TIMESTAMP_ARRAY = 1115
        Time       = <class 'datetime.time'>
        Timedelta  = <class 'datetime.timedelta'>
        Timezone   = <class 'datetime.timezone'>
        UUID       = <class 'uuid.UUID'>
        UUID_ARRAY = 2951
        UUID_TYPE  = 2950
        XID        = 28
        __builtins__ = <builtins>
        __cached__ = '/var/tmp/portage/dev-python/pg8000-1.21.2/work/pg8000-1.21.2/test/native/__pycache__/test_typeconversion.cpython-38.pyc'
        __doc__    = None
        __file__   = '/var/tmp/portage/dev-python/pg8000-1.21.2/work/pg8000-1.21.2/test/native/test_typeconversion.py'
        __loader__ = <_pytest.assertion.rewrite.AssertionRewritingHook object at 0x7fe022981cd0>
        __name__   = 'test.native.test_typeconversion'
        __package__ = 'test.native'
        __spec__   = ModuleSpec(name='test.native.test_typeconversion', loader=<_pytest.assertion.rewrite.AssertionRewritingHook object at 0x7fe022981cd0>, origin='/var/tmp/portage/dev-python/pg8000-1.21.2/work/pg8000-1.21.2/test/native/test_typeconversion.py')
        dumps      = <function dumps at 0x7fe0232f33a0>
        os         = <module 'os' from '/usr/lib/python3.8/os.py'>
        pg_interval_in = <function pg_interval_in at 0x7fe02220b940>
        pg_interval_out = <function pg_interval_out at 0x7fe02220b9d0>
        pytest     = <module 'pytest' from '/usr/lib/python3.8/site-packages/pytest/__init__.py'>
        pytz       = <module 'pytz' from '/usr/lib/python3.8/site-packages/pytz/__init__.py'>
        test_bool_array_out = <function test_bool_array_out at 0x7fe021bb5700>
        test_boolean_in = <function test_boolean_in at 0x7fe021d0fd30>
        test_bytearray_subclass_round_trip = <function test_bytearray_subclass_round_trip at 0x7fe021fa9160>
        test_char_out = <function test_char_out at 0x7fe021bb51f0>
        test_enum_custom_round_trip = <function test_enum_custom_round_trip at 0x7fe021d0f0d0>
        test_enum_py_round_trip = <function test_enum_py_round_trip at 0x7fe021d0f700>
        test_enum_str_round_trip = <function test_enum_str_round_trip at 0x7fe021d0f310>
        test_float4_array_out = <function test_float4_array_out at 0x7fe021bb5790>
        test_float4_out = <function test_float4_out at 0x7fe021bb5040>
        test_float8_array_out = <function test_float8_array_out at 0x7fe021bb5820>
        test_float8_out = <function test_float8_out at 0x7fe021bb50d0>
        test_insert_null = <function test_insert_null at 0x7fe021fa9dc0>
        test_int2_array_out = <function test_int2_array_out at 0x7fe021bb55e0>
        test_int2_out = <function test_int2_out at 0x7fe021d0fe50>
        test_int2vector_in = <function test_int2vector_in at 0x7fe021d0f670>
        test_int4_array_out = <function test_int4_array_out at 0x7fe021bb5550>
        test_int4_out = <function test_int4_out at 0x7fe021d0fee0>
        test_int8_array_out = <function test_int8_array_out at 0x7fe021bb5670>
        test_int8_out = <function test_int8_out at 0x7fe021d0ff70>
        test_int_roundtrip = <function test_int_roundtrip at 0x7fe021fa9e50>
        test_interval_in_12_days_30_seconds = <function test_interval_in_12_days_30_seconds at 0x7fe021bb5430>
        test_interval_in_30_seconds = <function test_interval_in_30_seconds at 0x7fe021bb53a0>
        test_interval_roundtrip = <function test_interval_roundtrip at 0x7fe021d0f280>
        test_name_out = <function test_name_out at 0x7fe021d0fc10>
        test_numeric_out = <function test_numeric_out at 0x7fe021d0fdc0>
        test_oid_out = <function test_oid_out at 0x7fe021d0fca0>
        test_pg_interval_in = <function test_pg_interval_in at 0x7fe021bb5310>
        test_str_then_int = <function test_str_then_int at 0x7fe021cc59d0>
        test_text_out = <function test_text_out at 0x7fe021bb5280>
        test_timestamp_mismatch = <function test_timestamp_mismatch at 0x7fe021d0fb80>
        test_timestamp_out = <function test_timestamp_out at 0x7fe021bb54c0>
        test_timestamp_roundtrip = <function test_timestamp_roundtrip at 0x7fe021bcfa60>
        test_timestamp_tz_out = <function test_timestamp_tz_out at 0x7fe021d0f160>
        test_timestamp_tz_roundtrip = <function test_timestamp_tz_roundtrip at 0x7fe021d0faf0>
        test_varchar_out = <function test_varchar_out at 0x7fe021bb5160>
        test_xml_roundtrip = <function test_xml_roundtrip at 0x7fe021d0f040>
        time       = <module 'time' (built-in)>
        time_in    = <function time_in at 0x7fe02220bb80>
=========================== short test summary info ============================
ERROR test/native/test_typeconversion.py - KeyError: 'C.UTF8'
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
=============================== 1 error in 1.05s ===============================
 * ERROR: dev-python/pg8000-1.21.2::guru failed (test phase):
 *   pytest failed with python3.8

see https://bugs.gentoo.org/817176

tlocke commented 3 years ago

Thanks for the bug report @Alessandro-Barbieri. I've just made a new release that should fix the problem. Let me know if there's still a problem though.