Esempio n. 1
0
    def test_it_does_not_proxy_to_create_if_group_extant(
            self, pyramid_request, create, group, GroupUpsertContext):
        context = GroupUpsertContext(group, pyramid_request)

        views.upsert(context, pyramid_request)

        assert create.call_count == 0
Esempio n. 2
0
    def test_it_does_not_proxy_to_create_if_group_extant(
        self, pyramid_request, create, group, GroupUpsertContext
    ):
        context = GroupUpsertContext(group, pyramid_request)

        views.upsert(context, pyramid_request)

        assert create.call_count == 0
Esempio n. 3
0
    def test_it_validates_against_group_update_schema_if_group_extant(
            self, context, pyramid_request, CreateGroupAPISchema):
        pyramid_request.json_body = {"name": "Rename Group"}

        views.upsert(context, pyramid_request)

        CreateGroupAPISchema.return_value.validate.assert_called_once_with(
            {"name": "Rename Group"})
Esempio n. 4
0
    def test_it_does_not_raise_ConflictError_if_duplicate_is_same_group(
            self, pyramid_request, group_service, factories,
            GroupUpsertContext):
        group = factories.Group(authority_provided_id="something_else",
                                authority="example.com")
        context = GroupUpsertContext(group, pyramid_request)
        group_service.fetch.return_value = group

        views.upsert(context, pyramid_request)
Esempio n. 5
0
    def test_it_does_not_raise_HTTPConflict_if_duplicate_is_same_group(
        self, pyramid_request, group_service, factories, GroupUpsertContext
    ):
        group = factories.Group(
            authority_provided_id="something_else", authority="example.com"
        )
        context = GroupUpsertContext(group, pyramid_request)
        group_service.fetch.return_value = group

        views.upsert(context, pyramid_request)
Esempio n. 6
0
    def test_it_raises_HTTPConflict_on_duplicate(self, context,
                                                 pyramid_request,
                                                 group_service, factories):
        # Return a different pre-existing group when we search by id
        group_service.fetch.return_value = factories.Group(
            authority_provided_id="different_id",
            authority=context.group.authority)

        with pytest.raises(HTTPConflict,
                           match="group with groupid.*already exists"):
            views.upsert(context, pyramid_request)
Esempio n. 7
0
    def test_it_validates_against_group_update_schema_if_group_extant(
        self, pyramid_request, group, GroupUpsertContext, CreateGroupAPISchema
    ):
        context = GroupUpsertContext(group, pyramid_request)
        pyramid_request.json_body = {"name": "Rename Group"}

        views.upsert(context, pyramid_request)

        CreateGroupAPISchema.return_value.validate.assert_called_once_with(
            {"name": "Rename Group"}
        )
Esempio n. 8
0
    def test_it_creates_group_context_from_updated_group(
        self,
        pyramid_request,
        GroupContext,
        group_update_service,
        group,
        GroupUpsertContext,
    ):
        context = GroupUpsertContext(group, pyramid_request)
        group_update_service.update.return_value = group

        views.upsert(context, pyramid_request)

        GroupContext.assert_called_with(group, pyramid_request)
Esempio n. 9
0
    def test_it_creates_group_context_from_updated_group(
        self,
        pyramid_request,
        GroupContext,
        group_update_service,
        group,
        GroupUpsertContext,
    ):
        context = GroupUpsertContext(group, pyramid_request)
        group_update_service.update.return_value = group

        views.upsert(context, pyramid_request)

        GroupContext.assert_called_with(group, pyramid_request)
Esempio n. 10
0
    def test_it_returns_updated_group_formatted_with_presenter(
        self,
        pyramid_request,
        GroupContext,
        GroupJSONPresenter,
        group,
        GroupUpsertContext,
    ):
        context = GroupUpsertContext(group, pyramid_request)
        views.upsert(context, pyramid_request)

        GroupJSONPresenter.assert_called_once_with(GroupContext.return_value)
        GroupJSONPresenter.return_value.asdict.assert_called_once_with(
            expand=["organization"])
Esempio n. 11
0
    def test_it_proxies_to_update_service_with_injected_defaults(
            self, context, pyramid_request, group_update_service,
            CreateGroupAPISchema):
        CreateGroupAPISchema.return_value.validate.return_value = {
            "name": "Dingdong"
        }

        views.upsert(context, pyramid_request)

        group_update_service.update.assert_called_once_with(
            context.group, **{
                "name": "Dingdong",
                "description": "",
                "groupid": None
            })
