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)
|
workspace = Workspace(request=request, name=name)
|
||||||
|
|
||||||
role = Roles.get("owner")
|
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)
|
||||||
db.session.add(workspace_role)
|
db.session.add(workspace_role)
|
||||||
|
@ -10,11 +10,14 @@ class WorkspaceRole(Base):
|
|||||||
__tablename__ = "workspace_role"
|
__tablename__ = "workspace_role"
|
||||||
|
|
||||||
id = Id()
|
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"))
|
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")
|
role = relationship("Role")
|
||||||
|
|
||||||
|
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), index=True)
|
||||||
|
|
||||||
|
|
||||||
Index(
|
Index(
|
||||||
"workspace_role_user_workspace",
|
"workspace_role_user_workspace",
|
||||||
|
@ -1,32 +1,30 @@
|
|||||||
from uuid import uuid4
|
|
||||||
|
|
||||||
from atst.domain.workspace_users import WorkspaceUsers
|
from atst.domain.workspace_users import WorkspaceUsers
|
||||||
from atst.domain.users import Users
|
from atst.domain.users import Users
|
||||||
|
from tests.factories import WorkspaceFactory
|
||||||
|
|
||||||
|
|
||||||
def test_can_create_new_workspace_user():
|
def test_can_create_new_workspace_user():
|
||||||
workspace_id = uuid4()
|
workspace = WorkspaceFactory.create()
|
||||||
user = Users.create("developer")
|
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 == new_user.id
|
||||||
|
|
||||||
assert workspace_users[0].user.id == user.id
|
|
||||||
assert workspace_users[0].user.atat_role.name == "developer"
|
assert workspace_users[0].user.atat_role.name == "developer"
|
||||||
assert workspace_users[0].workspace_role.role.name == "owner"
|
assert workspace_users[0].workspace_role.role.name == "owner"
|
||||||
|
|
||||||
|
|
||||||
def test_can_update_existing_workspace_user():
|
def test_can_update_existing_workspace_user():
|
||||||
workspace_id = uuid4()
|
workspace = WorkspaceFactory.create()
|
||||||
user = Users.create("developer")
|
new_user = Users.create("developer")
|
||||||
|
|
||||||
WorkspaceUsers.add_many(
|
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_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"
|
assert workspace_users[0].workspace_role.role.name == "developer"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user