Your message dated Mon, 20 Dec 2021 07:19:00 +0000
with message-id <e1mzcwm-0008qf...@fasolo.debian.org>
and subject line Bug#998565: fixed in pycountry 20.7.3+ds1-2
has caused the Debian Bug report #998565,
regarding pycountry: FTBFS: dh_auto_test: error: pybuild --test -i 
python{version} -p 3.9 returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
998565: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998565
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: pycountry
Version: 20.7.3+ds1-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20211104 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --with python3 --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:232: python3.9 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:232: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build/pycountry
> copying src/pycountry/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build/pycountry
> copying src/pycountry/db.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build/pycountry
> running egg_info
> creating src/pycountry.egg-info
> writing src/pycountry.egg-info/PKG-INFO
> writing dependency_links to src/pycountry.egg-info/dependency_links.txt
> writing top-level names to src/pycountry.egg-info/top_level.txt
> writing manifest file 'src/pycountry.egg-info/SOURCES.txt'
> reading manifest file 'src/pycountry.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no previously-included files matching '*.py[co]' found anywhere in 
> distribution
> adding license file 'LICENSE.txt'
> writing manifest file 'src/pycountry.egg-info/SOURCES.txt'
> creating 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build/pycountry/tests
> copying src/pycountry/tests/test_general.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build/pycountry/tests
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:232: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build; python3.9 -m pytest 
> /<<PKGBUILDDIR>>/src/pycountry/tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 20 items
> 
> ../../../src/pycountry/tests/test_general.py .F..FF.......F..F...        
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________________ test_country_fuzzy_search 
> ___________________________
> 
>     def test_country_fuzzy_search():
> >       results = pycountry.countries.search_fuzzy(u'England')
> 
> ../../../src/pycountry/tests/test_general.py:20: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <pycountry.ExistingCountries object at 0x7f56b0ddaa30>, query = 
> 'england'
> 
>     def search_fuzzy(self, query):
>         query = remove_accents(query.strip().lower())
>     
>         # A country-code to points mapping for later sorting countries
>         # based on the query's matching incidence.
>         results = {}
>     
>         def add_result(country, points):
>             results.setdefault(country.alpha_2, 0)
>             results[country.alpha_2] += points
>     
>         # Prio 1: exact matches on country names
>         try:
>             add_result(self.lookup(query), 50)
>         except LookupError:
>             pass
>     
>         # Prio 2: exact matches on subdivision names
>         for candidate in subdivisions:
>             for v in candidate._fields.values():
>                 if v is None:
>                     continue
>                 v = remove_accents(v.lower())
>                 # Some names include alternative versions which we want to
>                 # match exactly.
>                 for v in v.split(';'):
>                     if v == query:
>                         add_result(candidate.country, 49)
>                         break
>     
>         # Prio 3: partial matches on country names
>         for candidate in self:
>             # Higher priority for a match on the common name
>             for v in [candidate._fields.get('name'),
>                       candidate._fields.get('official_name'),
>                       candidate._fields.get('comment')]:
>                 if v is None:
>                     continue
>                 v = remove_accents(v.lower())
>                 if query in v:
>                     # This prefers countries with a match early in their name
>                     # and also balances against countries with a number of
>                     # partial matches and their name containing 'new' in the
>                     # middle
>                     add_result(candidate, max([5, 30-(2*v.find(query))]))
>                     break
>     
>         # Prio 4: partial matches on subdivision names
>         for candidate in subdivisions:
>             v = candidate._fields.get('name')
>             if v is None:
>                 continue
>             v = remove_accents(v.lower())
>             if query in v:
>                 add_result(candidate.country, max([1, 5-v.find(query)]))
>     
>         if not results:
> >           raise LookupError(query)
> E           LookupError: england
> 
> pycountry/__init__.py:93: LookupError
> ____________________ test_subdivisions_directly_accessible 
> _____________________
> 
>     def test_subdivisions_directly_accessible():
>         #assert len(pycountry.subdivisions) == 4883
>         assert isinstance(list(pycountry.subdivisions)[0], pycountry.db.Data)
>     
>         de_st = pycountry.subdivisions.get(code='DE-ST')
>         assert de_st.code == u'DE-ST'
>         assert de_st.name == u'Sachsen-Anhalt'
> >       assert de_st.type == u'State'
> E       AssertionError: assert 'Land' == 'State'
> E         - State
> E         + Land
> 
> ../../../src/pycountry/tests/test_general.py:80: AssertionError
> _________________ test_subdivisions_have_subdivision_as_parent 
> _________________
> 
>     def test_subdivisions_have_subdivision_as_parent():
>         al_bu = pycountry.subdivisions.get(code='AL-BU')
> >       assert al_bu.code == u'AL-BU'
> E       AttributeError: 'NoneType' object has no attribute 'code'
> 
> ../../../src/pycountry/tests/test_general.py:88: AttributeError
> __________________________________ test_repr 
> ___________________________________
> 
>     def test_repr():
> >       assert re.match("Country\\(alpha_2=u?'DE', "
>                         "alpha_3=u?'DEU', "
>                         "name=u?'Germany', "
>                         "numeric=u?'276', "
>                         "official_name=u?'Federal Republic of Germany'\\)",
>                         repr(pycountry.countries.get(alpha_2='DE')))
> E       assert None
> E        +  where None = <function match at 
> 0x7f56b1a19ee0>("Country\\(alpha_2=u?'DE', alpha_3=u?'DEU', name=u?'Germany', 
> numeric=u?'276', official_name=u?'Federal Republic of Germany'\\)", 
> "Country(alpha_2='DE', alpha_3='DEU', flag='🇩🇪', name='Germany', 
> numeric='276', official_name='Federal Republic of Germany')")
> E        +    where <function match at 0x7f56b1a19ee0> = re.match
> E        +    and   "Country(alpha_2='DE', alpha_3='DEU', flag='🇩🇪', 
> name='Germany', numeric='276', official_name='Federal Republic of Germany')" 
> = repr(Country(alpha_2='DE', alpha_3='DEU', flag='🇩🇪', name='Germany', 
> numeric='276', official_name='Federal Republic of Germany'))
> E        +      where Country(alpha_2='DE', alpha_3='DEU', flag='🇩🇪', 
> name='Germany', numeric='276', official_name='Federal Republic of Germany') = 
> <bound method lazy_load.<locals>.load_if_needed of 
> <pycountry.ExistingCountries object at 0x7f56b0ddaa30>>(alpha_2='DE')
> E        +        where <bound method lazy_load.<locals>.load_if_needed of 
> <pycountry.ExistingCountries object at 0x7f56b0ddaa30>> = 
> <pycountry.ExistingCountries object at 0x7f56b0ddaa30>.get
> E        +          where <pycountry.ExistingCountries object at 
> 0x7f56b0ddaa30> = pycountry.countries
> 
> ../../../src/pycountry/tests/test_general.py:165: AssertionError
> _________________________________ test_lookup 
> __________________________________
> 
>     def test_lookup():
>         c = pycountry.countries
>         g = c.get(alpha_2='DE')
>         assert g == c.get(alpha_2='de')
>         assert g == c.lookup('de')
>         assert g == c.lookup('DEU')
>         assert g == c.lookup('276')
>         assert g == c.lookup('germany')
>         assert g == c.lookup('Federal Republic of Germany')
>         # try a generated field
>         bqaq = pycountry.historic_countries.get(alpha_4='BQAQ')
>         assert bqaq == pycountry.historic_countries.lookup('atb')
>         german = pycountry.languages.get(alpha_2='de')
>         assert german == pycountry.languages.lookup('De')
>         euro = pycountry.currencies.get(alpha_3='EUR')
>         assert euro == pycountry.currencies.lookup('euro')
>         latin = pycountry.scripts.get(name='Latin')
>         assert latin == pycountry.scripts.lookup('latn')
>         al_bu = pycountry.subdivisions.get(code='AL-BU')
> >       assert al_bu == pycountry.subdivisions.lookup('al-bu')
> 
> ../../../src/pycountry/tests/test_general.py:208: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> pycountry/db.py:51: in load_if_needed
>     return f(self, *args, **kw)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <pycountry.Subdivisions object at 0x7f56b0dda910>, value = 'al-bu'
> 
>     @lazy_load
>     def lookup(self, value):
>         if not isinstance(value, str):
>             raise LookupError()
>     
>         # Normalize for case-insensitivity
>         value = value.lower()
>     
>         # Use indexes first
>         for key in self.indices:
>             try:
>                 return self.indices[key][value]
>             except LookupError:
>                 pass
>     
>         # Use non-indexed values now. Avoid going through indexed values.
>         for candidate in self:
>             for k in self.no_index:
>                 v = candidate._fields.get(k)
>                 if v is None:
>                     continue
>                 if v.lower() == value:
>                     return candidate
>     
> >       raise LookupError('Could not find a record for %r' % value)
> E       LookupError: Could not find a record for 'al-bu'
> 
> pycountry/db.py:156: LookupError
> =========================== short test summary info 
> ============================
> FAILED ../../../src/pycountry/tests/test_general.py::test_country_fuzzy_search
> FAILED 
> ../../../src/pycountry/tests/test_general.py::test_subdivisions_directly_accessible
> FAILED 
> ../../../src/pycountry/tests/test_general.py::test_subdivisions_have_subdivision_as_parent
> FAILED ../../../src/pycountry/tests/test_general.py::test_repr - assert None
> FAILED ../../../src/pycountry/tests/test_general.py::test_lookup - 
> LookupErro...
> ========================= 5 failed, 15 passed in 0.30s 
> =========================
> E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_pycountry/build; python3.9 -m pytest 
> /<<PKGBUILDDIR>>/src/pycountry/tests
> dh_auto_test: error: pybuild --test -i python{version} -p 3.9 returned exit 
> code 13


