Fix for issue#687 - #691
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ |
c0c0n3
left a comment
There was a problem hiding this comment.
@Necravisaketi I've sketched out an improved flow. If you agree, after implementing it, please run the benchmark to make sure everything is hunky-dory---those tests aren't part of our automated test suite, so you'll have to run them manually.
| version_url = f"{QL_BASE_URL}/version" | ||
| r = requests.get(version_url) | ||
| r.raise_for_status() |
There was a problem hiding this comment.
That's a good start, but there's still room for improvement :-)
The problem with this approach is that if QL starts after the requests.get call, the benchmark will exit. Ideally we should wait until we know QL is up or bail out after a max amount of secs. There's a function in reporter.tests.utils we can use to implement this flow. I'm sketching out how below in pseudo code.
from reporter.tests.utils import wait_until
def _can_get_ql_version() -> bool:
status = requests.get(version_url)
return status == okay
def wait_for_ql():
wait_until(_can_get_ql_version)
class TestScript:
...
def _start_docker_and_wait_for_services(self):
self._docker.start()
wait_for_ql()
# If QL is up, then Redis & DB backend are up to b/c of docker deps.
Proposed changes
Call to the QL's version endpoint #687
Types of changes
What types of changes does your code introduce to the project?
Put an
xin the boxes that applyChecklist
Put an
xin the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...