Make sure the WorkspaceRoleFactory is only flushing to the DB
This commit is contained in:
parent
3b2594283f
commit
67a6fe4556
@ -101,9 +101,8 @@ class WorkspaceRoles(object):
|
||||
return new_workspace_role
|
||||
|
||||
@classmethod
|
||||
def update_role(cls, member, role_name):
|
||||
def update_role(cls, workspace_role, role_name):
|
||||
new_role = Roles.get(role_name)
|
||||
workspace_role = WorkspaceRoles._get_workspace_role(member.user, member.workspace_id)
|
||||
workspace_role.role = new_role
|
||||
|
||||
db.session.add(workspace_role)
|
||||
@ -153,10 +152,7 @@ class WorkspaceRoles(object):
|
||||
|
||||
@classmethod
|
||||
def enable(cls, workspace_role):
|
||||
ws_role = WorkspaceRoles._get_workspace_role(
|
||||
workspace_role.user, workspace_role.workspace_id
|
||||
)
|
||||
ws_role.status = WorkspaceRoleStatus.ACTIVE
|
||||
workspace_role.status = WorkspaceRoleStatus.ACTIVE
|
||||
|
||||
db.session.add(ws_role)
|
||||
db.session.add(workspace_role)
|
||||
db.session.commit()
|
||||
|
@ -38,6 +38,7 @@ def test_has_role_history(session):
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
role = session.query(Role).filter(Role.name == 'developer').one()
|
||||
WorkspaceRoleFactory._meta.sqlalchemy_session_persistence = 'flush'
|
||||
workspace_role = WorkspaceRoleFactory.create(workspace=workspace, user=user, role=role)
|
||||
WorkspaceRoles.update_role(workspace_role, "admin")
|
||||
changed_events = (
|
||||
@ -53,18 +54,21 @@ def test_has_role_history(session):
|
||||
assert changed_events[0].changed_state["role"][1] == "admin"
|
||||
|
||||
|
||||
|
||||
def test_has_status_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
# in order to get the history, we don't want the WorkspaceRoleFactory to commit
|
||||
WorkspaceRoleFactory._meta.sqlalchemy_session_persistence = 'flush'
|
||||
workspace_role = WorkspaceRoleFactory.create(workspace=workspace, user=user)
|
||||
WorkspaceRoles.enable(workspace_role)
|
||||
changed_events = (
|
||||
session.query(AuditEvent)
|
||||
.filter(
|
||||
AuditEvent.resource_id == workspace_role.id,
|
||||
AuditEvent.changed_state != None,
|
||||
AuditEvent.action == 'update',
|
||||
)
|
||||
.all()
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user