letsencrypt / letsencrypt/boulder

Python exceptions raised during integration test runs should be handled gracefully

Open
#5,184 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
5.8k
Forks
649
Avg merge
3d 23h
Merged PRs (30d)
24

Description

When an error is encountered while running the Boulder Integration Test suite not all exceptions are being caught during the initialization of the chisel client. This results in a stack trace being during the Integration Test. Ideally, all python exceptions should be caught and handled gracefully, instead of outputting a stack trace during Integration Tests

Starting service boulder-wfe
All servers running. Hit ^C to kill.
Traceback (most recent call last):
  File "test/integration-test.py", line 388, in <module>
    main()
  File "test/integration-test.py", line 251, in main
    v1_integration.caa_client = caa_client = chisel.make_client()
  File "/go/src/github.com/letsencrypt/boulder/test/chisel.py", line 53, in make_client
    account = client.register(messages.NewRegistration.from_data(email=email))
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 279, in register
    response = self._post(self.directory[new_reg], new_reg)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 97, in _post
    return self.net.post(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 1201, in post
    return self._post_once(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 1214, in _post_once
    response = self._check_response(response, content_type=content_type)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 1072, in _check_response
    raise messages.Error.from_json(jobj)
acme.messages.Error: urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Account creation on ACMEv1 is disabled. Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555. See https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430 for details.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in test/integration-test.py at main(), where v1_integration.caa_client is initialized through chisel.make_client(), then read test/chisel.py around make_client(). Reproduce the integration-test failure and identify how initialization errors are currently surfaced. Done means Python exceptions during this setup are handled gracefully without printing a stack trace.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.