Beispiel #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)
Beispiel #2
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()
Beispiel #3
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'
Beispiel #4
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
Beispiel #5
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
Beispiel #6
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"] == []
Beispiel #7
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
Beispiel #8
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'
Beispiel #9
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()
Beispiel #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
Beispiel #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
Beispiel #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"] == []
Beispiel #13
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
Beispiel #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
Beispiel #15
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
Beispiel #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
Beispiel #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
Beispiel #18
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
Beispiel #19
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
Beispiel #20
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
Beispiel #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
Beispiel #22
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)
Beispiel #23
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': {}
        }
Beispiel #24
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': {}
        }
Beispiel #25
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
        )
Beispiel #26
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,
        }
Beispiel #27
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': {}
        }
Beispiel #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,
        }
Beispiel #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,
        }
Beispiel #30
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*"])
Beispiel #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,
        }
Beispiel #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,
        }
Beispiel #33
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,
        }
Beispiel #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*"]
        )
Beispiel #35
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,
        }
Beispiel #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,
        }
Beispiel #37
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]"
Beispiel #38
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]"
Beispiel #39
0
 def present(group, expand=None):
     presenter = GroupJSONPresenter(group, pyramid_request)
     return presenter.asdict(expand=expand)