Skip to content

Commit 704b950

Browse files
committed
repository almost tested
1 parent 564efd1 commit 704b950

File tree

1 file changed

+66
-3
lines changed

1 file changed

+66
-3
lines changed

services/director-v2/tests/unit/with_dbs/comp_scheduler/test_db_repositories_comp_runs.py

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# pylint: disable=unused-argument
66
# pylint: disable=unused-variable
77

8+
import datetime
89
from collections.abc import Awaitable, Callable
910

1011
import pytest
@@ -101,14 +102,38 @@ async def test_create(
101102
use_on_demand_clusters=faker.pybool(),
102103
)
103104

104-
await CompRunsRepository(aiopg_engine).create(
105+
created = await CompRunsRepository(aiopg_engine).create(
106+
user_id=published_project.user["id"],
107+
project_id=published_project.project.uuid,
108+
cluster_id=DEFAULT_CLUSTER_ID,
109+
iteration=None,
110+
metadata=run_metadata,
111+
use_on_demand_clusters=faker.pybool(),
112+
)
113+
got = await CompRunsRepository(aiopg_engine).get(
114+
user_id=published_project.user["id"],
115+
project_id=published_project.project.uuid,
116+
)
117+
assert created == got
118+
119+
# creating a second one auto increment the iteration
120+
created = await CompRunsRepository(aiopg_engine).create(
105121
user_id=published_project.user["id"],
106122
project_id=published_project.project.uuid,
107123
cluster_id=DEFAULT_CLUSTER_ID,
108124
iteration=None,
109125
metadata=run_metadata,
110126
use_on_demand_clusters=faker.pybool(),
111127
)
128+
assert created != got
129+
assert created.iteration == got.iteration + 1
130+
131+
# getting without specifying the iteration returns the latest
132+
got = await CompRunsRepository(aiopg_engine).get(
133+
user_id=published_project.user["id"],
134+
project_id=published_project.project.uuid,
135+
)
136+
assert created == got
112137

113138
with pytest.raises(ClusterNotFoundError):
114139
await CompRunsRepository(aiopg_engine).create(
@@ -130,8 +155,46 @@ async def test_create(
130155
)
131156

132157

133-
async def test_update(aiopg_engine):
134-
...
158+
async def test_update(
159+
aiopg_engine,
160+
fake_user_id: UserID,
161+
fake_project_id: ProjectID,
162+
run_metadata: RunMetadataDict,
163+
faker: Faker,
164+
publish_project: Callable[[], Awaitable[PublishedProject]],
165+
):
166+
# this updates nothing but also does not complain
167+
updated = await CompRunsRepository(aiopg_engine).update(
168+
fake_user_id, fake_project_id, faker.pyint(min_value=1)
169+
)
170+
assert updated is None
171+
# now let's create a valid one
172+
published_project = await publish_project()
173+
created = await CompRunsRepository(aiopg_engine).create(
174+
user_id=published_project.user["id"],
175+
project_id=published_project.project.uuid,
176+
cluster_id=DEFAULT_CLUSTER_ID,
177+
iteration=None,
178+
metadata=run_metadata,
179+
use_on_demand_clusters=faker.pybool(),
180+
)
181+
182+
got = await CompRunsRepository(aiopg_engine).get(
183+
user_id=published_project.user["id"],
184+
project_id=published_project.project.uuid,
185+
)
186+
assert created == got
187+
188+
updated = await CompRunsRepository(aiopg_engine).update(
189+
created.user_id,
190+
created.project_uuid,
191+
created.iteration,
192+
scheduled=datetime.datetime.now(datetime.UTC),
193+
)
194+
assert updated is not None
195+
assert created != updated
196+
assert created.scheduled is None
197+
assert updated.scheduled is not None
135198

136199

137200
async def test_delete(aiopg_engine):

0 commit comments

Comments
 (0)