[1m============================= test session starts ==============================[0m
platform linux -- Python 3.10.12, pytest-9.0.2, pluggy-1.6.0
rootdir: /workspace/wcwidth
configfile: tox.ini
plugins: anyio-4.12.1, metadata-3.1.1, json-report-1.5.0, cov-7.0.0
collected 39 items

tests/test_core.py [31mF[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m                                     [ 43%][0m
tests/test_emojis.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[32m.[0m[31m                                            [ 64%][0m
tests/test_table_integrity.py [33ms[0m[31m                                          [ 66%][0m
tests/test_ucslevel.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31mF[0m[31mF[0m[31mF[0m[31mF[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[31m                                     [100%][0m

=================================== FAILURES ===================================
[31m[1m_____________________________ test_package_version _____________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_package_version[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""wcwidth.__version__ is expected value."""[39;49;00m[90m[39;49;00m
        [90m# given,[39;49;00m[90m[39;49;00m
>       expected = importmeta.version([33m'[39;49;00m[33mwcwidth[39;49;00m[33m'[39;49;00m)[90m[39;49;00m

[1m[31mtests/test_core.py[0m:24: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[1m[31m/usr/lib/python3.10/importlib/metadata/__init__.py[0m:996: in version
    [0m[94mreturn[39;49;00m distribution(distribution_name).version[90m[39;49;00m
[1m[31m/usr/lib/python3.10/importlib/metadata/__init__.py[0m:969: in distribution
    [0m[94mreturn[39;49;00m Distribution.from_name(distribution_name)[90m[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'importlib.metadata.Distribution'>, name = 'wcwidth'

    [0m[37m@classmethod[39;49;00m[90m[39;49;00m
    [94mdef[39;49;00m[90m [39;49;00m[92mfrom_name[39;49;00m([96mcls[39;49;00m, name):[90m[39;49;00m
    [90m    [39;49;00m[33m"""Return the Distribution for the given package name.[39;49;00m
    [33m[39;49;00m
    [33m    :param name: The name of the distribution package to search for.[39;49;00m
    [33m    :return: The Distribution instance (or subclass thereof) for the named[39;49;00m
    [33m        package, if found.[39;49;00m
    [33m    :raises PackageNotFoundError: When the named package's distribution[39;49;00m
    [33m        metadata cannot be found.[39;49;00m
    [33m    """[39;49;00m[90m[39;49;00m
        [94mfor[39;49;00m resolver [95min[39;49;00m [96mcls[39;49;00m._discover_resolvers():[90m[39;49;00m
            dists = resolver(DistributionFinder.Context(name=name))[90m[39;49;00m
            dist = [96mnext[39;49;00m([96miter[39;49;00m(dists), [94mNone[39;49;00m)[90m[39;49;00m
            [94mif[39;49;00m dist [95mis[39;49;00m [95mnot[39;49;00m [94mNone[39;49;00m:[90m[39;49;00m
                [94mreturn[39;49;00m dist[90m[39;49;00m
        [94melse[39;49;00m:[90m[39;49;00m
>           [94mraise[39;49;00m PackageNotFoundError(name)[90m[39;49;00m
[1m[31mE           importlib.metadata.PackageNotFoundError: No package metadata was found for wcwidth[0m

[1m[31m/usr/lib/python3.10/importlib/metadata/__init__.py[0m:548: PackageNotFoundError
[31m[1m________________________ test_longer_emoji_zwj_sequence ________________________[0m

    [0m[37m@pytest[39;49;00m.mark.skipif(NARROW_ONLY, reason=[33m"[39;49;00m[33mTest cannot verify on python [39;49;00m[33m'[39;49;00m[33mnarrow[39;49;00m[33m'[39;49;00m[33m builds[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
    [94mdef[39;49;00m[90m [39;49;00m[92mtest_longer_emoji_zwj_sequence[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""[39;49;00m
    [33m    A much longer emoji ZWJ sequence of 10 total codepoints is just 2 cells![39;49;00m
    [33m[39;49;00m
    [33m    Also test the same sequence in duplicate, verifying multiple VS-16 sequences[39;49;00m
    [33m    in a single function call.[39;49;00m
    [33m    """[39;49;00m[90m[39;49;00m
        [90m# 'Category Code', 'East Asian Width property' -- 'description'[39;49;00m[90m[39;49;00m
        phrase = ([33mu[39;49;00m[33m"[39;49;00m[33m\U0001F9D1[39;49;00m[33m"[39;49;00m   [90m# 'So', 'W' -- ADULT[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\U0001F3FB[39;49;00m[33m"[39;49;00m   [90m# 'Sk', 'W' -- EMOJI MODIFIER FITZPATRICK TYPE-1-2[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\u200d[39;49;00m[33m"[39;49;00m       [90m# 'Cf', 'N' -- ZERO WIDTH JOINER[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\u2764[39;49;00m[33m"[39;49;00m       [90m# 'So', 'N' -- HEAVY BLACK HEART[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\uFE0F[39;49;00m[33m"[39;49;00m       [90m# 'Mn', 'A' -- VARIATION SELECTOR-16[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\u200d[39;49;00m[33m"[39;49;00m       [90m# 'Cf', 'N' -- ZERO WIDTH JOINER[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\U0001F48B[39;49;00m[33m"[39;49;00m   [90m# 'So', 'W' -- KISS MARK[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\u200d[39;49;00m[33m"[39;49;00m       [90m# 'Cf', 'N' -- ZERO WIDTH JOINER[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\U0001F9D1[39;49;00m[33m"[39;49;00m   [90m# 'So', 'W' -- ADULT[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\U0001F3FD[39;49;00m[33m"[39;49;00m   [90m# 'Sk', 'W' -- EMOJI MODIFIER FITZPATRICK TYPE-4[39;49;00m[90m[39;49;00m
        ) * [94m2[39;49;00m[90m[39;49;00m
        [90m# This test adapted from https://www.unicode.org/L2/L2023/23107-terminal-suppt.pdf[39;49;00m[90m[39;49;00m
        expect_length_each = ([94m2[39;49;00m, [94m0[39;49;00m, [94m0[39;49;00m, [94m1[39;49;00m, [94m0[39;49;00m, [94m0[39;49;00m, [94m2[39;49;00m, [94m0[39;49;00m, [94m2[39;49;00m, [94m0[39;49;00m) * [94m2[39;49;00m[90m[39;49;00m
        expect_length_phrase = [94m4[39;49;00m[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise,[39;49;00m[90m[39;49;00m
        length_each = [96mtuple[39;49;00m([96mmap[39;49;00m(wcwidth.wcwidth, phrase))[90m[39;49;00m
        length_phrase = wcwidth.wcswidth(phrase)[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify.[39;49;00m[90m[39;49;00m
        [94massert[39;49;00m length_each == expect_length_each[90m[39;49;00m
>       [94massert[39;49;00m length_phrase == expect_length_phrase[90m[39;49;00m
[1m[31mE       assert 14 == 4[0m

[1m[31mtests/test_emojis.py[0m:145: AssertionError
[31m[1m_____________________ test_recommended_emoji_zwj_sequences _____________________[0m

    [0m[37m@pytest[39;49;00m.mark.skipif(NARROW_ONLY, reason=[33m"[39;49;00m[33mSome sequences in text file are not compatible with [39;49;00m[33m'[39;49;00m[33mnarrow[39;49;00m[33m'[39;49;00m[33m builds[39;49;00m[33m"[39;49;00m)[90m[39;49;00m
    [94mdef[39;49;00m[90m [39;49;00m[92mtest_recommended_emoji_zwj_sequences[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""[39;49;00m
    [33m    Test wcswidth of all of the unicode.org-published emoji-zwj-sequences.txt[39;49;00m
    [33m    """[39;49;00m[90m[39;49;00m
        [90m# given,[39;49;00m[90m[39;49;00m
        lines, sequences = read_sequences_from_file([33m'[39;49;00m[33memoji-zwj-sequences.txt[39;49;00m[33m'[39;49;00m)[90m[39;49;00m
    [90m[39;49;00m
        errors = [][90m[39;49;00m
        [90m# Exercise, track by zipping with original text file line, a debugging aide[39;49;00m[90m[39;49;00m
        num = [94m0[39;49;00m[90m[39;49;00m
        [94mfor[39;49;00m sequence, line [95min[39;49;00m [96mzip[39;49;00m(sequences, lines):[90m[39;49;00m
            num += [94m1[39;49;00m[90m[39;49;00m
            measured_width = wcwidth.wcswidth(sequence)[90m[39;49;00m
            [94mif[39;49;00m measured_width != [94m2[39;49;00m:[90m[39;49;00m
                errors.append({[90m[39;49;00m
                    [33m'[39;49;00m[33mexpected_width[39;49;00m[33m'[39;49;00m: [94m2[39;49;00m,[90m[39;49;00m
                    [33m'[39;49;00m[33mline[39;49;00m[33m'[39;49;00m: line,[90m[39;49;00m
                    [33m'[39;49;00m[33mmeasured_width[39;49;00m[33m'[39;49;00m: measured_width,[90m[39;49;00m
                    [33m'[39;49;00m[33msequence[39;49;00m[33m'[39;49;00m: sequence,[90m[39;49;00m
                })[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify[39;49;00m[90m[39;49;00m
>       [94massert[39;49;00m errors == [][90m[39;49;00m
[1m[31mE       AssertionError: assert [{'expected_w...u200d👦'}, ...] == [][0m
[1m[31mE         [0m
[1m[31mE         Left contains 1418 more items, first extra item: [0m{[33m'[39;49;00m[33mexpected_width[39;49;00m[33m'[39;49;00m: [94m2[39;49;00m, [33m'[39;49;00m[33mline[39;49;00m[33m'[39;49;00m: [33m'[39;49;00m[33m1F468 200D 2764 FE0F 200D 1F468             ; RGI_Emoji_ZWJ_Sequence  ; couple with hea...                                 # E2.0   [1] (👨[39;49;00m[33m\u200d[39;49;00m[33m❤️[39;49;00m[33m\u200d[39;49;00m[33m👨)[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mmeasured_width[39;49;00m[33m'[39;49;00m: [94m5[39;49;00m, [33m'[39;49;00m[33msequence[39;49;00m[33m'[39;49...[0m
[1m[31mE         [0m
[1m[31mE         ...Full output truncated (2 lines hidden), use '-vv' to show[0m

[1m[31mtests/test_emojis.py[0m:181: AssertionError
[31m[1m___________________ test_recommended_variation_16_sequences ____________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_recommended_variation_16_sequences[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""[39;49;00m
    [33m    Test wcswidth of all of the unicode.org-published emoji-variation-sequences.txt[39;49;00m
    [33m    """[39;49;00m[90m[39;49;00m
        [90m# given,[39;49;00m[90m[39;49;00m
        lines, sequences = read_sequences_from_file([33m'[39;49;00m[33memoji-variation-sequences.txt[39;49;00m[33m'[39;49;00m)[90m[39;49;00m
    [90m[39;49;00m
        errors = [][90m[39;49;00m
        num = [94m0[39;49;00m[90m[39;49;00m
        [94mfor[39;49;00m sequence, line [95min[39;49;00m [96mzip[39;49;00m(sequences, lines):[90m[39;49;00m
            num += [94m1[39;49;00m[90m[39;49;00m
            [94mif[39;49;00m [33m'[39;49;00m[33m\ufe0f[39;49;00m[33m'[39;49;00m [95mnot[39;49;00m [95min[39;49;00m sequence:[90m[39;49;00m
                [90m# filter for only \uFE0F (VS-16)[39;49;00m[90m[39;49;00m
                [94mcontinue[39;49;00m[90m[39;49;00m
            measured_width = wcwidth.wcswidth(sequence)[90m[39;49;00m
            [94mif[39;49;00m measured_width != [94m2[39;49;00m:[90m[39;49;00m
                errors.append({[90m[39;49;00m
                    [33m'[39;49;00m[33mexpected_width[39;49;00m[33m'[39;49;00m: [94m2[39;49;00m,[90m[39;49;00m
                    [33m'[39;49;00m[33mline[39;49;00m[33m'[39;49;00m: line,[90m[39;49;00m
                    [33m'[39;49;00m[33mmeasured_width[39;49;00m[33m'[39;49;00m: wcwidth.wcswidth(sequence),[90m[39;49;00m
                    [33m'[39;49;00m[33msequence[39;49;00m[33m'[39;49;00m: sequence,[90m[39;49;00m
                })[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify[39;49;00m[90m[39;49;00m
>       [94massert[39;49;00m errors == [][90m[39;49;00m
[1m[31mE       AssertionError: assert [{'expected_w...': '3️'}, ...] == [][0m
[1m[31mE         [0m
[1m[31mE         Left contains 213 more items, first extra item: [0m{[33m'[39;49;00m[33mexpected_width[39;49;00m[33m'[39;49;00m: [94m2[39;49;00m, [33m'[39;49;00m[33mline[39;49;00m[33m'[39;49;00m: [33m'[39;49;00m[33m0023 FE0F  ; emoji style; # (1.1) NUMBER SIGN[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mmeasured_width[39;49;00m[33m'[39;49;00m: [94m1[39;49;00m, [33m'[39;49;00m[33msequence[39;49;00m[33m'[39;49;00m: [33m'[39;49;00m[33m#️[39;49;00m[33m'[39;49;00m}[90m[39;49;00m[0m
[1m[31mE         Use -v to get more diff[0m

[1m[31mtests/test_emojis.py[0m:209: AssertionError
[31m[1m_____________________________ test_unicode_9_vs16 ______________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_unicode_9_vs16[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""Verify effect of VS-16 on unicode_version 9.0 and later"""[39;49;00m[90m[39;49;00m
        phrase = ([33mu[39;49;00m[33m"[39;49;00m[33m\u2640[39;49;00m[33m"[39;49;00m        [90m# FEMALE SIGN[39;49;00m[90m[39;49;00m
                  [33mu[39;49;00m[33m"[39;49;00m[33m\uFE0F[39;49;00m[33m"[39;49;00m)       [90m# VARIATION SELECTOR-16[39;49;00m[90m[39;49;00m
    [90m[39;49;00m
        expect_length_each = ([94m1[39;49;00m, [94m0[39;49;00m)[90m[39;49;00m
        expect_length_phrase = [94m2[39;49;00m[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise,[39;49;00m[90m[39;49;00m
        length_each = [96mtuple[39;49;00m(wcwidth.wcwidth(w_char, unicode_version=[33m'[39;49;00m[33m9.0[39;49;00m[33m'[39;49;00m) [94mfor[39;49;00m w_char [95min[39;49;00m phrase)[90m[39;49;00m
        length_phrase = wcwidth.wcswidth(phrase, unicode_version=[33m'[39;49;00m[33m9.0[39;49;00m[33m'[39;49;00m)[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify.[39;49;00m[90m[39;49;00m
        [94massert[39;49;00m length_each == expect_length_each[90m[39;49;00m
>       [94massert[39;49;00m length_phrase == expect_length_phrase[90m[39;49;00m
[1m[31mE       assert 1 == 2[0m

[1m[31mtests/test_emojis.py[0m:227: AssertionError
[31m[1m__________________________ test_nearest_lowint40_str ___________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_nearest_lowint40_str[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""wcwidth._wcmatch_version('4.0') returns nearest '4.1.0'."""[39;49;00m[90m[39;49;00m
        [90m# given[39;49;00m[90m[39;49;00m
        given, expected = [33m'[39;49;00m[33m4.0[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33m4.1.0[39;49;00m[33m'[39;49;00m[90m[39;49;00m
        warnings.resetwarnings()[90m[39;49;00m
        wcwidth._wcmatch_version.cache_clear()[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise[39;49;00m[90m[39;49;00m
>       [94mwith[39;49;00m pytest.warns([96mUserWarning[39;49;00m):[90m[39;49;00m
[1m[31mE       Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.[0m
[1m[31mE        Emitted warnings: [].[0m

[1m[31mtests/test_ucslevel.py[0m:81: Failed
[31m[1m________________________ test_nearest_lowint40_unicode _________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_nearest_lowint40_unicode[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""wcwidth._wcmatch_version(u'4.0') returns nearest u'4.1.0'."""[39;49;00m[90m[39;49;00m
        [90m# given[39;49;00m[90m[39;49;00m
        given, expected = [33mu[39;49;00m[33m'[39;49;00m[33m4.0[39;49;00m[33m'[39;49;00m, [33mu[39;49;00m[33m'[39;49;00m[33m4.1.0[39;49;00m[33m'[39;49;00m[90m[39;49;00m
        warnings.resetwarnings()[90m[39;49;00m
        wcwidth._wcmatch_version.cache_clear()[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise[39;49;00m[90m[39;49;00m
>       [94mwith[39;49;00m pytest.warns([96mUserWarning[39;49;00m):[90m[39;49;00m
[1m[31mE       Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.[0m
[1m[31mE        Emitted warnings: [].[0m

[1m[31mtests/test_ucslevel.py[0m:97: Failed
[31m[1m_____________________________ test_nearest_800_str _____________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_nearest_800_str[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""wcwidth._wcmatch_version('8') returns nearest '8.0.0'."""[39;49;00m[90m[39;49;00m
        [90m# given[39;49;00m[90m[39;49;00m
        given, expected = [33m'[39;49;00m[33m8[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33m8.0.0[39;49;00m[33m'[39;49;00m[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise[39;49;00m[90m[39;49;00m
        result = wcwidth._wcmatch_version(given)[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify.[39;49;00m[90m[39;49;00m
>       [94massert[39;49;00m result == expected[90m[39;49;00m
[1m[31mE       AssertionError: assert '7.0.0' == '8.0.0'[0m
[1m[31mE         [0m
[1m[31mE         [0m[91m- 8.0.0[39;49;00m[90m[39;49;00m[0m
[1m[31mE         ? ^[90m[39;49;00m[0m
[1m[31mE         [92m+ 7.0.0[39;49;00m[90m[39;49;00m[0m
[1m[31mE         ? ^[90m[39;49;00m[0m

[1m[31mtests/test_ucslevel.py[0m:114: AssertionError
[31m[1m___________________________ test_nearest_800_unicode ___________________________[0m

    [0m[94mdef[39;49;00m[90m [39;49;00m[92mtest_nearest_800_unicode[39;49;00m():[90m[39;49;00m
    [90m    [39;49;00m[33m"""wcwidth._wcmatch_version(u'8') returns nearest u'8.0.0'."""[39;49;00m[90m[39;49;00m
        [90m# given[39;49;00m[90m[39;49;00m
        given, expected = [33mu[39;49;00m[33m'[39;49;00m[33m8[39;49;00m[33m'[39;49;00m, [33mu[39;49;00m[33m'[39;49;00m[33m8.0.0[39;49;00m[33m'[39;49;00m[90m[39;49;00m
    [90m[39;49;00m
        [90m# exercise[39;49;00m[90m[39;49;00m
        result = wcwidth._wcmatch_version(given)[90m[39;49;00m
    [90m[39;49;00m
        [90m# verify.[39;49;00m[90m[39;49;00m
>       [94massert[39;49;00m result == expected[90m[39;49;00m
[1m[31mE       AssertionError: assert '7.0.0' == '8.0.0'[0m
[1m[31mE         [0m
[1m[31mE         [0m[91m- 8.0.0[39;49;00m[90m[39;49;00m[0m
[1m[31mE         ? ^[90m[39;49;00m[0m
[1m[31mE         [92m+ 7.0.0[39;49;00m[90m[39;49;00m[0m
[1m[31mE         ? ^[90m[39;49;00m[0m

[1m[31mtests/test_ucslevel.py[0m:126: AssertionError
--------------------------------- JSON report ----------------------------------
report saved to: report.json
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.10.12-final-0 _______________

Coverage HTML written to dir htmlcov
[36m[1m=========================== short test summary info ============================[0m
[31mFAILED[0m tests/test_core.py::[1mtest_package_version[0m - importlib.metadata.PackageNotFoundError: No package metadata was found for ...
[31mFAILED[0m tests/test_emojis.py::[1mtest_longer_emoji_zwj_sequence[0m - assert 14 == 4
[31mFAILED[0m tests/test_emojis.py::[1mtest_recommended_emoji_zwj_sequences[0m - AssertionError: assert [{'expected_w...u200d👦'}, ...] == []
[31mFAILED[0m tests/test_emojis.py::[1mtest_recommended_variation_16_sequences[0m - AssertionError: assert [{'expected_w...': '3️'}, ...] == []
[31mFAILED[0m tests/test_emojis.py::[1mtest_unicode_9_vs16[0m - assert 1 == 2
[31mFAILED[0m tests/test_ucslevel.py::[1mtest_nearest_lowint40_str[0m - Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emi...
[31mFAILED[0m tests/test_ucslevel.py::[1mtest_nearest_lowint40_unicode[0m - Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emi...
[31mFAILED[0m tests/test_ucslevel.py::[1mtest_nearest_800_str[0m - AssertionError: assert '7.0.0' == '8.0.0'
[31mFAILED[0m tests/test_ucslevel.py::[1mtest_nearest_800_unicode[0m - AssertionError: assert '7.0.0' == '8.0.0'
[31m=================== [31m[1m9 failed[0m, [32m29 passed[0m, [33m1 skipped[0m[31m in 0.46s[0m[31m ====================[0m