Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from fastapi.testclient import TestClient
from app.config import settings
from app.schemas import Dataset, Project
from ...helpers import uid
from .helpers import stage_dataset
def test_create_dataset_success(client: TestClient, project: Project) -> None:
dataset_name = uid('dataset')
dataset = Dataset(name=dataset_name, description=uid() + '🍮🐉α𝒷𝓒ᗪeŦ🎯☹')
canonical_name = f'{project.name}.{dataset_name}'
response = client.post(
f'{settings.API_V0_STR}/projects/{project.name}/datasets', json=dataset.dict()
)
assert response.status_code == 200, response.json()['detail']
dataset_post = Dataset(**response.json())
assert dataset_post.name == canonical_name
dataset.name = canonical_name
assert dataset_post == dataset
def test_create_dataset_failure(client: TestClient) -> None:
dataset = Dataset(name=uid('dataset'))
response = client.post(
f'{settings.API_V0_STR}/projects/UNKNOWN/datasets', json=dataset.dict()
)
assert response.status_code == 404
def test_get_dataset_success(client: TestClient, project: Project) -> None:
dataset = stage_dataset(client, project.name)
dataset_name = dataset.name.split('.')[1]
response = client.get(
f'{settings.API_V0_STR}/projects/{project.name}/datasets/{dataset_name}'
)
assert response.status_code == 200
dataset_get = Dataset(**response.json())
assert dataset_get == dataset
def test_get_dataset_failure(client: TestClient, project: Project) -> None:
response = client.get(
f'{settings.API_V0_STR}/projects/{project.name}/datasets/UNKNOWN'
)
assert response.status_code == 404
detail = response.json()['detail']
assert "The dataset 'UNKNOWN' does not exist in project" in detail
def test_list_datasets(client: TestClient, project: Project) -> None:
dataset = stage_dataset(client, project.name)
response = client.get(f'{settings.API_V0_STR}/projects/{project.name}/datasets')
assert response.status_code == 200
serialized_datasets = response.json()
assert dataset.name in (_['name'] for _ in serialized_datasets)