mirror of https://github.com/morpheus65535/bazarr
174 lines
5.4 KiB
Python
174 lines
5.4 KiB
Python
import gettext
|
|
import re
|
|
import pycountry
|
|
import pycountry.db
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture(autouse=True, scope='session')
|
|
def logging():
|
|
import logging
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
|
|
|
|
def test_country_list():
|
|
assert len(pycountry.countries) == 249
|
|
assert isinstance(list(pycountry.countries)[0], pycountry.db.Data)
|
|
|
|
|
|
def test_germany_has_all_attributes():
|
|
germany = pycountry.countries.get(alpha_2='DE')
|
|
assert germany.alpha_2 == u'DE'
|
|
assert germany.alpha_3 == u'DEU'
|
|
assert germany.numeric == u'276'
|
|
assert germany.name == u'Germany'
|
|
assert germany.official_name == u'Federal Republic of Germany'
|
|
|
|
|
|
def test_subdivisions_directly_accessible():
|
|
assert len(pycountry.subdivisions) == 4835
|
|
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'
|
|
assert de_st.parent is None
|
|
assert de_st.parent_code is None
|
|
assert de_st.country is pycountry.countries.get(alpha_2='DE')
|
|
|
|
|
|
def test_subdivisions_have_subdivision_as_parent():
|
|
al_br = pycountry.subdivisions.get(code='AL-BU')
|
|
assert al_br.code == u'AL-BU'
|
|
assert al_br.name == u'Bulqiz\xeb'
|
|
assert al_br.type == u'District'
|
|
assert al_br.parent_code == u'AL-09'
|
|
assert al_br.parent is pycountry.subdivisions.get(code='AL-09')
|
|
assert al_br.parent.name == u'Dib\xebr'
|
|
|
|
|
|
def test_query_subdivisions_of_country():
|
|
assert len(pycountry.subdivisions.get(country_code='DE')) == 16
|
|
assert len(pycountry.subdivisions.get(country_code='US')) == 57
|
|
|
|
|
|
def test_scripts():
|
|
assert len(pycountry.scripts) == 182
|
|
assert isinstance(list(pycountry.scripts)[0], pycountry.db.Data)
|
|
|
|
latin = pycountry.scripts.get(name='Latin')
|
|
assert latin.alpha_4 == u'Latn'
|
|
assert latin.name == u'Latin'
|
|
assert latin.numeric == u'215'
|
|
|
|
|
|
def test_currencies():
|
|
assert len(pycountry.currencies) == 170
|
|
assert isinstance(list(pycountry.currencies)[0], pycountry.db.Data)
|
|
|
|
argentine_peso = pycountry.currencies.get(alpha_3='ARS')
|
|
assert argentine_peso.alpha_3 == u'ARS'
|
|
assert argentine_peso.name == u'Argentine Peso'
|
|
assert argentine_peso.numeric == u'032'
|
|
|
|
|
|
def test_languages():
|
|
assert len(pycountry.languages) == 7847
|
|
assert isinstance(list(pycountry.languages)[0], pycountry.db.Data)
|
|
|
|
aragonese = pycountry.languages.get(alpha_2='an')
|
|
assert aragonese.alpha_2 == u'an'
|
|
assert aragonese.alpha_3 == u'arg'
|
|
assert aragonese.name == u'Aragonese'
|
|
|
|
bengali = pycountry.languages.get(alpha_2='bn')
|
|
assert bengali.name == u'Bengali'
|
|
assert bengali.common_name == u'Bangla'
|
|
|
|
|
|
def test_locales():
|
|
german = gettext.translation(
|
|
'iso3166', pycountry.LOCALES_DIR, languages=['de'])
|
|
german.install()
|
|
assert __builtins__['_']('Germany') == 'Deutschland'
|
|
|
|
|
|
def test_removed_countries():
|
|
ussr = pycountry.historic_countries.get(alpha_3='SUN')
|
|
assert isinstance(ussr, pycountry.db.Data)
|
|
assert ussr.alpha_4 == u'SUHH'
|
|
assert ussr.alpha_3 == u'SUN'
|
|
assert ussr.name == u'USSR, Union of Soviet Socialist Republics'
|
|
assert ussr.withdrawal_date == u'1992-08-30'
|
|
|
|
|
|
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')))
|
|
|
|
|
|
def test_dir():
|
|
germany = pycountry.countries.get(alpha_2='DE')
|
|
for n in 'alpha_2', 'alpha_3', 'name', 'numeric', 'official_name':
|
|
assert n in dir(germany)
|
|
|
|
|
|
def test_get():
|
|
c = pycountry.countries
|
|
with pytest.raises(TypeError):
|
|
c.get(alpha_2='DE', alpha_3='DEU')
|
|
assert c.get(alpha_2='DE') == c.get(alpha_3='DEU')
|
|
with pytest.raises(KeyError):
|
|
c.get(alpha_2='Foo')
|
|
|
|
|
|
def test_lookup():
|
|
c = pycountry.countries
|
|
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')
|
|
with pytest.raises(LookupError):
|
|
pycountry.countries.lookup('bogus country')
|
|
with pytest.raises(LookupError):
|
|
pycountry.countries.lookup(12345)
|
|
|
|
|
|
def test_subdivision_parent():
|
|
s = pycountry.subdivisions
|
|
sd = s.get(code='CV-BV')
|
|
assert sd.parent_code == 'CV-B'
|
|
assert sd.parent is s.get(code=sd.parent_code)
|
|
|
|
|
|
def test_subdivision_missing_code_raises_keyerror():
|
|
s = pycountry.subdivisions
|
|
with pytest.raises(KeyError):
|
|
s.get(code='US-ZZ')
|
|
|
|
|
|
def test_subdivision_empty_list():
|
|
s = pycountry.subdivisions
|
|
assert len(s.get(country_code='DE')) == 16
|
|
assert len(s.get(country_code='JE')) == 0
|
|
with pytest.raises(KeyError):
|
|
s.get(country_code='FOOBAR')
|