def test_uploader_identity_ensure_member_role_can_be_changed_no_member( uploader_identity: UploaderIdentity, new_role: str) -> None: assert uploader_identity.can_member_role_be_changed(None, new_role) is False with pytest.raises(ValidationError) as e: uploader_identity.ensure_member_role_can_be_changed(None, new_role) assert "Invalid member" in str(e.value)
def test_uploader_identity_ensure_member_role_can_be_changed_invalid_role( uploader_identity: UploaderIdentity, role: Optional[str]) -> None: member = UploaderIdentityMemberFactory( identity=uploader_identity, role=UploaderIdentityMemberRole.member) assert uploader_identity.can_member_role_be_changed(member, role) is False with pytest.raises(ValidationError) as e: uploader_identity.ensure_member_role_can_be_changed(member, role) assert "New role is invalid" in str(e.value)
def test_uploader_identity_ensure_member_role_can_be_changed_wrong_identity( uploader_identity: UploaderIdentity, new_role: str) -> None: member = UploaderIdentityMemberFactory( role=UploaderIdentityMemberRole.member) assert uploader_identity.can_member_role_be_changed(member, new_role) is False with pytest.raises(ValidationError) as e: uploader_identity.ensure_member_role_can_be_changed(member, new_role) assert "Member is not a part of this uploader identity" in str(e.value)
def test_uploader_identity_ensure_member_role_can_be_changed_last_owner( uploader_identity: UploaderIdentity, ) -> None: new_role = UploaderIdentityMemberRole.member member = UploaderIdentityMemberFactory( identity=uploader_identity, role=UploaderIdentityMemberRole.owner) assert uploader_identity.can_member_role_be_changed(member, new_role) is False with pytest.raises(ValidationError) as e: uploader_identity.ensure_member_role_can_be_changed(member, new_role) assert "Cannot remove last owner from team" in str(e.value)
def test_uploader_identity_ensure_member_role_can_be_changed( uploader_identity: UploaderIdentity, old_role: str, new_role: str) -> None: member = UploaderIdentityMemberFactory(identity=uploader_identity, role=old_role) is_last_owner = (old_role == UploaderIdentityMemberRole.owner and new_role == UploaderIdentityMemberRole.member) if is_last_owner: UploaderIdentityMemberFactory(identity=uploader_identity, role=UploaderIdentityMemberRole.owner) assert uploader_identity.can_member_role_be_changed(member, new_role) is True uploader_identity.ensure_member_role_can_be_changed(member, new_role)