-
Notifications
You must be signed in to change notification settings - Fork 344
feat(core, postgres): Add RunFunctionWaitStrategy and use it in pg #908
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
base: main
Are you sure you want to change the base?
feat(core, postgres): Add RunFunctionWaitStrategy and use it in pg #908
Conversation
b4ea0ee
to
d2b2200
Compare
result = self.func(container) | ||
if result: | ||
return result | ||
except tuple(self._transient_exceptions) as e: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually found no reason why this shouldn't be a tuple already on self
-> might be an nice refactoring on WaitStrategy
and where it's used.
] | ||
) | ||
if result.exit_code: | ||
raise ConnectionError("pg_isready is not ready yet") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume that the pg_isready
is some missing change in an older commit. I haven't investigated more...
return returns.pop(0) | ||
|
||
strategy = RunFunctionWaitStrategy(func).with_poll_interval(0) | ||
strategy.wait_until_ready(mock_container) # type: ignore[arg-type] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason mypy didn't like passing in the mock and I had to add the ignore despite other places in the same file not having this problem with mock. No idea why :-(
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #908 +/- ##
==========================================
+ Coverage 79.78% 80.00% +0.21%
==========================================
Files 14 14
Lines 1182 1200 +18
Branches 184 186 +2
==========================================
+ Hits 943 960 +17
- Misses 197 199 +2
+ Partials 42 41 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This is usefull for converting old wait_container_is_ready which use container.exec() to check for a condition to become True.
ca685b7
to
8c1e4f9
Compare
This gets rid of a annoying depcreation warning.
8c1e4f9
to
531934a
Compare
I found no way to convert the current
container.exec()
based check function to any of the currently existingWaitStartegies
and so I addedRunFunctionWaitStrategy
which can be used to convert suchcontainer.exec()
based checks.Helps with: #874
Closes: #883