def test_open_group_asdict_with_links_svc(self, factories, links_svc): group = factories.OpenGroup(name='My Group', pubid='mygroup') presenter = GroupJSONPresenter(group, links_svc=links_svc) presenter.asdict() links_svc.get_all.assert_called_once_with(group)
def test_it_contains_deprecated_url_if_html_link_present( self, factories, GroupResource_, links_svc): # noqa: N803 links_svc.get_all.return_value = {'html': 'foobar'} group = factories.Group() group_resource = GroupResource_(group) presenter = GroupJSONPresenter(group_resource) assert presenter.asdict()['url'] == 'foobar'
def test_it_does_not_contain_deprecated_url(self, factories, GroupContext, links_svc): links_svc.get_all.return_value = {'html': 'foobar'} group = factories.Group() group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert 'url' not in presenter.asdict()
def test_it_does_not_contain_deprecated_url( self, factories, GroupContext, links_svc ): links_svc.get_all.return_value = {"html": "foobar"} group = factories.Group() group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert "url" not in presenter.asdict()
def test_it_does_not_expand_by_default(self, factories, GroupContext): # noqa: N803 group = factories.OpenGroup(name='My Group', pubid='mygroup') group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict() assert model['organization'] == group_context.organization.id
def test_private_group_asdict_with_links_svc(self, factories, links_svc): group = factories.Group(name='My Group', pubid='mygroup') presenter = GroupJSONPresenter(group, links_svc=links_svc) links_svc.get_all.return_value = {'foo': 'bar'} model = presenter.asdict() links_svc.get_all.assert_called_once_with(group) assert model['urls'] == links_svc.get_all.return_value
def test_it_ignores_unrecognized_expands(self, factories, GroupContext): # noqa: N803 group = factories.OpenGroup(name='My Group', pubid='mygroup') group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=['foobars', 'dingdong']) assert model['organization'] == group_context.organization.id
def test_expanded_scopes_uri_patterns_empty_if_no_scopes( self, factories, GroupContext): group = factories.OpenGroup() group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["scopes"]) assert model["scopes"]["uri_patterns"] == []
def test_open_group_asdict_with_urls(self, factories): group = factories.OpenGroup(name='My Group', pubid='mygroup') route_url = mock.Mock(return_value='/group/a') presenter = GroupJSONPresenter(group, route_url=route_url) model = presenter.asdict() assert model['urls']['group'] == '/group/a' assert model['url'] == '/group/a'
def test_it_ignores_unrecognized_expands(self, factories, GroupContext): group = factories.OpenGroup( name="My Group", pubid="mygroup", organization=factories.Organization() ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["foobars", "dingdong"]) assert model["organization"] == group_context.organization.id
def test_expanded_scopes_enforced_false_if_no_scopes(self, factories, GroupContext): group = factories.OpenGroup(enforce_scope=True) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["scopes"]) # Even though the model is configured to enforce scope, de facto # it can't if there are no scopes assert model["scopes"]["enforced"] is False
def test_expanded_scopes_uri_patterns_empty_if_no_scopes( self, factories, GroupContext ): group = factories.OpenGroup() group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["scopes"]) assert model["scopes"]["uri_patterns"] == []
def test_it_does_not_expand_by_default(self, factories, GroupContext): group = factories.OpenGroup(name="My Group", pubid="mygroup", organization=factories.Organization()) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict() assert model["organization"] == group_context.organization.id
def test_it_sets_organization_None_if_group_has_no_organization( self, factories, GroupContext): group = factories.OpenGroup(name='My Group', pubid='mygroup') group.organization = None group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict() assert model['organization'] is None
def test_it_expands_organizations(self, factories, GroupContext, OrganizationJSONPresenter): # noqa: N803 group = factories.OpenGroup(name='My Group', pubid='mygroup') group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=['organization']) assert model['organization'] == OrganizationJSONPresenter( group_context.organization).asdict.return_value
def test_it(self, factories, pyramid_request, GroupJSONPresenter): group = factories.Group() presenter = GroupsJSONPresenter(groups=[group], request=pyramid_request) result = presenter.asdicts(expand=sentinel.expand) GroupJSONPresenter.assert_called_once_with(group, pyramid_request) GroupJSONPresenter.return_value.asdict.assert_called_once_with( expand=sentinel.expand) assert result == [GroupJSONPresenter.return_value.asdict.return_value]
def test_expanded_organizations_None_if_missing( self, factories, GroupContext, OrganizationJSONPresenter ): group = factories.OpenGroup(name="My Group", pubid="mygroup") group.organization = None group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["organization"]) assert model["organization"] is None
def test_it_does_not_expand_by_default(self, factories, GroupContext): group = factories.OpenGroup( name="My Group", pubid="mygroup", organization=factories.Organization() ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict() assert model["organization"] == group_context.organization.id assert "scopes" not in model
def test_it_sets_organization_None_if_group_has_no_organization( self, factories, GroupContext ): group = factories.OpenGroup(name="My Group", pubid="mygroup") group.organization = None group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict() assert model["organization"] is None
def test_it_expands_organizations(self, factories, GroupContext, OrganizationJSONPresenter): group = factories.OpenGroup(name="My Group", pubid="mygroup", organization=factories.Organization()) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["organization"]) assert (model["organization"] == OrganizationJSONPresenter( group_context.organization).asdict.return_value)
def test_private_group_asdict_no_links_svc(self, factories): group = factories.Group(name='My Group', pubid='mygroup') presenter = GroupJSONPresenter(group) assert presenter.asdict() == { 'name': 'My Group', 'id': 'mygroup', 'type': 'private', 'public': False, 'scoped': False, 'urls': {} }
def test_open_group_asdict_no_urls(self, factories): group = factories.OpenGroup(name='My Group', pubid='mygroup') presenter = GroupJSONPresenter(group) assert presenter.asdict() == { 'name': 'My Group', 'id': 'mygroup', 'type': 'open', 'public': True, 'scoped': False, 'urls': {} }
def test_it_expands_organizations( self, factories, GroupContext, OrganizationJSONPresenter ): group = factories.OpenGroup( name="My Group", pubid="mygroup", organization=factories.Organization() ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["organization"]) assert ( model["organization"] == OrganizationJSONPresenter(group_context.organization).asdict.return_value )
def test_open_group_asdict(self, factories, GroupContext, links_svc): # noqa: N803 group = factories.OpenGroup(name='My Group', pubid='mygroup') group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert presenter.asdict() == { 'name': 'My Group', 'id': group_context.id, 'organization': group_context.organization.id, 'type': 'open', 'public': True, 'scoped': False, 'links': links_svc.get_all.return_value, }
def test_private_group_asdict(self, factories, GroupContext, links_svc): group = factories.Group(name='My Group', pubid='mygroup', organization=factories.Organization()) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert presenter.asdict() == { 'name': 'My Group', 'id': 'mygroup', 'organization': group_context.organization.id, 'type': 'private', 'public': False, 'scoped': False, 'links': links_svc.get_all.return_value, }
def test_private_group_asdict(self, factories, GroupResource_, links_svc): # noqa: N803 group = factories.Group(name='My Group', pubid='mygroup') group_resource = GroupResource_(group) presenter = GroupJSONPresenter(group_resource) assert presenter.asdict() == { 'name': 'My Group', 'id': 'mygroup', 'organization': group_resource.organization.id, 'type': 'private', 'public': False, 'scoped': False, 'urls': links_svc.get_all.return_value, 'links': links_svc.get_all.return_value, }
def test_open_scoped_group_asdict(self, factories): group = factories.OpenGroup( name='My Group', pubid='groupy', scopes=[factories.GroupScope(origin='http://foo.com')]) presenter = GroupJSONPresenter(group) assert presenter.asdict() == { 'name': 'My Group', 'id': 'groupy', 'type': 'open', 'public': True, 'scoped': True, 'urls': {} }
def test_open_group_asdict(self, factories, GroupContext, links_svc): group = factories.OpenGroup( name="My Group", pubid="mygroup", organization=factories.Organization() ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert presenter.asdict() == { "name": "My Group", "id": group_context.id, "groupid": None, "organization": group_context.organization.id, "type": "open", "public": True, "scoped": False, "links": links_svc.get_all.return_value, }
def test_it_expands_scopes(self, factories, GroupContext): group = factories.OpenGroup( enforce_scope=False, scopes=[ factories.GroupScope(origin="http://foo.com"), factories.GroupScope(origin="https://foo.com"), ], ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["scopes"]) assert "scopes" in model assert model["scopes"]["enforced"] is False assert set(model["scopes"]["uri_patterns"]) == set( ["http://foo.com*", "https://foo.com*"])
def test_it_expands_scopes(self, factories, GroupContext): group = factories.OpenGroup( enforce_scope=False, scopes=[ factories.GroupScope(scope="http://foo.com/bar"), factories.GroupScope(scope="https://foo.com/baz"), ], ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) model = presenter.asdict(expand=["scopes"]) assert "scopes" in model assert model["scopes"]["enforced"] is False assert set(model["scopes"]["uri_patterns"]) == set( ["http://foo.com/bar*", "https://foo.com/baz*"] )
def test_open_scoped_group_asdict(self, factories, GroupContext, links_svc): # noqa: N803 group = factories.OpenGroup( name='My Group', pubid='groupy', scopes=[factories.GroupScope(origin='http://foo.com')]) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert presenter.asdict() == { 'name': 'My Group', 'id': 'groupy', 'type': 'open', 'organization': group_context.organization.id, 'public': True, 'scoped': True, 'links': links_svc.get_all.return_value, }
def test_open_scoped_group_asdict(self, factories, GroupContext, links_svc): group = factories.OpenGroup( name="My Group", pubid="groupy", scopes=[factories.GroupScope(scope="http://foo.com")], organization=factories.Organization(), ) group_context = GroupContext(group) presenter = GroupJSONPresenter(group_context) assert presenter.asdict() == { "name": "My Group", "id": "groupy", "groupid": None, "type": "open", "organization": group_context.organization.id, "public": True, "scoped": True, "links": links_svc.get_all.return_value, }
def test_it(self, factories, pyramid_request, group_links_service): group = factories.Group( name="My Group", pubid="mygroup", authority_provided_id="abc123", organization=factories.Organization(), ) results = GroupJSONPresenter(group, pyramid_request).asdict() assert results == Any.dict.containing( { "name": "My Group", "id": "mygroup", "groupid": "group:[email protected]", "organization": group.organization.pubid, "links": group_links_service.get_all.return_value, "scoped": False, } )
def test_it_returns_groupid_if_set(self, factories, GroupContext, links_svc): group = factories.Group(authority_provided_id="abc123") presenter = GroupJSONPresenter(GroupContext(group)) assert presenter.asdict()["groupid"] == "group:[email protected]"
def present(group, expand=None): presenter = GroupJSONPresenter(group, pyramid_request) return presenter.asdict(expand=expand)