Make sure the WorkspaceRoleFactory is only flushing to the DB

This commit is contained in:
Montana 2018-11-20 10:52:16 -05:00
parent 3b2594283f
commit 67a6fe4556
2 changed files with 8 additions and 8 deletions

View File

@ -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()

View File

@ -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()
)