1+ import pytest
2+ import requests
3+ from utils .test_runner import start_server , stop_server
4+ from tenacity import retry , wait_exponential , stop_after_attempt
5+ from utils .logger import log_response
6+ from utils .assertion import assert_equal
7+
8+
9+ class TestApiSetDefaultEngine :
10+
11+ @pytest .fixture (autouse = True )
12+ def setup_and_teardown (self ):
13+ # Setup
14+ success = start_server ()
15+ if not success :
16+ raise Exception ("Failed to start server" )
17+
18+ yield
19+
20+ # Teardown
21+ stop_server ()
22+
23+ def test_api_set_default_engine_successfully (self ):
24+ # Data test
25+ engine = "llama-cpp"
26+ name = "linux-amd64-avx"
27+ version = "v0.1.35-27.10.24"
28+
29+ data = {"version" : version , "variant" : name }
30+ post_install_url = f"http://localhost:3928/v1/engines/{ engine } /install"
31+ response = requests .post (
32+ post_install_url , json = data
33+ )
34+ assert_equal (response .status_code ,200 )
35+ log_response (response .json (), "test_api_get_default_engine_successfully" )
36+
37+ get_list_url = f"http://localhost:3928/v1/engines/{ engine } "
38+ post_default_url = f"http://localhost:3928/v1/engines/{ engine } /default"
39+
40+ @retry (
41+ wait = wait_exponential (multiplier = 2 , min = 2 , max = 30 ),
42+ stop = stop_after_attempt (5 )
43+ )
44+ def get_request (url ):
45+ response = requests .get (url )
46+ assert len (response .json ()) > 0
47+
48+ get_request (get_list_url )
49+
50+ response_set_default_engine = requests .post (post_default_url , json = data )
51+ json_data = response_set_default_engine .json ()
52+
53+ log_response (json_data , "test_api_set_default_engine_successfully" )
54+ assert_equal (response_set_default_engine .status_code , 200 )
55+
56+ assert_equal (json_data ["message" ], f"Engine { name } { version .lstrip ('v' )} set as default" )
0 commit comments