示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)