def main(): """Bootstrap the application.""" try: Arguments(sys.argv) environment = Environment(os.environ) authentication = Authenticate(environment) authentication.perform() except HookError as exception: _handle_exception(exception) except InputError as exception: _handle_exception(exception) else: sys.exit()
def test_does_not_call_sleep(mocker): stub_environment = mocker.MagicMock(spec=Environment, api_key=None, domain='stub-domain', validation_key=None, fqdn='stub-host.stub-domain', record_id=1, post_cmd=None) mocker.patch('lets_do_dns.acme_dns_auth.authenticate.Resource') mock_sleep = mocker.patch('lets_do_dns.acme_dns_auth.authenticate.sleep') authentication = Authenticate(environment=stub_environment) authentication.perform() mock_sleep.assert_not_called()
def test_properly_calls_sleep(mocker): stub_environment = mocker.MagicMock( spec=Environment, api_key=None, domain='stub-domain', fqdn='stub-host.stub-domain', validation_key=None, record_id=None) mocker.patch('lets_do_dns.acme_dns_auth.authenticate.lookup') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.stdout') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.Resource') mock_sleep = mocker.patch( 'lets_do_dns.acme_dns_auth.authenticate.sleep') authentication = Authenticate(environment=stub_environment) authentication.perform() mock_sleep.assert_called_once_with(2)
def test_triggers_resource_delete_after_resource_init(mocker): stub_environment = mocker.MagicMock(spec=Environment, api_key=None, domain='stub-domain', validation_key=None, fqdn='stub-host.stub-domain', record_id=0, post_cmd=None) mock_resource = mocker.patch( 'lets_do_dns.acme_dns_auth.authenticate.Resource') authentication = Authenticate(environment=stub_environment) authentication.perform() initialize_then_delete = [call(ANY, ANY, ANY, ANY, ANY), call().delete()] mock_resource.assert_has_calls(initialize_then_delete)
def test_passes_record_id_to_stdout(mocker): stub_environment = mocker.MagicMock( spec=Environment, api_key=None, domain='stub-domain', fqdn='stub-host.stub-domain', validation_key=None, record_id=None) mocker.patch('lets_do_dns.acme_dns_auth.authenticate.lookup') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.sleep') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.Resource', spec=Resource, __int__=lambda _: 123567) mock_stdout = mocker.patch( 'lets_do_dns.acme_dns_auth.authenticate.stdout') authentication = Authenticate(environment=stub_environment) authentication.perform() mock_stdout.assert_called_once_with(123567)
def test_properly_initializes_resource(mocker): stub_environment = mocker.MagicMock(spec=Environment, api_key='stub-api-key', domain='stub-domain', validation_key=None, fqdn='stub-host.stub-domain', record_id=984567, post_cmd=None) mock_resource = mocker.patch( 'lets_do_dns.acme_dns_auth.authenticate.Resource') authentication = Authenticate(environment=stub_environment) authentication.perform() mock_resource.assert_called_once_with('stub-api-key', '_acme-challenge.stub-host', 'stub-domain', None, 984567)
def test_properly_calls_resource_create_after_resource_init(mocker): stub_environment = mocker.MagicMock( spec=Environment, api_key='stub-api-key', domain='stub-domain', fqdn='stub-host.stub-domain', validation_key='stub-validation', record_id=None) mocker.patch('lets_do_dns.acme_dns_auth.authenticate.lookup') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.sleep') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.stdout') mock_resource = mocker.patch( 'lets_do_dns.acme_dns_auth.authenticate.Resource') authentication = Authenticate(environment=stub_environment) authentication.perform() initialize_then_create = [ call(ANY, ANY, ANY, ANY, ANY), call().create()] mock_resource.assert_has_calls(initialize_then_create)
def test_passes_postcmd_to_run(mocker, fqdn): stub_environment = mocker.MagicMock(spec=Environment, api_key=None, domain='stub-domain', validation_key=None, fqdn=fqdn, record_id=3, post_cmd='test-program --help') mocker.patch('lets_do_dns.acme_dns_auth.authenticate.Resource') mock_run = mocker.patch('lets_do_dns.acme_dns_auth.authenticate.run') authentication = Authenticate(environment=stub_environment) authentication.perform() mock_run.assert_called_once_with('test-program --help', env={ 'CERTBOT_HOSTNAME': fqdn, 'PATH': ("/bin:/sbin:/usr/bin:/usr/sbin:" "/usr/local/bin:/usr/local/sbin") })