mirror of
https://github.com/langgenius/dify.git
synced 2026-05-03 08:58:09 +08:00
Merge remote-tracking branch 'origin/main' into feat/trigger
This commit is contained in:
@ -25,9 +25,7 @@ class TestAnnotationService:
|
||||
patch("services.annotation_service.enable_annotation_reply_task") as mock_enable_task,
|
||||
patch("services.annotation_service.disable_annotation_reply_task") as mock_disable_task,
|
||||
patch("services.annotation_service.batch_import_annotations_task") as mock_batch_import_task,
|
||||
patch(
|
||||
"services.annotation_service.current_user", create_autospec(Account, instance=True)
|
||||
) as mock_current_user,
|
||||
patch("services.annotation_service.current_account_with_tenant") as mock_current_account_with_tenant,
|
||||
):
|
||||
# Setup default mock returns
|
||||
mock_account_feature_service.get_features.return_value.billing.enabled = False
|
||||
@ -38,6 +36,9 @@ class TestAnnotationService:
|
||||
mock_disable_task.delay.return_value = None
|
||||
mock_batch_import_task.delay.return_value = None
|
||||
|
||||
# Create mock user that will be returned by current_account_with_tenant
|
||||
mock_user = create_autospec(Account, instance=True)
|
||||
|
||||
yield {
|
||||
"account_feature_service": mock_account_feature_service,
|
||||
"feature_service": mock_feature_service,
|
||||
@ -47,7 +48,8 @@ class TestAnnotationService:
|
||||
"enable_task": mock_enable_task,
|
||||
"disable_task": mock_disable_task,
|
||||
"batch_import_task": mock_batch_import_task,
|
||||
"current_user": mock_current_user,
|
||||
"current_account_with_tenant": mock_current_account_with_tenant,
|
||||
"current_user": mock_user,
|
||||
}
|
||||
|
||||
def _create_test_app_and_account(self, db_session_with_containers, mock_external_service_dependencies):
|
||||
@ -107,6 +109,11 @@ class TestAnnotationService:
|
||||
"""
|
||||
mock_external_service_dependencies["current_user"].id = account_id
|
||||
mock_external_service_dependencies["current_user"].current_tenant_id = tenant_id
|
||||
# Configure current_account_with_tenant to return (user, tenant_id)
|
||||
mock_external_service_dependencies["current_account_with_tenant"].return_value = (
|
||||
mock_external_service_dependencies["current_user"],
|
||||
tenant_id,
|
||||
)
|
||||
|
||||
def _create_test_conversation(self, app, account, fake):
|
||||
"""
|
||||
|
||||
@ -789,6 +789,31 @@ class TestWorkflowAppService:
|
||||
assert result_account_filter["total"] == 3
|
||||
assert all(log.created_by_role == CreatorUserRole.ACCOUNT for log in result_account_filter["data"])
|
||||
|
||||
# Test filtering by changed account email
|
||||
original_email = account.email
|
||||
new_email = "changed@example.com"
|
||||
account.email = new_email
|
||||
db_session_with_containers.commit()
|
||||
|
||||
assert account.email == new_email
|
||||
|
||||
# Results for new email, is expected to be the same as the original email
|
||||
result_with_new_email = service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers, app_model=app, created_by_account=new_email, page=1, limit=20
|
||||
)
|
||||
assert result_with_new_email["total"] == 3
|
||||
assert all(log.created_by_role == CreatorUserRole.ACCOUNT for log in result_with_new_email["data"])
|
||||
|
||||
# Old email unbound, is unexpected input, should raise ValueError
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers, app_model=app, created_by_account=original_email, page=1, limit=20
|
||||
)
|
||||
assert "Account not found" in str(exc_info.value)
|
||||
|
||||
account.email = original_email
|
||||
db_session_with_containers.commit()
|
||||
|
||||
# Test filtering by non-existent session ID
|
||||
result_no_session = service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers,
|
||||
@ -799,15 +824,16 @@ class TestWorkflowAppService:
|
||||
)
|
||||
assert result_no_session["total"] == 0
|
||||
|
||||
# Test filtering by non-existent account email
|
||||
result_no_account = service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers,
|
||||
app_model=app,
|
||||
created_by_account="nonexistent@example.com",
|
||||
page=1,
|
||||
limit=20,
|
||||
)
|
||||
assert result_no_account["total"] == 0
|
||||
# Test filtering by non-existent account email, is unexpected input, should raise ValueError
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers,
|
||||
app_model=app,
|
||||
created_by_account="nonexistent@example.com",
|
||||
page=1,
|
||||
limit=20,
|
||||
)
|
||||
assert "Account not found" in str(exc_info.value)
|
||||
|
||||
def test_get_paginate_workflow_app_logs_with_uuid_keyword_search(
|
||||
self, db_session_with_containers, mock_external_service_dependencies
|
||||
@ -1057,15 +1083,15 @@ class TestWorkflowAppService:
|
||||
assert len(result_no_session["data"]) == 0
|
||||
|
||||
# Test with account email that doesn't exist
|
||||
result_no_account = service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers,
|
||||
app_model=app,
|
||||
created_by_account="nonexistent@example.com",
|
||||
page=1,
|
||||
limit=20,
|
||||
)
|
||||
assert result_no_account["total"] == 0
|
||||
assert len(result_no_account["data"]) == 0
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
service.get_paginate_workflow_app_logs(
|
||||
session=db_session_with_containers,
|
||||
app_model=app,
|
||||
created_by_account="nonexistent@example.com",
|
||||
page=1,
|
||||
limit=20,
|
||||
)
|
||||
assert "Account not found" in str(exc_info.value)
|
||||
|
||||
def test_get_paginate_workflow_app_logs_with_complex_query_combinations(
|
||||
self, db_session_with_containers, mock_external_service_dependencies
|
||||
|
||||
Reference in New Issue
Block a user