Exemple #1
0
    def asdict(self):
        docpresenter = DocumentJSONPresenter(self.annotation.document)

        base = {
            "id": self.annotation.id,
            "created": self.created,
            "updated": self.updated,
            "user": self.annotation.userid,
            "uri": self.annotation.target_uri,
            "text": self.text,
            "tags": self.tags,
            "group": self.annotation.groupid,
            "permissions": self.permissions,
            "target": self.target,
            "document": docpresenter.asdict(),
            "links": self.links,
        }

        if self.annotation.references:
            base["references"] = self.annotation.references

        annotation = copy.copy(self.annotation.extra) or {}
        annotation.update(base)

        for formatter in self._formatters:
            annotation.update(formatter.format(self.annotation_resource))

        return annotation
Exemple #2
0
    def asdict(self):
        docpresenter = DocumentJSONPresenter(self.annotation.document)

        base = {
            'id': self.annotation.id,
            'created': self.created,
            'updated': self.updated,
            'user': self.annotation.userid,
            'uri': self.annotation.target_uri,
            'text': self.text,
            'tags': self.tags,
            'group': self.annotation.groupid,
            'permissions': self.permissions,
            'target': self.target,
            'document': docpresenter.asdict(),
            'links': self.links,
        }

        if self.annotation.references:
            base['references'] = self.annotation.references

        annotation = copy.copy(self.annotation.extra) or {}
        annotation.update(base)

        for formatter in self._formatters:
            annotation.update(formatter.format(self.annotation_resource))

        return annotation
Exemple #3
0
    def test_asdict(self, db_session):
        document = models.Document(
            title='Foo',
            document_uris=[
                models.DocumentURI(uri='http://foo.com',
                                   claimant='http://foo.com'),
                models.DocumentURI(uri='http://foo.org',
                                   claimant='http://foo.com',
                                   type='rel-canonical')
            ])
        db_session.add(document)
        db_session.flush()

        presenter = DocumentJSONPresenter(document)
        expected = {'title': ['Foo']}
        assert expected == presenter.asdict()
Exemple #4
0
    def test_asdict_does_not_render_other_meta_than_title(self, db_session):
        document = models.Document(
            title='Foo',
            meta=[
                models.DocumentMeta(type='title',
                                    value=['Foo'],
                                    claimant='http://foo.com'),
                models.DocumentMeta(type='twitter.url',
                                    value=['http://foo.com'],
                                    claimant='http://foo.com'),
                models.DocumentMeta(type='facebook.title',
                                    value=['FB Title'],
                                    claimant='http://foo.com')
            ])
        db_session.add(document)
        db_session.flush()

        presenter = DocumentJSONPresenter(document)
        assert {'title': ['Foo']} == presenter.asdict()
Exemple #5
0
    def test_asdict(self, db_session):
        document = models.Document(
            title="Foo",
            document_uris=[
                models.DocumentURI(uri="http://foo.com",
                                   claimant="http://foo.com"),
                models.DocumentURI(
                    uri="http://foo.org",
                    claimant="http://foo.com",
                    type="rel-canonical",
                ),
            ],
        )
        db_session.add(document)
        db_session.flush()

        presenter = DocumentJSONPresenter(document)
        expected = {"title": ["Foo"]}
        assert expected == presenter.asdict()
Exemple #6
0
    def test_asdict_does_not_render_other_meta_than_title(self, db_session):
        document = models.Document(
            title="Foo",
            meta=[
                models.DocumentMeta(type="title",
                                    value=["Foo"],
                                    claimant="http://foo.com"),
                models.DocumentMeta(
                    type="twitter.url",
                    value=["http://foo.com"],
                    claimant="http://foo.com",
                ),
                models.DocumentMeta(type="facebook.title",
                                    value=["FB Title"],
                                    claimant="http://foo.com"),
            ],
        )
        db_session.add(document)
        db_session.flush()

        presenter = DocumentJSONPresenter(document)
        assert {"title": ["Foo"]} == presenter.asdict()
Exemple #7
0
 def test_asdict_when_none_document(self):
     assert {} == DocumentJSONPresenter(None).asdict()