Merge branch 'master' into refactor-workspaces-rescue
This commit is contained in:
@@ -22,7 +22,7 @@ def test_create_invitation():
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||
invite = Invitations.create(workspace.owner, ws_role)
|
||||
invite = Invitations.create(workspace.owner, ws_role, user.email)
|
||||
assert invite.user == user
|
||||
assert invite.workspace_role == ws_role
|
||||
assert invite.inviter == workspace.owner
|
||||
@@ -34,7 +34,7 @@ def test_accept_invitation():
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||
invite = Invitations.create(workspace.owner, ws_role)
|
||||
invite = Invitations.create(workspace.owner, ws_role, user.email)
|
||||
assert invite.is_pending
|
||||
accepted_invite = Invitations.accept(user, invite.token)
|
||||
assert accepted_invite.is_accepted
|
||||
@@ -89,7 +89,7 @@ def test_accept_invitation_twice():
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||
invite = Invitations.create(workspace.owner, ws_role)
|
||||
invite = Invitations.create(workspace.owner, ws_role, user.email)
|
||||
Invitations.accept(user, invite.token)
|
||||
with pytest.raises(InvitationError):
|
||||
Invitations.accept(user, invite.token)
|
||||
@@ -99,7 +99,7 @@ def test_revoke_invitation():
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||
invite = Invitations.create(workspace.owner, ws_role)
|
||||
invite = Invitations.create(workspace.owner, ws_role, user.email)
|
||||
assert invite.is_pending
|
||||
Invitations.revoke(invite.token)
|
||||
assert invite.is_revoked
|
||||
@@ -109,7 +109,7 @@ def test_resend_invitation():
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace)
|
||||
invite = Invitations.create(workspace.owner, ws_role)
|
||||
invite = Invitations.create(workspace.owner, ws_role, user.email)
|
||||
Invitations.resend(workspace.owner, workspace.id, invite.token)
|
||||
assert ws_role.invitations[0].is_revoked
|
||||
assert ws_role.invitations[1].is_pending
|
||||
|
@@ -134,7 +134,8 @@ def test_update_workspace_role_role(workspace, workspace_owner):
|
||||
"workspace_role": "developer",
|
||||
"dod_id": "1234567890",
|
||||
}
|
||||
member = Workspaces.create_member(workspace_owner, workspace, user_data)
|
||||
WorkspaceRoleFactory._meta.sqlalchemy_session_persistence = "flush"
|
||||
member = WorkspaceRoleFactory.create(workspace=workspace)
|
||||
role_name = "admin"
|
||||
|
||||
updated_member = Workspaces.update_member(
|
||||
|
@@ -342,5 +342,6 @@ class InvitationFactory(Base):
|
||||
class Meta:
|
||||
model = Invitation
|
||||
|
||||
email = factory.Faker("email")
|
||||
status = InvitationStatus.PENDING
|
||||
expiration_time = Invitations.current_expiration_time()
|
||||
|
@@ -13,10 +13,13 @@ from tests.factories import (
|
||||
UserFactory,
|
||||
InvitationFactory,
|
||||
WorkspaceRoleFactory,
|
||||
EnvironmentFactory,
|
||||
EnvironmentRoleFactory,
|
||||
ProjectFactory,
|
||||
)
|
||||
|
||||
|
||||
def test_has_no_history(session):
|
||||
def test_has_no_ws_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@@ -33,7 +36,7 @@ def test_has_no_history(session):
|
||||
assert not create_event.changed_state
|
||||
|
||||
|
||||
def test_has_role_history(session):
|
||||
def test_has_ws_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@@ -58,7 +61,7 @@ def test_has_role_history(session):
|
||||
assert changed_events[0].changed_state["role"][1] == "admin"
|
||||
|
||||
|
||||
def test_has_status_history(session):
|
||||
def test_has_ws_status_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
||||
@@ -81,6 +84,49 @@ def test_has_status_history(session):
|
||||
assert changed_events[0].changed_state["status"][1] == "active"
|
||||
|
||||
|
||||
def test_has_no_env_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
project = ProjectFactory.create(workspace=workspace)
|
||||
environment = EnvironmentFactory.create(project=project, name="new environment!")
|
||||
|
||||
env_role = EnvironmentRoleFactory.create(
|
||||
user=user, environment=environment, role="developer"
|
||||
)
|
||||
create_event = (
|
||||
session.query(AuditEvent)
|
||||
.filter(AuditEvent.resource_id == env_role.id, AuditEvent.action == "create")
|
||||
.one()
|
||||
)
|
||||
|
||||
assert not create_event.changed_state
|
||||
|
||||
|
||||
def test_has_env_role_history(session):
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoleFactory.create(workspace=workspace, user=user)
|
||||
project = ProjectFactory.create(workspace=workspace)
|
||||
environment = EnvironmentFactory.create(project=project, name="new environment!")
|
||||
|
||||
env_role = EnvironmentRoleFactory.create(
|
||||
user=user, environment=environment, role="developer"
|
||||
)
|
||||
Environments.update_environment_roles(
|
||||
owner, workspace, workspace_role, [{"role": "admin", "id": environment.id}]
|
||||
)
|
||||
changed_events = (
|
||||
session.query(AuditEvent)
|
||||
.filter(AuditEvent.resource_id == env_role.id, AuditEvent.action == "update")
|
||||
.all()
|
||||
)
|
||||
# changed_state["role"] returns a list [previous role, current role]
|
||||
assert changed_events[0].changed_state["role"][0] == "developer"
|
||||
assert changed_events[0].changed_state["role"][1] == "admin"
|
||||
|
||||
|
||||
def test_event_details():
|
||||
owner = UserFactory.create()
|
||||
user = UserFactory.create()
|
||||
|
@@ -178,3 +178,31 @@ def test_resend_invitation_sends_email(client, user_session, queue):
|
||||
)
|
||||
|
||||
assert len(queue.get_queue()) == 1
|
||||
|
||||
def test_existing_member_invite_resent_to_email_submitted_in_form(
|
||||
client, user_session, queue
|
||||
):
|
||||
workspace = WorkspaceFactory.create()
|
||||
user = UserFactory.create()
|
||||
ws_role = WorkspaceRoleFactory.create(
|
||||
user=user, workspace=workspace, status=WorkspaceRoleStatus.PENDING
|
||||
)
|
||||
invite = InvitationFactory.create(
|
||||
user_id=user.id,
|
||||
workspace_role_id=ws_role.id,
|
||||
status=InvitationStatus.PENDING,
|
||||
email="example@example.com",
|
||||
)
|
||||
user_session(workspace.owner)
|
||||
client.post(
|
||||
url_for(
|
||||
"workspaces.resend_invitation",
|
||||
workspace_id=workspace.id,
|
||||
token=invite.token,
|
||||
)
|
||||
)
|
||||
|
||||
send_mail_job = queue.get_queue().jobs[0]
|
||||
assert user.email != "example@example.com"
|
||||
assert send_mail_job.func.__func__.__name__ == "_send_mail"
|
||||
assert send_mail_job.args[0] == ["example@example.com"]
|
||||
|
Reference in New Issue
Block a user