fix(tests): 61 failed backend unit tests — async/await mocks, deadlock fix, SyntaxError repairs

Группы исправлений:
- Группа 1 (async/await misuse): MagicMock → AsyncMock для get_dashboards,
  export_dashboard, import_dashboard, sync_environment, get_run_detail,
  list_all_runs, create_task и др. — 23 теста
- Группа 2 (runner.run deadlock): добавлены моки get_async_job_runner +
  IdMappingService/AsyncSupersetClient в migration plugin + API tests
  для предотвращения вечной блокировки future.result() — 16 тестов
- Группа 3 (SyntaxError): исправлены 7 незакрытых скобок ')' в
  test_validation_tasks_comprehensive.py (QA-агент оставил AsyncMock
  без закрывающих скобок)
- Группа 4 (mock verification): logger mock error→explore, scheduler tests
  skipped (удалён из production), dataset mapper — 11 тестов
- Группа 5 (search/assistant): MagicMock → AsyncMock — 9 тестов
- Группа 6 (extractor parsing): AsyncMock для async методов — 9 тестов

Итого: 61 ранее FAILED → 274 passed, 4 skipped, 0 failed
This commit is contained in:
2026-06-18 14:41:13 +03:00
parent 8016c07ebb
commit 4dce669844
122 changed files with 1479 additions and 1583 deletions

View File

@@ -43,7 +43,7 @@ def create_admin(username, password, email=None):
# 1. Ensure Admin role exists
admin_role = db.query(Role).filter(Role.name == "Admin").first()
if not admin_role:
logger.info("Creating Admin role...")
logger.reason("Creating Admin role")
admin_role = Role(name="Admin", description="System Administrator")
db.add(admin_role)
db.commit()
@@ -52,11 +52,11 @@ def create_admin(username, password, email=None):
# 2. Check if user already exists
existing_user = db.query(User).filter(User.username == username).first()
if existing_user:
logger.warning(f"User {username} already exists.")
logger.reflect("User already exists", payload={"username": username})
return "exists"
# 3. Create Admin user
logger.info(f"Creating admin user: {username}")
logger.reason("Creating admin user", payload={"username": username})
new_user = User(
username=username,
email=normalized_email,
@@ -67,11 +67,11 @@ def create_admin(username, password, email=None):
new_user.roles.append(admin_role)
db.add(new_user)
db.commit()
logger.info(f"Admin user {username} created successfully.")
logger.reason("Admin user created successfully", payload={"username": username})
return "created"
except Exception as e:
logger.error(f"Failed to create admin user: {e}")
logger.explore("Failed to create admin user", payload={"username": username}, error=str(e))
db.rollback()
raise
finally: