Skip to content

Commit aceafad

Browse files
committed
Test redundant instances termination
1 parent 6d2687c commit aceafad

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

src/tests/_internal/server/background/tasks/test_process_fleets.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,36 @@ async def test_consolidation_creates_missing_instances(self, test_db, session: A
126126
instances = (await session.execute(select(InstanceModel))).scalars().all()
127127
assert len(instances) == 2
128128
assert {i.instance_num for i in instances} == {0, 1} # uses 0 for next instance num
129+
130+
@pytest.mark.asyncio
131+
@pytest.mark.parametrize("test_db", ["sqlite", "postgres"], indirect=True)
132+
async def test_consolidation_terminates_redundant_instances(
133+
self, test_db, session: AsyncSession
134+
):
135+
project = await create_project(session)
136+
spec = get_fleet_spec()
137+
spec.configuration.nodes = FleetNodesSpec(min=1, target=1, max=1)
138+
fleet = await create_fleet(
139+
session=session,
140+
project=project,
141+
spec=spec,
142+
)
143+
instance1 = await create_instance(
144+
session=session,
145+
project=project,
146+
fleet=fleet,
147+
status=InstanceStatus.BUSY,
148+
instance_num=0,
149+
)
150+
instance2 = await create_instance(
151+
session=session,
152+
project=project,
153+
fleet=fleet,
154+
status=InstanceStatus.IDLE,
155+
instance_num=1,
156+
)
157+
await process_fleets()
158+
await session.refresh(instance1)
159+
await session.refresh(instance2)
160+
assert instance1.status == InstanceStatus.BUSY
161+
assert instance2.status == InstanceStatus.TERMINATING

0 commit comments

Comments
 (0)