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
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
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"})
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)
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)
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)
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"} )
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)
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"])
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 })
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"] )
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)
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)
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} )
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
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
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
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
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)
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