mirror of
https://github.com/langgenius/dify.git
synced 2026-05-01 16:08:04 +08:00
refactor: select in console explore and workspace controllers (#33842)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -24,13 +24,8 @@ class TestBannerApi:
|
||||
banner.status = BannerStatus.ENABLED
|
||||
banner.created_at = datetime(2024, 1, 1)
|
||||
|
||||
query = MagicMock()
|
||||
query.where.return_value = query
|
||||
query.order_by.return_value = query
|
||||
query.all.return_value = [banner]
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value = query
|
||||
session.scalars.return_value.all.return_value = [banner]
|
||||
|
||||
with app.test_request_context("/?language=fr-FR"), patch.object(banner_module.db, "session", session):
|
||||
result = method(api)
|
||||
@ -58,16 +53,14 @@ class TestBannerApi:
|
||||
banner.status = BannerStatus.ENABLED
|
||||
banner.created_at = None
|
||||
|
||||
query = MagicMock()
|
||||
query.where.return_value = query
|
||||
query.order_by.return_value = query
|
||||
query.all.side_effect = [
|
||||
scalars_result = MagicMock()
|
||||
scalars_result.all.side_effect = [
|
||||
[],
|
||||
[banner],
|
||||
]
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value = query
|
||||
session.scalars.return_value = scalars_result
|
||||
|
||||
with app.test_request_context("/?language=es-ES"), patch.object(banner_module.db, "session", session):
|
||||
result = method(api)
|
||||
@ -87,13 +80,8 @@ class TestBannerApi:
|
||||
api = banner_module.BannerApi()
|
||||
method = unwrap(api.get)
|
||||
|
||||
query = MagicMock()
|
||||
query.where.return_value = query
|
||||
query.order_by.return_value = query
|
||||
query.all.return_value = []
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value = query
|
||||
session.scalars.return_value.all.return_value = []
|
||||
|
||||
with app.test_request_context("/"), patch.object(banner_module.db, "session", session):
|
||||
result = method(api)
|
||||
|
||||
@ -260,11 +260,10 @@ class TestInstalledAppsCreateApi:
|
||||
app_entity.tenant_id = "t2"
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value.where.return_value.first.side_effect = [
|
||||
recommended,
|
||||
app_entity,
|
||||
None,
|
||||
]
|
||||
# scalar() is called for recommended_app and installed_app lookups
|
||||
session.scalar.side_effect = [recommended, None]
|
||||
# get() is called for app PK lookup
|
||||
session.get.return_value = app_entity
|
||||
|
||||
with (
|
||||
app.test_request_context("/", json={"app_id": "a1"}),
|
||||
@ -282,7 +281,7 @@ class TestInstalledAppsCreateApi:
|
||||
method = unwrap(api.post)
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value.where.return_value.first.return_value = None
|
||||
session.scalar.return_value = None
|
||||
|
||||
with (
|
||||
app.test_request_context("/", json={"app_id": "a1"}),
|
||||
@ -300,10 +299,10 @@ class TestInstalledAppsCreateApi:
|
||||
app_entity = MagicMock(is_public=False)
|
||||
|
||||
session = MagicMock()
|
||||
session.query.return_value.where.return_value.first.side_effect = [
|
||||
recommended,
|
||||
app_entity,
|
||||
]
|
||||
# scalar() returns recommended_app
|
||||
session.scalar.return_value = recommended
|
||||
# get() returns the app entity
|
||||
session.get.return_value = app_entity
|
||||
|
||||
with (
|
||||
app.test_request_context("/", json={"app_id": "a1"}),
|
||||
|
||||
@ -958,8 +958,8 @@ class TestTrialSitApi:
|
||||
app_model = MagicMock()
|
||||
app_model.id = "a1"
|
||||
|
||||
with app.test_request_context("/"), patch.object(module.db.session, "query") as mock_query:
|
||||
mock_query.return_value.where.return_value.first.return_value = None
|
||||
with app.test_request_context("/"), patch.object(module.db.session, "scalar") as mock_scalar:
|
||||
mock_scalar.return_value = None
|
||||
with pytest.raises(Forbidden):
|
||||
method(api, app_model)
|
||||
|
||||
@ -973,8 +973,8 @@ class TestTrialSitApi:
|
||||
app_model.tenant = MagicMock()
|
||||
app_model.tenant.status = TenantStatus.ARCHIVE
|
||||
|
||||
with app.test_request_context("/"), patch.object(module.db.session, "query") as mock_query:
|
||||
mock_query.return_value.where.return_value.first.return_value = site
|
||||
with app.test_request_context("/"), patch.object(module.db.session, "scalar") as mock_scalar:
|
||||
mock_scalar.return_value = site
|
||||
with pytest.raises(Forbidden):
|
||||
method(api, app_model)
|
||||
|
||||
@ -990,10 +990,10 @@ class TestTrialSitApi:
|
||||
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch.object(module.db.session, "query") as mock_query,
|
||||
patch.object(module.db.session, "scalar") as mock_scalar,
|
||||
patch.object(module.SiteResponse, "model_validate") as mock_validate,
|
||||
):
|
||||
mock_query.return_value.where.return_value.first.return_value = site
|
||||
mock_scalar.return_value = site
|
||||
mock_validate_result = MagicMock()
|
||||
mock_validate_result.model_dump.return_value = {"name": "test", "icon": "icon"}
|
||||
mock_validate.return_value = mock_validate_result
|
||||
|
||||
@ -34,9 +34,9 @@ def test_installed_app_required_not_found():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(), "tenant-1"),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = None
|
||||
scalar_mock.return_value = None
|
||||
|
||||
with pytest.raises(NotFound):
|
||||
view("app-id")
|
||||
@ -54,11 +54,11 @@ def test_installed_app_required_app_deleted():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(), "tenant-1"),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
patch("controllers.console.explore.wraps.db.session.delete"),
|
||||
patch("controllers.console.explore.wraps.db.session.commit"),
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = installed_app
|
||||
scalar_mock.return_value = installed_app
|
||||
|
||||
with pytest.raises(NotFound):
|
||||
view("app-id")
|
||||
@ -76,9 +76,9 @@ def test_installed_app_required_success():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(), "tenant-1"),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = installed_app
|
||||
scalar_mock.return_value = installed_app
|
||||
|
||||
result = view("app-id")
|
||||
assert result == installed_app
|
||||
@ -149,9 +149,9 @@ def test_trial_app_required_not_allowed():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(id="user-1"), None),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = None
|
||||
scalar_mock.return_value = None
|
||||
|
||||
with pytest.raises(TrialAppNotAllowed):
|
||||
view("app-id")
|
||||
@ -170,9 +170,9 @@ def test_trial_app_required_limit_exceeded():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(id="user-1"), None),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.side_effect = [
|
||||
scalar_mock.side_effect = [
|
||||
trial_app,
|
||||
record,
|
||||
]
|
||||
@ -194,9 +194,9 @@ def test_trial_app_required_success():
|
||||
"controllers.console.explore.wraps.current_account_with_tenant",
|
||||
return_value=(MagicMock(id="user-1"), None),
|
||||
),
|
||||
patch("controllers.console.explore.wraps.db.session.query") as q,
|
||||
patch("controllers.console.explore.wraps.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.side_effect = [
|
||||
scalar_mock.side_effect = [
|
||||
trial_app,
|
||||
record,
|
||||
]
|
||||
|
||||
@ -55,9 +55,9 @@ class TestAccountInitApi:
|
||||
patch("controllers.console.workspace.account.current_account_with_tenant", return_value=(account, "t1")),
|
||||
patch("controllers.console.workspace.account.db.session.commit", return_value=None),
|
||||
patch("controllers.console.workspace.account.dify_config.EDITION", "CLOUD"),
|
||||
patch("controllers.console.workspace.account.db.session.query") as query_mock,
|
||||
patch("controllers.console.workspace.account.db.session.scalar") as scalar_mock,
|
||||
):
|
||||
query_mock.return_value.where.return_value.first.return_value = MagicMock(status="unused")
|
||||
scalar_mock.return_value = MagicMock(status="unused")
|
||||
resp = method(api)
|
||||
|
||||
assert resp["result"] == "success"
|
||||
|
||||
@ -207,10 +207,10 @@ class TestMemberCancelInviteApi:
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch("controllers.console.workspace.members.current_account_with_tenant", return_value=(user, "t1")),
|
||||
patch("controllers.console.workspace.members.db.session.query") as q,
|
||||
patch("controllers.console.workspace.members.db.session.get") as get_mock,
|
||||
patch("controllers.console.workspace.members.TenantService.remove_member_from_tenant"),
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = member
|
||||
get_mock.return_value = member
|
||||
result, status = method(api, member.id)
|
||||
|
||||
assert status == 200
|
||||
@ -226,9 +226,9 @@ class TestMemberCancelInviteApi:
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch("controllers.console.workspace.members.current_account_with_tenant", return_value=(user, "t1")),
|
||||
patch("controllers.console.workspace.members.db.session.query") as q,
|
||||
patch("controllers.console.workspace.members.db.session.get") as get_mock,
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = None
|
||||
get_mock.return_value = None
|
||||
|
||||
with pytest.raises(HTTPException):
|
||||
method(api, "x")
|
||||
@ -244,13 +244,13 @@ class TestMemberCancelInviteApi:
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch("controllers.console.workspace.members.current_account_with_tenant", return_value=(user, "t1")),
|
||||
patch("controllers.console.workspace.members.db.session.query") as q,
|
||||
patch("controllers.console.workspace.members.db.session.get") as get_mock,
|
||||
patch(
|
||||
"controllers.console.workspace.members.TenantService.remove_member_from_tenant",
|
||||
side_effect=services.errors.account.CannotOperateSelfError("x"),
|
||||
),
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = member
|
||||
get_mock.return_value = member
|
||||
result, status = method(api, member.id)
|
||||
|
||||
assert status == 400
|
||||
@ -266,13 +266,13 @@ class TestMemberCancelInviteApi:
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch("controllers.console.workspace.members.current_account_with_tenant", return_value=(user, "t1")),
|
||||
patch("controllers.console.workspace.members.db.session.query") as q,
|
||||
patch("controllers.console.workspace.members.db.session.get") as get_mock,
|
||||
patch(
|
||||
"controllers.console.workspace.members.TenantService.remove_member_from_tenant",
|
||||
side_effect=services.errors.account.NoPermissionError("x"),
|
||||
),
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = member
|
||||
get_mock.return_value = member
|
||||
result, status = method(api, member.id)
|
||||
|
||||
assert status == 403
|
||||
@ -288,13 +288,13 @@ class TestMemberCancelInviteApi:
|
||||
with (
|
||||
app.test_request_context("/"),
|
||||
patch("controllers.console.workspace.members.current_account_with_tenant", return_value=(user, "t1")),
|
||||
patch("controllers.console.workspace.members.db.session.query") as q,
|
||||
patch("controllers.console.workspace.members.db.session.get") as get_mock,
|
||||
patch(
|
||||
"controllers.console.workspace.members.TenantService.remove_member_from_tenant",
|
||||
side_effect=services.errors.account.MemberNotInTenantError(),
|
||||
),
|
||||
):
|
||||
q.return_value.where.return_value.first.return_value = member
|
||||
get_mock.return_value = member
|
||||
result, status = method(api, member.id)
|
||||
|
||||
assert status == 404
|
||||
|
||||
@ -449,12 +449,12 @@ class TestSwitchWorkspaceApi:
|
||||
"controllers.console.workspace.workspace.current_account_with_tenant", return_value=(MagicMock(), "t1")
|
||||
),
|
||||
patch("controllers.console.workspace.workspace.TenantService.switch_tenant"),
|
||||
patch("controllers.console.workspace.workspace.db.session.query") as query_mock,
|
||||
patch("controllers.console.workspace.workspace.db.session.get") as get_mock,
|
||||
patch(
|
||||
"controllers.console.workspace.workspace.WorkspaceService.get_tenant_info", return_value={"id": "t2"}
|
||||
),
|
||||
):
|
||||
query_mock.return_value.get.return_value = tenant
|
||||
get_mock.return_value = tenant
|
||||
result = method(api)
|
||||
|
||||
assert result["result"] == "success"
|
||||
@ -488,9 +488,9 @@ class TestSwitchWorkspaceApi:
|
||||
return_value=(MagicMock(), "t1"),
|
||||
),
|
||||
patch("controllers.console.workspace.workspace.TenantService.switch_tenant"),
|
||||
patch("controllers.console.workspace.workspace.db.session.query") as query_mock,
|
||||
patch("controllers.console.workspace.workspace.db.session.get") as get_mock,
|
||||
):
|
||||
query_mock.return_value.get.return_value = None
|
||||
get_mock.return_value = None
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
method(api)
|
||||
|
||||
Reference in New Issue
Block a user