You can only resend an invite for a pending invite
This commit is contained in:
parent
a9199bc28d
commit
679ec187a5
@ -14,6 +14,7 @@ from atst.forms.dd_254 import DD254Form
|
|||||||
from atst.forms.ko_review import KOReviewForm
|
from atst.forms.ko_review import KOReviewForm
|
||||||
from atst.forms.officers import EditTaskOrderOfficersForm
|
from atst.forms.officers import EditTaskOrderOfficersForm
|
||||||
from atst.models.task_order import Status as TaskOrderStatus
|
from atst.models.task_order import Status as TaskOrderStatus
|
||||||
|
from atst.models.invitation import Status as InvitationStatus
|
||||||
from atst.utils.flash import formatted_flash as flash
|
from atst.utils.flash import formatted_flash as flash
|
||||||
from atst.services.invitation import (
|
from atst.services.invitation import (
|
||||||
update_officer_invitations,
|
update_officer_invitations,
|
||||||
@ -130,7 +131,7 @@ def resend_invite(portfolio_id, task_order_id, form=None):
|
|||||||
|
|
||||||
invitation = Invitations.lookup_by_portfolio_and_user(portfolio, officer)
|
invitation = Invitations.lookup_by_portfolio_and_user(portfolio, officer)
|
||||||
|
|
||||||
if not invitation:
|
if not invitation or (invitation.status is not InvitationStatus.PENDING):
|
||||||
raise NotFoundError("invitation")
|
raise NotFoundError("invitation")
|
||||||
|
|
||||||
Invitations.resend(g.current_user, portfolio.id, invitation.token)
|
Invitations.resend(g.current_user, portfolio.id, invitation.token)
|
||||||
|
@ -644,3 +644,40 @@ def test_resend_invite_when_ko(app, client, user_session, portfolio, user):
|
|||||||
== response.headers["Location"]
|
== response.headers["Location"]
|
||||||
)
|
)
|
||||||
assert len(queue.get_queue()) == queue_length + 1
|
assert len(queue.get_queue()) == queue_length + 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_resend_invite_when_not_pending(app, client, user_session, portfolio, user):
|
||||||
|
queue_length = len(queue.get_queue())
|
||||||
|
|
||||||
|
task_order = TaskOrderFactory.create(
|
||||||
|
portfolio=portfolio, contracting_officer=user, ko_invite=True
|
||||||
|
)
|
||||||
|
|
||||||
|
portfolio_role = PortfolioRoleFactory.create(
|
||||||
|
role=Roles.get("owner"),
|
||||||
|
portfolio=portfolio,
|
||||||
|
user=user,
|
||||||
|
status=PortfolioStatus.ACTIVE,
|
||||||
|
)
|
||||||
|
|
||||||
|
original_invitation = Invitations.create(
|
||||||
|
inviter=user, portfolio_role=portfolio_role, email=user.email
|
||||||
|
)
|
||||||
|
|
||||||
|
Invitations.accept(user=user, token=original_invitation.token)
|
||||||
|
|
||||||
|
user_session(user)
|
||||||
|
|
||||||
|
response = client.post(
|
||||||
|
url_for(
|
||||||
|
"portfolios.resend_invite",
|
||||||
|
portfolio_id=portfolio.id,
|
||||||
|
task_order_id=task_order.id,
|
||||||
|
_external=True,
|
||||||
|
),
|
||||||
|
data={"invite_type": "ko_invite"},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert original_invitation.status == InvitationStatus.ACCEPTED
|
||||||
|
assert response.status_code == 404
|
||||||
|
assert len(queue.get_queue()) == queue_length
|
||||||
|
Loading…
x
Reference in New Issue
Block a user