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

Update unit testing patterns #731

Merged
merged 19 commits into from
Jul 26, 2023
Merged

Update unit testing patterns #731

merged 19 commits into from
Jul 26, 2023

Conversation

gcglinton
Copy link
Contributor

In writing more and more tests, some things have been streamlined, or improved, and this is just back-porting those changes to previous tests.

  • Define a pretty method that you can use while debugging your rests
    • Use like: pretty(ThingYouWantToDump), then run your tests with -vv and --capture=tee-sys parameters
  • Move Options and Message creation into methods (versus creating objects manually)
    • Should probably further use sarracenia.config.default_config() to generate base config
    • Could also turn them both into a fixture, but then you might have to break each test set into it's own test method so the fixture resets properly
  • Use deepcopy instead of just straight copy, so tests don't affect eachother
  • With the changes above there was some broken tests in rety_test.py, so fix those
  • Add a note to retry_teststeps.py about how it works, and why we're not using it for our tests
    • tl;dr, it doesn't compare outputs from different drivers against a desired output, so we can't ensure drivers are doing/returning the same thing
  • In some tests, I was seeing if logs were being generated, but the assertions were only happening inside an if block, so they could never fail; Fixed that

Pretty printing wasn't awesome, but now it's better.
This ensures that there's no collisions between tests if we modify properties/dict values
This ensures that they're always unique, and have no collisions between tests
It's disabled, but can serve as good documentation of how to do it.
It used to assert inside the "if" statement, but that would only ever be True. This way, it would be possible for the logs to be missing, and the test will fail.
No longer need to specify a fake server, becasue we're checking the keys a little more inteligently.
Pretty printing wasn't awesome, but now it's better.
This ensures that there's no collisions between tests if we modify properties/dict values
This ensures that they're always unique, and have no collisions between tests
It's disabled, but can serve as good documentation of how to do it.
It used to assert inside the "if" statement, but that would only ever be True. This way, it would be possible for the logs to be missing, and the test will fail.
No longer need to specify a fake server, becasue we're checking the keys a little more inteligently.
@gcglinton
Copy link
Contributor Author

There's so many commits here, but really there's a bunch of duplication. No idea how to fix that...

@petersilva
Copy link
Contributor

will do a squash merge... number of commits not an issue then...

@petersilva petersilva merged commit 10d730a into MetPX:v03_wip Jul 26, 2023
14 of 18 checks passed
@gcglinton gcglinton deleted the UpdateTesting branch July 27, 2023 12:23
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.

2 participants