Fix workspace_role workspace relationship
This commit is contained in:
parent
a438e409ba
commit
43263f35cc
@ -0,0 +1,28 @@
|
||||
"""add workspace_role workspace_id fk
|
||||
|
||||
Revision ID: f36f130622b9
|
||||
Revises: f064247f2988
|
||||
Create Date: 2018-08-20 10:36:23.920881
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'f36f130622b9'
|
||||
down_revision = 'f064247f2988'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.create_foreign_key('workspace_role_workspace_id_fk', 'workspace_role', 'workspaces', ['workspace_id'], ['id'])
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint('workspace_role_workspace_id_fk', 'workspace_role', type_='foreignkey')
|
||||
# ### end Alembic commands ###
|
@ -18,7 +18,7 @@ class Workspaces(object):
|
||||
workspace = Workspace(request=request, name=name)
|
||||
|
||||
role = Roles.get("owner")
|
||||
workspace_role = WorkspaceRole(user_id=request.creator.id, role=role, workspace_id=workspace.id)
|
||||
workspace_role = WorkspaceRole(user=request.creator, role=role, workspace=workspace)
|
||||
|
||||
db.session.add(workspace)
|
||||
db.session.add(workspace_role)
|
||||
|
@ -10,11 +10,14 @@ class WorkspaceRole(Base):
|
||||
__tablename__ = "workspace_role"
|
||||
|
||||
id = Id()
|
||||
workspace_id = Column(UUID(as_uuid=True), index=True)
|
||||
workspace_id = Column(UUID(as_uuid=True), ForeignKey("workspaces.id"), index=True)
|
||||
workspace = relationship("Workspace")
|
||||
|
||||
role_id = Column(UUID(as_uuid=True), ForeignKey("roles.id"))
|
||||
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True)
|
||||
role = relationship("Role")
|
||||
|
||||
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True)
|
||||
|
||||
|
||||
Index(
|
||||
"workspace_role_user_workspace",
|
||||
|
@ -1,32 +1,30 @@
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.workspace_users import WorkspaceUsers
|
||||
from atst.domain.users import Users
|
||||
from tests.factories import WorkspaceFactory
|
||||
|
||||
|
||||
def test_can_create_new_workspace_user():
|
||||
workspace_id = uuid4()
|
||||
user = Users.create("developer")
|
||||
workspace = WorkspaceFactory.create()
|
||||
new_user = Users.create("developer")
|
||||
|
||||
workspace_user_dicts = [{"id": user.id, "workspace_role": "owner"}]
|
||||
workspace_user_dicts = [{"id": new_user.id, "workspace_role": "owner"}]
|
||||
workspace_users = WorkspaceUsers.add_many(workspace.id, workspace_user_dicts)
|
||||
|
||||
workspace_users = WorkspaceUsers.add_many(workspace_id, workspace_user_dicts)
|
||||
|
||||
assert workspace_users[0].user.id == user.id
|
||||
assert workspace_users[0].user.id == new_user.id
|
||||
assert workspace_users[0].user.atat_role.name == "developer"
|
||||
assert workspace_users[0].workspace_role.role.name == "owner"
|
||||
|
||||
|
||||
def test_can_update_existing_workspace_user():
|
||||
workspace_id = uuid4()
|
||||
user = Users.create("developer")
|
||||
workspace = WorkspaceFactory.create()
|
||||
new_user = Users.create("developer")
|
||||
|
||||
WorkspaceUsers.add_many(
|
||||
workspace_id, [{"id": user.id, "workspace_role": "owner"}]
|
||||
workspace.id, [{"id": new_user.id, "workspace_role": "owner"}]
|
||||
)
|
||||
workspace_users = WorkspaceUsers.add_many(
|
||||
workspace_id, [{"id": user.id, "workspace_role": "developer"}]
|
||||
workspace.id, [{"id": new_user.id, "workspace_role": "developer"}]
|
||||
)
|
||||
|
||||
assert workspace_users[0].user.id == user.id
|
||||
assert workspace_users[0].user.id == new_user.id
|
||||
assert workspace_users[0].workspace_role.role.name == "developer"
|
||||
|
Loading…
x
Reference in New Issue
Block a user