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