Skip to content

Commit eac1b43

Browse files
committed
src/services: Init unit-tests for kill & suite service
Signed-off-by: Kamoltat Sirivadhna <[email protected]>
1 parent 9bf2adf commit eac1b43

File tree

4 files changed

+110
-1
lines changed

4 files changed

+110
-1
lines changed

Diff for: pytest.ini

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[pytest]
2+
pythonpath = src

Diff for: src/services/suite.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def make_run_name(run_dic):
6666
str(run_dic["timestamp"]),
6767
run_dic["suite"],
6868
run_dic["ceph_branch"],
69-
run_dic["kernel_branch"] or "-",
69+
run_dic["kernel_branch"] or "distro",
7070
run_dic["flavor"],
7171
worker,
7272
]

Diff for: src/services/test_kill.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import pytest
2+
from fastapi.testclient import TestClient
3+
from main import app
4+
from services.helpers import get_token, get_username, get_run_details
5+
from teuthology.kill import main as teuth_main
6+
from unittest.mock import patch
7+
from routes.kill import Depends as depends
8+
import json
9+
10+
client = TestClient(app)
11+
12+
def override_get_token():
13+
return {"access_token": "token_123", "token_type": "bearer"}
14+
15+
async def override_get_username():
16+
return {"user": "kamoltat"}
17+
18+
async def override_get_run_details():
19+
return {"id": "7451978", "user": "kamoltat"}
20+
21+
def test_missing_access_token():
22+
response = client.post("/kill", json={"run": "run1"})
23+
assert response.status_code == 401
24+
assert response.json() == {"detail": "You need to be logged in"}
25+
26+
def test_kill_run_success():
27+
app.dependency_overrides[get_token] = override_get_token
28+
app.dependency_overrides[get_username] = override_get_username
29+
app.dependency_overrides[get_run_details] = override_get_run_details
30+
body = {
31+
"owner": "kamoltat" ,
32+
"run": "run1"
33+
}
34+
response = client.post("/kill", json=json.dumps(body))
35+
assert response.status_code == 200
36+
assert response.json() == {"kill": "success"}

Diff for: src/services/test_suite.py

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from fastapi.testclient import TestClient
2+
from main import app
3+
from suite import *
4+
5+
"""
6+
Created a TestClient instance and define a dictionary run_dic with test data for the make_run_name function,
7+
then called the function with the test data and assert that the result matches the expected output
8+
"""
9+
10+
def test_make_run_name():
11+
client = TestClient(app)
12+
run_dic = {
13+
"user": "testuser",
14+
"timestamp": "2022-03-21_14:30:00",
15+
"suite": "rados",
16+
"ceph_branch": "ceph1",
17+
"kernel_branch": "kernel1",
18+
"flavor": "test-flavor",
19+
"machine_type": "test-machine"
20+
}
21+
expected_result = "testuser-2022-03-21_14:30:00-rados-ceph1-kernel1-test-flavor-test-machine"
22+
assert make_run_name(run_dic) == expected_result
23+
24+
"""
25+
Test the `make_run_name` function with an input dictionary containing a single worker machine type.
26+
"""
27+
def test_make_run_name_with_single_worker():
28+
run_dic = {
29+
"user": "test_user",
30+
"timestamp": "2022-03-21_14:30:00",
31+
"suite": "rados",
32+
"ceph_branch": "ceph1",
33+
"kernel_branch": "kernel1",
34+
"flavor": "test-flavor",
35+
"machine_type": "worker1"
36+
}
37+
expected_run_name = "test_user-2022-03-21_14:30:00-rados-ceph1-kernel1-test-flavor-worker1"
38+
assert make_run_name(run_dic) == expected_run_name
39+
40+
"""
41+
Test the `make_run_name` function with a multi-machine type input dictionary.
42+
"""
43+
44+
def test_make_run_name_with_multi_worker():
45+
run_dic = {
46+
"user": "test_user",
47+
"timestamp": "2022-03-21_14:30:00",
48+
"suite": "rados",
49+
"ceph_branch": "ceph1",
50+
"kernel_branch": "kernel1",
51+
"flavor": "test-flavor",
52+
"machine_type": "worker1,worker2,worker3"
53+
}
54+
expected_run_name = "test_user-2022-03-21_14:30:00-rados-ceph1-kernel1-test-flavor-multi"
55+
assert make_run_name(run_dic) == expected_run_name
56+
57+
"""
58+
Test the function for no kernel branch
59+
"""
60+
def test_make_run_name_with_no_kernel_branch():
61+
run_dic = {
62+
"user": "teuthology",
63+
"timestamp": "2022-03-21_14:30:00",
64+
"suite": "rados",
65+
"ceph_branch": "ceph1",
66+
"kernel_branch": None,
67+
"flavor": "test-flavor",
68+
"machine_type": "test-machine"
69+
}
70+
expected_run_name = "teuthology-2022-03-21_14:30:00-rados-ceph1-distro-test-flavor-test-machine"
71+
assert make_run_name(run_dic) == expected_run_name

0 commit comments

Comments
 (0)