Source: lexicon
Version: 3.3.17-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20220212 ftbfs-bookworm

Hi,

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


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> pytest-3 lexicon/tests/ -k "not namecheap and not route53 and not subreg and 
> not transip and not plesk and not henet and not easyname and not localzone 
> and not auto and not hetzner and not gratisdns and not gransy"
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.9.10, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 1987 items / 380 deselected / 1607 selected
> 
> lexicon/tests/test_client.py FFFFFF....FF                                [  
> 0%]
> lexicon/tests/test_config.py .........                                   [  
> 1%]
> lexicon/tests/test_library.py ..FFFFF                                    [  
> 1%]
> lexicon/tests/test_output.py .....                                       [  
> 2%]
> lexicon/tests/test_parser.py .....                                       [  
> 2%]
> lexicon/tests/providers/test_aliyun.py ..................ss.........     [  
> 4%]
> lexicon/tests/providers/test_aurora.py ..................ss.........     [  
> 5%]
> lexicon/tests/providers/test_azure.py ..................ss.........      [  
> 7%]
> lexicon/tests/providers/test_cloudflare.py ..................ss......s.. [  
> 9%]
>                                                                          [  
> 9%]
> lexicon/tests/providers/test_cloudns.py ..................ss.........    [ 
> 11%]
> lexicon/tests/providers/test_cloudxns.py ..................ss......s..   [ 
> 13%]
> lexicon/tests/providers/test_conoha.py ..................ss.........     [ 
> 14%]
> lexicon/tests/providers/test_constellix.py ..................ss......... [ 
> 16%]
>                                                                          [ 
> 16%]
> lexicon/tests/providers/test_digitalocean.py ................s.ss......s [ 
> 18%]
> ..                                                                       [ 
> 18%]
> lexicon/tests/providers/test_dinahosting.py ................s.ss........ [ 
> 20%]
> .                                                                        [ 
> 20%]
> lexicon/tests/providers/test_directadmin.py ..................ss........ [ 
> 22%]
> .                                                                        [ 
> 22%]
> lexicon/tests/providers/test_dnsimple.py ..................ss.........   [ 
> 24%]
> lexicon/tests/providers/test_dnsmadeeasy.py ..................ss......s. [ 
> 25%]
> .                                                                        [ 
> 25%]
> lexicon/tests/providers/test_dnspark.py ........ss....ssssss..s...s..    [ 
> 27%]
> lexicon/tests/providers/test_dnspod.py ........ss....ssssss..s...s..     [ 
> 29%]
> lexicon/tests/providers/test_dreamhost.py ...................s.ss....... [ 
> 31%]
> ..                                                                       [ 
> 31%]
> lexicon/tests/providers/test_easydns.py ........ss....ss.sss..s...s..    [ 
> 33%]
> lexicon/tests/providers/test_euserv.py ..................ss.........     [ 
> 35%]
> lexicon/tests/providers/test_exoscale.py ..................ss.........   [ 
> 36%]
> lexicon/tests/providers/test_gandi.py ..................ss.............. [ 
> 38%]
> .............ss.........                                                 [ 
> 40%]
> lexicon/tests/providers/test_gehirn.py ........ss....ss.sss..s......     [ 
> 42%]
> lexicon/tests/providers/test_glesys.py ........ss....ss.sss..s...s..     [ 
> 44%]
> lexicon/tests/providers/test_godaddy.py ..................ss.........    [ 
> 45%]
> lexicon/tests/providers/test_googleclouddns.py ..................ss..... [ 
> 47%]
> ....                                                                     [ 
> 47%]
> lexicon/tests/providers/test_hostingde.py ..................ss.........  [ 
> 49%]
> lexicon/tests/providers/test_hover.py ..................ss.........      [ 
> 51%]
> lexicon/tests/providers/test_infoblox.py ..................ss.........   [ 
> 53%]
> lexicon/tests/providers/test_internetbs.py ..................ss......... [ 
> 54%]
>                                                                          [ 
> 54%]
> lexicon/tests/providers/test_inwx.py ..................ss.........       [ 
> 56%]
> lexicon/tests/providers/test_linode.py ................s.ss.........     [ 
> 58%]
> lexicon/tests/providers/test_linode4.py ................s.ss.........    [ 
> 60%]
> lexicon/tests/providers/test_luadns.py ....s.............ss......s..     [ 
> 62%]
> lexicon/tests/providers/test_memset.py ..................ss......s..     [ 
> 63%]
> lexicon/tests/providers/test_namesilo.py ..................ss......s..   [ 
> 65%]
> lexicon/tests/providers/test_netcup.py ................s.ss.........     [ 
> 67%]
> lexicon/tests/providers/test_nfsn.py ..................ss.........       [ 
> 69%]
> lexicon/tests/providers/test_nsone.py ................s.ss......s..      [ 
> 71%]
> lexicon/tests/providers/test_onapp.py ..................ss.........      [ 
> 72%]
> lexicon/tests/providers/test_online.py .............s....ss.........     [ 
> 74%]
> lexicon/tests/providers/test_ovh.py ..................ss.........        [ 
> 76%]
> lexicon/tests/providers/test_pointhq.py ................s.ss......s..    [ 
> 78%]
> lexicon/tests/providers/test_powerdns.py ..................ss......s..   [ 
> 80%]
> lexicon/tests/providers/test_rackspace.py ..................ss.........  [ 
> 81%]
> lexicon/tests/providers/test_rage4.py ..................ss.....ss.s      [ 
> 83%]
> lexicon/tests/providers/test_rcodezero.py ..................ss.........  [ 
> 85%]
> lexicon/tests/providers/test_safedns.py ....s...........s.ss.........    [ 
> 87%]
> lexicon/tests/providers/test_sakuracloud.py ........ss...sss.sss..s..... [ 
> 89%]
> .                                                                        [ 
> 89%]
> lexicon/tests/providers/test_softlayer.py ........ss....ss.sss..s......  [ 
> 90%]
> lexicon/tests/providers/test_vultr.py ........ss....ss.sss..s...s..      [ 
> 92%]
> lexicon/tests/providers/test_yandex.py ..................ss......s..     [ 
> 94%]
> lexicon/tests/providers/test_zeit.py ................s.ss.........       [ 
> 96%]
> lexicon/tests/providers/test_zilore.py ..................ss.........     [ 
> 98%]
> lexicon/tests/providers/test_zonomi.py ........ss....ss.sss..s...s..     
> [100%]
> 
> =================================== FAILURES 
> ===================================
> ____________________________ test_client_basic_init 
> ____________________________
> 
>     def test_client_basic_init():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(ConfigResolver().with_dict(options))
> 
> lexicon/tests/test_client.py:25: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65bcbbe0>
> config = <lexicon.config.ConfigResolver object at 0x7efd65bcbb50>
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> ___________________________ test_client_legacy_init 
> ____________________________
> 
>     def test_client_legacy_init():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65bec8b0>
> config = {'action': 'list', 'domain': 'example.com', 'provider_name': 
> 'fakeprovider', 'type': 'TXT'}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _________ test_client_init_when_domain_includes_subdomain_should_strip 
> _________
> 
>     def test_client_init_when_domain_includes_subdomain_should_strip():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:55: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65baccd0>
> config = {'action': 'list', 'domain': 'www.example.com', 'provider_name': 
> 'fakeprovider', 'type': 'TXT'}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _________________ test_client_init_with_delegated_domain_name 
> __________________
> 
>     def test_client_init_with_delegated_domain_name():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.sub.example.com',
>             'delegated': 'sub',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:71: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65de7550>
> config = {'action': 'list', 'delegated': 'sub', 'domain': 
> 'www.sub.example.com', 'provider_name': 'fakeprovider', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _________________ test_client_init_with_delegated_domain_fqdn 
> __________________
> 
>     def test_client_init_with_delegated_domain_fqdn():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.sub.example.com',
>             'delegated': 'sub.example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:87: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65b93af0>
> config = {'action': 'list', 'delegated': 'sub.example.com', 'domain': 
> 'www.sub.example.com', 'provider_name': 'fakeprovider', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _______________ test_client_init_with_same_delegated_domain_fqdn 
> _______________
> 
>     def test_client_init_with_same_delegated_domain_fqdn():
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.example.com',
>             'delegated': 'example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:103: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65dcd130>
> config = {'action': 'list', 'delegated': 'example.com', 'domain': 
> 'www.example.com', 'provider_name': 'fakeprovider', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _____________ test_client_parse_env_with_no_keys_should_do_nothing 
> _____________
> 
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efd65de6b80>
> 
>     def test_client_parse_env_with_no_keys_should_do_nothing(monkeypatch):
>         if os.environ.get('LEXICON_FAKEPROVIDER_TOKEN'):
>             monkeypatch.delenv('LEXICON_FAKEPROVIDER_TOKEN')
>         if os.environ.get('LEXICON_FAKEPROVIDER_USERNAME'):
>             monkeypatch.delenv('LEXICON_FAKEPROVIDER_USERNAME')
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:162: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65de6610>
> config = {'action': 'list', 'domain': 'www.example.com', 'provider_name': 
> 'fakeprovider', 'type': 'TXT'}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _____________________ test_client_parse_env_with_auth_keys 
> _____________________
> 
> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7efd65ddb4f0>
> 
>     def test_client_parse_env_with_auth_keys(monkeypatch):
>         monkeypatch.setenv('LEXICON_FAKEPROVIDER_TOKEN', 'test-token')
>         monkeypatch.setenv('LEXICON_FAKEPROVIDER_USERNAME',
>                            'test-usern...@example.com')
>         options = {
>             'provider_name': 'fakeprovider',
>             'action': 'list',
>             'domain': 'www.example.com',
>             'type': 'TXT'
>         }
> >       client = lexicon.client.Client(options)
> 
> lexicon/tests/test_client.py:182: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65c93610>
> config = {'action': 'list', 'domain': 'www.example.com', 'provider_name': 
> 'fakeprovider', 'type': 'TXT'}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> ______ test_missing_optional_client_config_parameter_does_not_raise_error 
> ______
> 
> lexicon_client = <module 'lexicon.client' from 
> '/<<PKGBUILDDIR>>/lexicon/client.py'>
> 
>     def 
> test_missing_optional_client_config_parameter_does_not_raise_error(lexicon_client):
> >       lexicon_client.Client({'action': 'list', 'provider_name': 
> > 'fakeprovider',
>                                'domain': 'example.com', 'type': 'TXT',
>                                'no-name': 'fake', 'no-content': 'fake'})
> 
> lexicon/tests/test_library.py:126: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65af4550>
> config = {'action': 'list', 'domain': 'example.com', 'no-content': 'fake', 
> 'no-name': 'fake', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> ______________ test_list_action_is_correctly_handled_by_provider 
> _______________
> 
> capsys = <_pytest.capture.CaptureFixture object at 0x7efd65ca6040>
> lexicon_client = <module 'lexicon.client' from 
> '/<<PKGBUILDDIR>>/lexicon/client.py'>
> 
>     def test_list_action_is_correctly_handled_by_provider(capsys, 
> lexicon_client):
> >       client = lexicon_client.Client({'action': 'list', 'provider_name': 
> > 'fakeprovider',
>                                         'domain': 'example.com', 'type': 
> 'TXT',
>                                         'name': 'fake', 'content': 
> 'fake-content'})
> 
> lexicon/tests/test_library.py:132: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65a93550>
> config = {'action': 'list', 'content': 'fake-content', 'domain': 
> 'example.com', 'name': 'fake', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _____________ test_create_action_is_correctly_handled_by_provider 
> ______________
> 
> capsys = <_pytest.capture.CaptureFixture object at 0x7efd65c94a60>
> lexicon_client = <module 'lexicon.client' from 
> '/<<PKGBUILDDIR>>/lexicon/client.py'>
> 
>     def test_create_action_is_correctly_handled_by_provider(capsys, 
> lexicon_client):
> >       client = lexicon_client.Client({'action': 'create', 'provider_name': 
> > 'fakeprovider',
>                                         'domain': 'example.com', 'type': 
> 'TXT',
>                                         'name': 'fake', 'content': 
> 'fake-content'})
> 
> lexicon/tests/test_library.py:148: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65c94760>
> config = {'action': 'create', 'content': 'fake-content', 'domain': 
> 'example.com', 'name': 'fake', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _____________ test_update_action_is_correctly_handled_by_provider 
> ______________
> 
> capsys = <_pytest.capture.CaptureFixture object at 0x7efd65c8ffa0>
> lexicon_client = <module 'lexicon.client' from 
> '/<<PKGBUILDDIR>>/lexicon/client.py'>
> 
>     def test_update_action_is_correctly_handled_by_provider(capsys, 
> lexicon_client):
> >       client = lexicon_client.Client({'action': 'update', 'provider_name': 
> > 'fakeprovider',
>                                         'domain': 'example.com', 
> 'identifier': 'fake-id',
>                                         'type': 'TXT', 'name': 'fake', 
> 'content': 'fake-content'})
> 
> lexicon/tests/test_library.py:164: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65c8fd90>
> config = {'action': 'update', 'content': 'fake-content', 'domain': 
> 'example.com', 'identifier': 'fake-id', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> _____________ test_delete_action_is_correctly_handled_by_provider 
> ______________
> 
> capsys = <_pytest.capture.CaptureFixture object at 0x7efd65ded040>
> lexicon_client = <module 'lexicon.client' from 
> '/<<PKGBUILDDIR>>/lexicon/client.py'>
> 
>     def test_delete_action_is_correctly_handled_by_provider(capsys, 
> lexicon_client):
> >       client = lexicon_client.Client({'action': 'delete', 'provider_name': 
> > 'fakeprovider',
>                                         'domain': 'example.com', 
> 'identifier': 'fake-id',
>                                         'type': 'TXT', 'name': 'fake', 
> 'content': 'fake-content'})
> 
> lexicon/tests/test_library.py:181: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> self = <lexicon.client.Client object at 0x7efd65dceeb0>
> config = {'action': 'delete', 'content': 'fake-content', 'domain': 
> 'example.com', 'identifier': 'fake-id', ...}
> 
>     def __init__(self, config=None):
>         if not config:
>             # If there is not config specified, we load a non-interactive 
> configuration.
>             self.config = non_interactive_config_resolver()
>         elif not isinstance(config, ConfigResolver):
>             # If config is not a ConfigResolver, we are in a legacy situation.
>             # We protect this part of the Client API.
>             self.config = legacy_config_resolver(config)
>         else:
>             self.config = config
>     
>         # Validate configuration
>         self._validate_config()
>     
>         runtime_config = {}
>     
>         # Process domain, strip subdomain
> >       domain_extractor = 
> > tldextract.TLDExtract(cache_file=TLDEXTRACT_CACHE_FILE,
>                                                  
> include_psl_private_domains=True)
> E       TypeError: __init__() got an unexpected keyword argument 'cache_file'
> 
> lexicon/client.py:45: TypeError
> =============================== warnings summary 
> ===============================
> lexicon/tests/providers/integration_tests.py:319
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:319: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/integration_tests.py:331
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:331: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/integration_tests.py:340
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:340: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/integration_tests.py:348
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:348: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/integration_tests.py:360
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:360: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/integration_tests.py:375
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/integration_tests.py:375: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ext_suite_1 - is this a typo?  
> You can register custom marks to avoid this warning - for details, see 
> https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ext_suite_1
> 
> lexicon/tests/providers/test_auto.py:57
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/test_auto.py:57: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ignore_nslookup_mock - is this 
> a typo?  You can register custom marks to avoid this warning - for details, 
> see https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ignore_nslookup_mock('yes')
> 
> lexicon/tests/providers/test_hetzner.py:51
>   /<<PKGBUILDDIR>>/lexicon/tests/providers/test_hetzner.py:51: 
> PytestUnknownMarkWarning: Unknown pytest.mark.ignore_dns_cname_mock - is this 
> a typo?  You can register custom marks to avoid this warning - for details, 
> see https://docs.pytest.org/en/stable/mark.html
>     @pytest.mark.ignore_dns_cname_mock
> 
> lexicon/tests/test_client.py: 11 warnings
> lexicon/tests/test_config.py: 1 warning
> lexicon/tests/test_library.py: 10 warnings
>   /<<PKGBUILDDIR>>/lexicon/config.py:193: DeprecationWarning: Legacy 
> configuration object has been used to load the ConfigResolver.
>     warnings.warn(DeprecationWarning('Legacy configuration object has been 
> used '
> 
> lexicon/tests/test_config.py::test_config_lexicon_file_resolution
> lexicon/tests/test_config.py::test_provider_config_lexicon_file_resolution
> lexicon/tests/test_config.py::test_provider_config_dir_resolution
> lexicon/tests/test_config.py::test_prioritized_resolution
>   /<<PKGBUILDDIR>>/lexicon/config.py:292: YAMLLoadWarning: calling 
> yaml.load() without Loader=... is deprecated, as the default Loader is 
> unsafe. Please read https://msg.pyyaml.org/load for full details.
>     yaml_object = yaml.load(stream) or {}
> 
> lexicon/tests/providers/test_godaddy.py: 117 warnings
>   /<<PKGBUILDDIR>>/lexicon/providers/godaddy.py:246: DeprecationWarning: 
> Using 'method_whitelist' with Retry is deprecated and will be removed in 
> v2.0. Use 'allowed_methods' instead
>     retries = Retry(
> 
> -- Docs: https://docs.pytest.org/en/stable/warnings.html
> =========================== short test summary info 
> ============================
> FAILED lexicon/tests/test_client.py::test_client_basic_init - TypeError: 
> __in...
> FAILED lexicon/tests/test_client.py::test_client_legacy_init - TypeError: 
> __i...
> FAILED 
> lexicon/tests/test_client.py::test_client_init_when_domain_includes_subdomain_should_strip
> FAILED 
> lexicon/tests/test_client.py::test_client_init_with_delegated_domain_name
> FAILED 
> lexicon/tests/test_client.py::test_client_init_with_delegated_domain_fqdn
> FAILED 
> lexicon/tests/test_client.py::test_client_init_with_same_delegated_domain_fqdn
> FAILED 
> lexicon/tests/test_client.py::test_client_parse_env_with_no_keys_should_do_nothing
> FAILED lexicon/tests/test_client.py::test_client_parse_env_with_auth_keys - 
> T...
> FAILED 
> lexicon/tests/test_library.py::test_missing_optional_client_config_parameter_does_not_raise_error
> FAILED 
> lexicon/tests/test_library.py::test_list_action_is_correctly_handled_by_provider
> FAILED 
> lexicon/tests/test_library.py::test_create_action_is_correctly_handled_by_provider
> FAILED 
> lexicon/tests/test_library.py::test_update_action_is_correctly_handled_by_provider
> FAILED 
> lexicon/tests/test_library.py::test_delete_action_is_correctly_handled_by_provider
> = 13 failed, 1396 passed, 198 skipped, 380 deselected, 151 warnings in 43.32s 
> ==
> make[1]: *** [debian/rules:13: override_dh_auto_test] Error 1


The full build log is available from:
http://qa-logs.debian.net/2022/02/12/lexicon_3.3.17-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.

Reply via email to