Refactor account models to use SQLAlchemy 2.0 dataclass mapping (#26415)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
@@ -16,6 +16,7 @@ from services.errors.account import (
|
||||
AccountPasswordError,
|
||||
AccountRegisterError,
|
||||
CurrentPasswordIncorrectError,
|
||||
TenantNotFoundError,
|
||||
)
|
||||
from services.errors.workspace import WorkSpaceNotAllowedCreateError, WorkspacesLimitExceededError
|
||||
|
||||
@@ -1414,7 +1415,7 @@ class TestTenantService:
|
||||
)
|
||||
|
||||
# Try to get current tenant (should fail)
|
||||
with pytest.raises(AttributeError):
|
||||
with pytest.raises((AttributeError, TenantNotFoundError)):
|
||||
TenantService.get_current_tenant_by_account(account)
|
||||
|
||||
def test_switch_tenant_success(self, db_session_with_containers, mock_external_service_dependencies):
|
||||
|
||||
@@ -44,27 +44,26 @@ class TestWorkflowService:
|
||||
Account: Created test account instance
|
||||
"""
|
||||
fake = fake or Faker()
|
||||
account = Account()
|
||||
account.id = fake.uuid4()
|
||||
account.email = fake.email()
|
||||
account.name = fake.name()
|
||||
account.avatar_url = fake.url()
|
||||
account.tenant_id = fake.uuid4()
|
||||
account.status = "active"
|
||||
account.type = "normal"
|
||||
account.role = "owner"
|
||||
account.interface_language = "en-US" # Set interface language for Site creation
|
||||
account = Account(
|
||||
email=fake.email(),
|
||||
name=fake.name(),
|
||||
avatar=fake.url(),
|
||||
status="active",
|
||||
interface_language="en-US", # Set interface language for Site creation
|
||||
)
|
||||
account.created_at = fake.date_time_this_year()
|
||||
account.id = fake.uuid4()
|
||||
account.updated_at = account.created_at
|
||||
|
||||
# Create a tenant for the account
|
||||
from models.account import Tenant
|
||||
|
||||
tenant = Tenant()
|
||||
tenant.id = account.tenant_id
|
||||
tenant.name = f"Test Tenant {fake.company()}"
|
||||
tenant.plan = "basic"
|
||||
tenant.status = "active"
|
||||
tenant = Tenant(
|
||||
name=f"Test Tenant {fake.company()}",
|
||||
plan="basic",
|
||||
status="active",
|
||||
)
|
||||
tenant.id = account.current_tenant_id
|
||||
tenant.created_at = fake.date_time_this_year()
|
||||
tenant.updated_at = tenant.created_at
|
||||
|
||||
@@ -91,20 +90,21 @@ class TestWorkflowService:
|
||||
App: Created test app instance
|
||||
"""
|
||||
fake = fake or Faker()
|
||||
app = App()
|
||||
app.id = fake.uuid4()
|
||||
app.tenant_id = fake.uuid4()
|
||||
app.name = fake.company()
|
||||
app.description = fake.text()
|
||||
app.mode = AppMode.WORKFLOW
|
||||
app.icon_type = "emoji"
|
||||
app.icon = "🤖"
|
||||
app.icon_background = "#FFEAD5"
|
||||
app.enable_site = True
|
||||
app.enable_api = True
|
||||
app.created_by = fake.uuid4()
|
||||
app = App(
|
||||
id=fake.uuid4(),
|
||||
tenant_id=fake.uuid4(),
|
||||
name=fake.company(),
|
||||
description=fake.text(),
|
||||
mode=AppMode.WORKFLOW,
|
||||
icon_type="emoji",
|
||||
icon="🤖",
|
||||
icon_background="#FFEAD5",
|
||||
enable_site=True,
|
||||
enable_api=True,
|
||||
created_by=fake.uuid4(),
|
||||
workflow_id=None, # Will be set when workflow is created
|
||||
)
|
||||
app.updated_by = app.created_by
|
||||
app.workflow_id = None # Will be set when workflow is created
|
||||
|
||||
from extensions.ext_database import db
|
||||
|
||||
@@ -126,19 +126,20 @@ class TestWorkflowService:
|
||||
Workflow: Created test workflow instance
|
||||
"""
|
||||
fake = fake or Faker()
|
||||
workflow = Workflow()
|
||||
workflow.id = fake.uuid4()
|
||||
workflow.tenant_id = app.tenant_id
|
||||
workflow.app_id = app.id
|
||||
workflow.type = WorkflowType.WORKFLOW.value
|
||||
workflow.version = Workflow.VERSION_DRAFT
|
||||
workflow.graph = json.dumps({"nodes": [], "edges": []})
|
||||
workflow.features = json.dumps({"features": []})
|
||||
# unique_hash is a computed property based on graph and features
|
||||
workflow.created_by = account.id
|
||||
workflow.updated_by = account.id
|
||||
workflow.environment_variables = []
|
||||
workflow.conversation_variables = []
|
||||
workflow = Workflow(
|
||||
id=fake.uuid4(),
|
||||
tenant_id=app.tenant_id,
|
||||
app_id=app.id,
|
||||
type=WorkflowType.WORKFLOW.value,
|
||||
version=Workflow.VERSION_DRAFT,
|
||||
graph=json.dumps({"nodes": [], "edges": []}),
|
||||
features=json.dumps({"features": []}),
|
||||
# unique_hash is a computed property based on graph and features
|
||||
created_by=account.id,
|
||||
updated_by=account.id,
|
||||
environment_variables=[],
|
||||
conversation_variables=[],
|
||||
)
|
||||
|
||||
from extensions.ext_database import db
|
||||
|
||||
|
||||
Reference in New Issue
Block a user