from dataclasses import replace from pathlib import Path import json import time from aim_webgui.auth.service import Auth from aim_webgui.workflows import Workflows from aim_webgui.worker import execute_claimed from test_core_execution import native_fixture def test_worker(settings,core_root): native_fixture(core_root) auth=Auth(settings);auth.bootstrap() with auth.store.transaction()as db: db.execute("UPDATE users SET must_change_password=0 WHERE username='admin'") uid=db.execute("SELECT id FROM users WHERE username='admin'").fetchone()[0] flow=Workflows(settings) review=flow.review(uid,'example','debug_test_connection',['test01.example'],{}) ident=flow.queue_review(uid,review['review_id'],idempotency_key='worker-proof') with flow.store.transaction()as db: db.execute("UPDATE jobs SET status='running' WHERE id=?",(ident,)) execute_claimed(settings,ident) result=flow.job(uid,ident)['core_result'] assert result['status']=='succeeded' and result['counts']['ok']==1 assert result['remote_work_may_have_started'] is True assert not list(settings.state_dir.glob('.console-*')) assert not flow.plans(uid)