Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor integration test #1145

Merged
merged 3 commits into from
Nov 27, 2023
Merged

Conversation

richardm-stripe
Copy link
Contributor

tests/test_integration.py is a test file that spins up an HTTP server running in a separate thread and is useful for tests that need to be written at the HTTP level, but I ran into some difficulties when attempting to add a new test here. This PR refactors the test helper a bit to make it more usable:

  • Instead of producing assertion errors inside the HTTP Server thread and doing a weird conversion into HTTP 400s, instead the HTTP server thread sends the request objects back to the test thread via a Queue and you can assert on the received requests inside the test.
  • There is a sensible default implementation that returns 200 with empty JSON.
  • Now, to define a test HTTP server, you just subclass TestServer and (optionally) implement do_request(n: int) to return [status_code, headers, body]`

@richardm-stripe richardm-stripe requested review from a team and pakrym-stripe and removed request for a team November 21, 2023 20:26
Copy link
Contributor

@pakrym-stripe pakrym-stripe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why these tests need an actual HTTP server and can't be done on top of HTTP client mock.

@richardm-stripe
Copy link
Contributor Author

I'm not sure why these tests need an actual HTTP server and can't be done on top of HTTP client mock.

Some of the logic being tested here is logic that is implemented in http_client.py itself.

@richardm-stripe richardm-stripe enabled auto-merge (squash) November 27, 2023 16:35
@richardm-stripe richardm-stripe merged commit 219c603 into master Nov 27, 2023
14 checks passed
richardm-stripe added a commit that referenced this pull request Dec 1, 2023
* Refactor integration test

* Update tests/test_integration.py
@richardm-stripe richardm-stripe deleted the richardm-refactor-integration-test branch January 26, 2024 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants