letsencrypt / letsencrypt/boulder
Python exceptions raised during integration test runs should be handled gracefully
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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