Esempio n. 12
0
    def test_it_returns_updated_group_formatted_with_presenter(
        self,
        pyramid_request,
        GroupContext,
        GroupJSONPresenter,
        group,
        GroupUpsertContext,
    ):
        context = GroupUpsertContext(group, pyramid_request)
        views.upsert(context, pyramid_request)

        GroupJSONPresenter.assert_called_once_with(GroupContext.return_value)
        GroupJSONPresenter.return_value.asdict.assert_called_once_with(
            expand=["organization", "scopes"]
        )
Esempio n. 13
0
    def test_it_raises_ConflictError_on_duplicate(self, pyramid_request,
                                                  group_service, factories,
                                                  GroupUpsertContext):

        pre_existing_group = factories.Group(authority_provided_id="something",
                                             authority="example.com")
        group = factories.Group(authority_provided_id="something_else",
                                authority="example.com")

        context = GroupUpsertContext(group, pyramid_request)

        group_service.fetch.return_value = pre_existing_group

        with pytest.raises(ConflictError,
                           match="group with groupid.*already exists"):
            views.upsert(context, pyramid_request)
Esempio n. 14
0
    def test_it_raises_HTTPConflict_on_duplicate(
        self, pyramid_request, group_service, factories, GroupUpsertContext
    ):

        pre_existing_group = factories.Group(
            authority_provided_id="something", authority="example.com"
        )
        group = factories.Group(
            authority_provided_id="something_else", authority="example.com"
        )

        context = GroupUpsertContext(group, pyramid_request)

        group_service.fetch.return_value = pre_existing_group

        with pytest.raises(HTTPConflict, match="group with groupid.*already exists"):
            views.upsert(context, pyramid_request)
Esempio n. 15
0
    def test_it_proxies_to_update_service_with_injected_defaults(
        self,
        pyramid_request,
        group_update_service,
        CreateGroupAPISchema,
        GroupUpsertContext,
        group,
    ):
        context = GroupUpsertContext(group, pyramid_request)

        CreateGroupAPISchema.return_value.validate.return_value = {"name": "Dingdong"}

        views.upsert(context, pyramid_request)

        group_update_service.update.assert_called_once_with(
            group, **{"name": "Dingdong", "description": "", "groupid": None}
        )
Esempio n. 16
0
    def test_it_proxies_to_create_if_group_empty(self, pyramid_request, create,
                                                 GroupUpsertContext):
        context = GroupUpsertContext(None, pyramid_request)

        res = views.upsert(context, pyramid_request)

        create.assert_called_once_with(pyramid_request)
        assert res == create.return_value
Esempio n. 17
0
    def test_it_proxies_to_create_if_group_empty(
        self, pyramid_request, create, GroupUpsertContext
    ):
        context = GroupUpsertContext(None, pyramid_request)

        res = views.upsert(context, pyramid_request)

        create.assert_called_once_with(pyramid_request)
        assert res == create.return_value
Esempio n. 18
0
    def test_it_proxies_to_create_if_group_empty(self, context,
                                                 pyramid_request,
                                                 groups_create):
        context.group = None

        res = views.upsert(context, pyramid_request)

        groups_create.assert_called_once_with(pyramid_request)
        assert res == groups_create.return_value
Esempio n. 19
0
    def test_it_returns_updated_group_formatted_with_presenter(
            self, context, pyramid_request, group_update_service,
            GroupJSONPresenter):
        group_update_service.update.return_value = context.group

        result = views.upsert(context, pyramid_request)

        GroupJSONPresenter.assert_called_with(context.group, pyramid_request)
        GroupJSONPresenter.return_value.asdict.assert_called_once_with(
            expand=["organization", "scopes"])
        assert result == GroupJSONPresenter.return_value.asdict.return_value
Esempio n. 20
0
    def test_it_does_not_raise_HTTPConflict_if_duplicate_is_same_group(
            self, context, pyramid_request, group_service):
        group_service.fetch.return_value = context.group

        views.upsert(context, pyramid_request)
Esempio n. 21
0
    def test_it_does_not_proxy_to_create_if_group_extant(
            self, context, pyramid_request, groups_create):
        views.upsert(context, pyramid_request)

        assert groups_create.call_count == 0