|
10 | 10 | from models_library.users import UserID |
11 | 11 | from packaging import version |
12 | 12 | from packaging.version import Version |
13 | | -from pydantic import EmailStr, TypeAdapter |
| 13 | +from pydantic import EmailStr, HttpUrl, TypeAdapter |
14 | 14 | from simcore_service_catalog.db.repositories.services import ServicesRepository |
15 | 15 | from simcore_service_catalog.models.services_db import ( |
16 | 16 | ServiceAccessRightsAtDB, |
@@ -125,6 +125,31 @@ async def test_create_services( |
125 | 125 | ) == service_db_create.model_dump(exclude_unset=True) |
126 | 126 |
|
127 | 127 |
|
| 128 | +@pytest.mark.parametrize( |
| 129 | + "url_object", |
| 130 | + [ |
| 131 | + "https://github.com/some/path/to/image.png?raw=true", |
| 132 | + TypeAdapter(HttpUrl).validate_python( |
| 133 | + "https://github.com/some/path/to/image.png?raw=true" |
| 134 | + ), |
| 135 | + "", |
| 136 | + None, |
| 137 | + ], |
| 138 | +) |
| 139 | +async def test_regression_service_meta_data_db_create( |
| 140 | + create_fake_service_data: Callable, url_object: str | HttpUrl | None |
| 141 | +): |
| 142 | + fake_service, *_ = create_fake_service_data( |
| 143 | + "simcore/services/dynamic/jupyterlab", |
| 144 | + "1.0.0", |
| 145 | + team_access="x", |
| 146 | + everyone_access="x", |
| 147 | + ) |
| 148 | + |
| 149 | + fake_service["icon"] = url_object |
| 150 | + assert ServiceMetaDataDBCreate.model_validate(fake_service) |
| 151 | + |
| 152 | + |
128 | 153 | async def test_read_services( |
129 | 154 | services_repo: ServicesRepository, |
130 | 155 | user_groups_ids: list[int], |
@@ -240,19 +265,19 @@ async def test_list_service_releases_version_filtered( |
240 | 265 | assert latest |
241 | 266 | assert latest.version == fake_catalog_with_jupyterlab.expected_latest |
242 | 267 |
|
243 | | - releases_1_1_x: list[ |
244 | | - ServiceMetaDataDBGet |
245 | | - ] = await services_repo.list_service_releases( |
246 | | - "simcore/services/dynamic/jupyterlab", major=1, minor=1 |
| 268 | + releases_1_1_x: list[ServiceMetaDataDBGet] = ( |
| 269 | + await services_repo.list_service_releases( |
| 270 | + "simcore/services/dynamic/jupyterlab", major=1, minor=1 |
| 271 | + ) |
247 | 272 | ) |
248 | 273 | assert [ |
249 | 274 | s.version for s in releases_1_1_x |
250 | 275 | ] == fake_catalog_with_jupyterlab.expected_1_1_x |
251 | 276 |
|
252 | | - expected_0_x_x: list[ |
253 | | - ServiceMetaDataDBGet |
254 | | - ] = await services_repo.list_service_releases( |
255 | | - "simcore/services/dynamic/jupyterlab", major=0 |
| 277 | + expected_0_x_x: list[ServiceMetaDataDBGet] = ( |
| 278 | + await services_repo.list_service_releases( |
| 279 | + "simcore/services/dynamic/jupyterlab", major=0 |
| 280 | + ) |
256 | 281 | ) |
257 | 282 | assert [ |
258 | 283 | s.version for s in expected_0_x_x |
|
0 commit comments