The full build log is available from:
http://qa-logs.debian.net/2021/11/04/pycountry_20.7.3+ds1-1_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

--- End Message ---
--- Begin Message ---
Source: pycountry
Source-Version: 20.7.3+ds1-2
Done: Stuart Prescott <stu...@debian.org>

We believe that the bug you reported is fixed in the latest version of
pycountry, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 998...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stuart Prescott <stu...@debian.org> (supplier of updated pycountry package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Mon, 20 Dec 2021 17:57:03 +1100
Source: pycountry
Architecture: source
Version: 20.7.3+ds1-2
Distribution: unstable
Urgency: medium
Maintainer: David Paleino <da...@debian.org>
Changed-By: Stuart Prescott <stu...@debian.org>
Closes: 998565
Changes:
 pycountry (20.7.3+ds1-2) unstable; urgency=medium
 .
   * Add patch to make test suite compatible with iso-codes 4.8.0
     (Closes: #998565).
Checksums-Sha1:
 50e8fe9d2257293eed7b14b3cbef84e27ddad957 2068 pycountry_20.7.3+ds1-2.dsc
 2800b331e64d53696914806a9c3423c084e7195e 6596 
pycountry_20.7.3+ds1-2.debian.tar.xz
 bb4a509faa4ecf79d5ac96bec0719bc93bf911de 7045 
pycountry_20.7.3+ds1-2_amd64.buildinfo
Checksums-Sha256:
 2b50e3d64c92780aff8ab9d5e989bbccae1d3879fb9ce22fde87b4911af3e75d 2068 
pycountry_20.7.3+ds1-2.dsc
 affbb1f4b59800e608bcdc01b84ef7381853a0a06fc8100fdfea6fdbdfceace5 6596 
pycountry_20.7.3+ds1-2.debian.tar.xz
 35141489182f8d7058b5254ba1c0d713e7be68b2497268ff9cb1e9cac35b1b03 7045 
pycountry_20.7.3+ds1-2_amd64.buildinfo
Files:
 a097668f10ea4a716f129371540d83de 2068 python optional 
pycountry_20.7.3+ds1-2.dsc
 020d75c1931cbe858c3bd1eb0db97342 6596 python optional 
pycountry_20.7.3+ds1-2.debian.tar.xz
 864dc805e1835d0f8fe8af341c7c6119 7045 python optional 
pycountry_20.7.3+ds1-2_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEkOLSwa0Uaht+u4kdu8F+uxOW8vcFAmHAKfcACgkQu8F+uxOW
8vdkxxAAmRWfQD4GavkFM4Z9u3nCm+M8bMqMy/08/i3rJcE+75u9dDFp/uCnsYyb
QkZTs6cea+k9XpbKvR5SGfBKnNsqnOO0z8M1tJdtmEWj6FzflnvNmxDlY9YYWomN
kt11DDehVPTwQmQIegAP37dxSdsbVvTEyDJXluNyIf0sTwvzC1eJm/JJGEF8OZ66
wqFycxVHFLOe7nArjOMPCxEhSOOnR5pPxHM6IoiMxNOkdmHVR8a+n9QqMqgn2NSi
71c4wMW90B1YzvxRcT73wlhedIWcRujtI3MvjQbyKx0DFxHZG+s7sjiwuRee5e9G
JaBDUksAD7axKSo+uneLKeGsXwGux16ETC05Krj99rWXc47Eufa8WEs6MUiq7akJ
WLkWAlMwbv6lDx9oyAMIvDNTuESxkEBEM3ICAgdgbe8nzJeQ1CAeovSCC68s5//f
bJuTvqqJrYuAOGXwTuukoVN+KDKA8UnCej4K7xxJmz+mpZ87JW4+kEcTQzzK+8Dc
+JMOp9BzMjPXazw5VyiC5uaWtGW3CkfsdjlKAJPFgx05wRn636cU88XCOhlFyab9
HqjTxMOlzuFOa0nB5Dut2AvT2Bw3rSlViXDhrWpuvR6ZigDCxOGhBBD9+8l4mPCZ
xCmYRze/+dGjehR8azDrNNUT8h3HdBRpJRv44XatxfOulOPLxfk=
=Kxq9
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to