ml_deploy / app /test /test_training_endpoint.py
gpicciuca's picture
First commit
058f1d9
from .fixture import app_client
import json
import time
def test_training_endpoint(app_client):
"""
Checks whether the training endpoint correctly receives, starts
and clears a training task instance.
Given:
- Launched training instance
When:
- State polled multiple times
Then:
- Expect state returned on first poll and instance gone on second poll
"""
response = app_client.post("/train/start")
assert response.status_code == 200
output : dict = json.loads(response.content)
assert len(output.keys()) == 1
assert output["message"] == "Model training was scheduled and will begin shortly."
time.sleep(5)
response = app_client.post("/train/get_state")
assert response.status_code == 200
output : dict = json.loads(response.content)
assert len(output.keys()) == 2
assert output["done"]
assert not output["error"]
time.sleep(1)
response = app_client.post("/train/get_state")
assert response.status_code == 200
output : dict = json.loads(response.content)
assert len(output.keys()) == 1
assert output["message"] == "No training instance running!"