Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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'
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
    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"] == []
Exemplo n.º 9
0
    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'
Exemplo n.º 10
0
    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
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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"] == []
Exemplo n.º 13
0
    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
Exemplo n.º 14
0
    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
Exemplo n.º 15
0
    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
Exemplo n.º 16
0
    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
Exemplo n.º 17
0
    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
Exemplo n.º 18
0
    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]
Exemplo n.º 19
0
    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
Exemplo n.º 20
0
    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
Exemplo n.º 21
0
    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
Exemplo n.º 22
0
    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
Exemplo n.º 23
0
    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)
Exemplo n.º 24
0
    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': {}
        }
Exemplo n.º 25
0
    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': {}
        }
Exemplo n.º 26
0
    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
        )
Exemplo n.º 27
0
    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,
        }
Exemplo n.º 28
0
    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,
        }
Exemplo n.º 29
0
    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,
        }
Exemplo n.º 30
0
    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': {}
        }
Exemplo n.º 31
0
    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,
        }
Exemplo n.º 32
0
    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,
        }
Exemplo n.º 33
0
    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*"])
Exemplo n.º 34
0
    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*"]
        )
Exemplo n.º 35
0
    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,
        }
Exemplo n.º 36
0
    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,
        }
Exemplo n.º 37
0
    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,
        }
Exemplo n.º 38
0
    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,
            }
        )
Exemplo n.º 39
0
    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]"
Exemplo n.º 40
0
 def present(group, expand=None):
     presenter = GroupJSONPresenter(group, pyramid_request)
     return presenter.asdict(expand=expand)
Exemplo n.º 41
0
    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]"