Exemple #1
0
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()
Exemple #2
0
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)
Exemple #4
0
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)
Exemple #6
0
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)
Exemple #8
0
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")
                                     })