File tree 2 files changed +39
-10
lines changed
backend/tests/integration
2 files changed +39
-10
lines changed Original file line number Diff line number Diff line change
1
+ from tempfile import NamedTemporaryFile
2
+
1
3
import docker
2
4
import pytest
3
5
from fastapi .testclient import TestClient
4
6
from pytest_mock import MockFixture
5
- from sqlmodel import Session
6
7
7
- import jobq_server .db
8
8
import jobq_server .services .k8s
9
9
from jobq_server import app
10
10
from jobq_server .config import settings
11
- from jobq_server .db import get_engine , upgrade_migrations
11
+ from jobq_server .db import upgrade_migrations
12
12
13
13
14
14
@pytest .fixture
@@ -24,10 +24,8 @@ def client(mocker: MockFixture) -> TestClient:
24
24
25
25
@pytest .fixture (scope = "session" , autouse = True )
26
26
def db ():
27
- # Use a SQLite in-memory database for testing
28
- settings .DB_CONNECTION_STRING = "sqlite:///:memory:"
29
- settings .AUTO_MIGRATE = True
30
-
31
- upgrade_migrations ()
32
- with Session (get_engine ()) as session :
33
- yield session
27
+ # Use a temporary SQLite database for testing
28
+ with NamedTemporaryFile () as f :
29
+ settings .DB_CONNECTION_STRING = f"sqlite:///{ f .name } "
30
+ upgrade_migrations ()
31
+ yield
Original file line number Diff line number Diff line change
1
+ import random
2
+ import string
3
+
4
+ from fastapi .encoders import jsonable_encoder
5
+ from fastapi .testclient import TestClient
6
+
7
+ from jobq_server .db import Project , ProjectPublic
8
+
9
+
10
+ def _random_project () -> Project :
11
+ namespace = "test-" + "" .join (random .choices (string .ascii_lowercase , k = 6 ))
12
+ return Project (
13
+ name = "test-project" ,
14
+ namespace = namespace ,
15
+ local_queue = "local-queue" ,
16
+ cluster_queue = "cluster-queue" ,
17
+ )
18
+
19
+
20
+ def test_project_create (client : TestClient ) -> None :
21
+ p = _random_project ()
22
+ response = client .post ("/projects" , json = jsonable_encoder (p ))
23
+ assert response .status_code == 201
24
+
25
+ project = ProjectPublic .model_validate_json (response .text )
26
+ assert project .name == p .name
27
+ assert project .description == p .description
28
+ assert project .cluster_queue == p .cluster_queue
29
+ assert project .local_queue == p .local_queue
30
+ assert project .namespace == p .namespace
31
+ assert project .id is not None
You can’t perform that action at this time.
0 commit comments