|
1 | 1 | import pytest |
2 | | -from pytest_mock import MockerFixture |
3 | | -from osparc import JobMetadata, ApiClient, SolversApi |
| 2 | +from osparc import JobMetadata, ApiClient, SolversApi, JobMetadataUpdate |
4 | 3 | from faker import Faker |
5 | | -from urllib3 import HTTPResponse |
| 4 | +from typing import Callable |
| 5 | +from pydantic import BaseModel |
6 | 6 |
|
7 | 7 |
|
8 | 8 | @pytest.fixture |
9 | 9 | def job_metadata(faker: Faker) -> JobMetadata: |
10 | | - _job_id = faker.uuid4() |
| 10 | + _job_id = f"{faker.uuid4()}" |
11 | 11 | return JobMetadata( |
12 | | - job_id=f"{_job_id}", |
| 12 | + job_id=_job_id, |
13 | 13 | metadata={ |
14 | 14 | "job_id": _job_id, |
15 | | - "job_name": faker.text(), |
16 | | - "node_id": faker.uuid4(), |
| 15 | + "job_name": f"{faker.text()}", |
| 16 | + "node_id": f"{faker.uuid4()}", |
17 | 17 | }, |
18 | 18 | url=faker.url(), |
19 | 19 | ) |
20 | 20 |
|
21 | 21 |
|
22 | | -def test_job_metadata_serialization( |
23 | | - mocker: MockerFixture, |
| 22 | +@pytest.fixture |
| 23 | +def job_metadata_update(faker: Faker): |
| 24 | + return JobMetadataUpdate( |
| 25 | + metadata={ |
| 26 | + "var1": faker.boolean(), |
| 27 | + "var2": faker.pyfloat(), |
| 28 | + "var3": faker.pyint(), |
| 29 | + "var4": faker.text(), |
| 30 | + } |
| 31 | + ) |
| 32 | + |
| 33 | + |
| 34 | +def test_get_job_custom_metadata( |
| 35 | + create_server_mock: Callable[[int, BaseModel], None], |
24 | 36 | job_metadata: JobMetadata, |
25 | 37 | api_client: ApiClient, |
26 | 38 | faker: Faker, |
27 | 39 | ): |
28 | | - def _get_job_sideeffect( |
29 | | - method: str, |
30 | | - url: str, |
31 | | - body=None, |
32 | | - fields=None, |
33 | | - headers=None, |
34 | | - json=None, |
35 | | - **urlopen_kw, |
36 | | - ) -> HTTPResponse: |
37 | | - response = HTTPResponse( |
38 | | - status=200, body=job_metadata.model_dump_json().encode() |
39 | | - ) |
40 | | - return response |
41 | | - |
42 | | - mocker.patch("urllib3.PoolManager.request", side_effect=_get_job_sideeffect) |
| 40 | + create_server_mock(200, job_metadata) |
43 | 41 |
|
44 | 42 | _solvers_api = SolversApi(api_client=api_client) |
45 | 43 | metadata = _solvers_api.get_job_custom_metadata( |
|
0 commit comments