e3fb518ab2
- Remove workspace_id from Pydantic models in project_management routes - Remove workspace_id from SQLAlchemy and SQLite project management repos - Remove workspace_id from worker tasks (storage keys, entity creation) - Remove workspace_id from video dedup and title usage modules - Remove workspace_id from generation and ingest worker tasks - Clean workspace_id from all test files and scripts - Remove workspace-specific test files (list_workspaces, workspace repos) Task: #14 workspace_id 残留清理
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import Session, sessionmaker
|
|
|
|
from packages.adapters.sqlalchemy_impl.models import Base
|
|
from packages.adapters.sqlalchemy_impl.project_repository import (
|
|
SQLAlchemyProjectRepository,
|
|
)
|
|
from packages.application import CreateProjectCommand, CreateProjectUseCase
|
|
|
|
|
|
def test_sqlalchemy_project_repository():
|
|
"""Test SQLAlchemy project repository with in-memory SQLite."""
|
|
# Create in-memory SQLite database
|
|
engine = create_engine("sqlite:///:memory:")
|
|
Base.metadata.create_all(engine)
|
|
SessionLocal = sessionmaker(bind=engine)
|
|
session: Session = SessionLocal()
|
|
|
|
try:
|
|
# Create repository and use case
|
|
repository = SQLAlchemyProjectRepository(session)
|
|
use_case = CreateProjectUseCase(repository)
|
|
|
|
# Create project
|
|
project = use_case.execute(
|
|
CreateProjectCommand(
|
|
name="Test Project",
|
|
description="Test description",
|
|
)
|
|
)
|
|
|
|
assert project.name == "Test Project"
|
|
|
|
# List projects
|
|
projects = repository.list_by_workspace("ws-1")
|
|
assert len(projects) == 1
|
|
assert projects[0].id == project.id
|
|
assert projects[0].name == "Test Project"
|
|
finally:
|
|
session.close()
|