Source: python-cookies
Version: 2.2.1-1
Severity: serious
Tags: ftbfs buster sid

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/python-cookies.html

...
============================= test session starts ==============================
platform linux -- Python 3.7.1, pytest-3.6.4, py-1.6.0, pluggy-0.6.0
rootdir: /build/1st/python-cookies-2.2.1, inifile:
collected 67 items

test_cookies.py ........................................................ [ 83%]
......F....                                                              [100%]

=================================== FAILURES ===================================
__________________________ test_encoding_assumptions ___________________________

check_unicode = False

    def test_encoding_assumptions(check_unicode=False):
        "Document and test assumptions underlying URL encoding scheme"
        # Use the RFC 6265 based character class to build a regexp matcher that
        # will tell us whether or not a character is okay to put in cookie 
values.
        cookie_value_re = re.compile("[%s]" % Definitions.COOKIE_OCTET)
        # Figure out which characters are okay. (unichr doesn't exist in Python 
3,
        # in Python 2 it shouldn't be an issue)
        cookie_value_safe1 = set(chr(i) for i in range(0, 256) \
                                if cookie_value_re.match(chr(i)))
        cookie_value_safe2 = set(unichr(i) for i in range(0, 256) \
                                if cookie_value_re.match(unichr(i)))
        # These two are NOT the same on Python3
        assert cookie_value_safe1 == cookie_value_safe2
        # Now which of these are quoted by urllib.quote?
        # caveat: Python 2.6 crashes if chr(127) is passed to quote and safe="",
        # so explicitly set it to b"" to avoid the issue
        safe_but_quoted = set(c for c in cookie_value_safe1
                              if quote(c, safe=b"") != c)
        # Produce a set of characters to give to urllib.quote for the safe parm.
        dont_quote = "".join(sorted(safe_but_quoted))
        # Make sure it works (and that it works because of what we passed)
        for c in dont_quote:
            assert quote(c, safe="") != c
            assert quote(c, safe=dont_quote) == c
    
        # Make sure that the result of using dont_quote as the safe characters 
for
        # urllib.quote produces stuff which is safe as a cookie value, but not
        # different unless it has to be.
        for i in range(0, 255):
            original = chr(i)
            quoted = quote(original, safe=dont_quote)
            # If it is a valid value for a cookie, that quoting should leave it
            # alone.
            if cookie_value_re.match(original):
                assert original == quoted
            # If it isn't a valid value, then the quoted value should be valid.
            else:
                assert cookie_value_re.match(quoted)
    
>       assert set(dont_quote) == set("!#$%&'()*+/:<=>?@[]^`{|}~")
E       assert {'!', '#', '$...'&', "'", ...} == {'!', '#', '$'...'&', "'", ...}
E         Extra items in the right set:
E         '~'
E         Use -v to get the full diff

test_cookies.py:2228: AssertionError
===================== 1 failed, 66 passed in 1.07 seconds ======================
E: pybuild pybuild:338: test: plugin distutils failed with: exit code=1: cd 
/build/1st/python-cookies-2.2.1/.pybuild/cpython3_3.7_cookies/build; python3.7 
-m pytest 
dh_auto_test: pybuild --test -i python{version} -p "3.7 3.6" returned exit code 
13
make: *** [debian/rules:8: build] Error 25

Reply via email to