コード例 #1
0
ファイル: annotation_json.py プロジェクト: kaydoh/h
    def present(self, annotation: Annotation):
        """
        Get the JSON presentation of an annotation.

        This representation does not contain any user specific information and
        has only the data applicable to all users. This does not blank content
        for moderated annotations.

        :param annotation: Annotation to present
        :return: A dict suitable for JSON serialisation
        """
        model = deepcopy(annotation.extra) or {}

        model.update(
            {
                "id": annotation.id,
                "created": utc_iso8601(annotation.created),
                "updated": utc_iso8601(annotation.updated),
                "user": annotation.userid,
                "uri": annotation.target_uri,
                "text": annotation.text or "",
                "tags": annotation.tags or [],
                "group": annotation.groupid,
                #  Convert our simple internal annotation storage format into the
                #  legacy complex permissions dict format that is still used in
                #  some places.
                "permissions": {
                    "read": [self._get_read_permission(annotation)],
                    "admin": [annotation.userid],
                    "update": [annotation.userid],
                    "delete": [annotation.userid],
                },
                "target": annotation.target,
                "document": DocumentJSONPresenter(annotation.document).asdict(),
                "links": self._links_service.get_all(annotation),
            }
        )

        model.update(user_info(self._user_service.fetch(annotation.userid)))

        if annotation.references:
            model["references"] = annotation.references

        return model
コード例 #2
0
 def test_format_returns_empty_dict_when_user_missing(self):
     assert session.user_info(None) == {}
コード例 #3
0
    def test_allows_null_display_name(self, factories):
        user = factories.User.build(display_name=None)

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': None}}
コード例 #4
0
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name='Jane Doe')

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': 'Jane Doe'}}
コード例 #5
0
 def format(self, annotation_resource):
     user = self.user_svc.fetch(annotation_resource.annotation.userid)
     return user_info(user)
コード例 #6
0
ファイル: session_test.py プロジェクト: zhiiker/hypothesis
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name="Jane Doe")

        result = session.user_info(user)
        assert result == {"user_info": {"display_name": "Jane Doe"}}
コード例 #7
0
ファイル: annotation_user_info.py プロジェクト: hypothesis/h
 def format(self, annotation_resource):
     user = self.user_svc.fetch(annotation_resource.annotation.userid)
     return user_info(user)
コード例 #8
0
ファイル: session_test.py プロジェクト: chinmaygghag/h
 def test_format_returns_empty_dict_when_user_missing(self):
     assert session.user_info(None) == {}
コード例 #9
0
ファイル: session_test.py プロジェクト: chinmaygghag/h
    def test_allows_null_display_name(self, factories):
        user = factories.User.build(display_name=None)

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': None}}
コード例 #10
0
ファイル: session_test.py プロジェクト: chinmaygghag/h
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name='Jane Doe')

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': 'Jane Doe'}}
コード例 #11
0
ファイル: session_test.py プロジェクト: hypothesis/h
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name="Jane Doe")

        result = session.user_info(user)
        assert result == {"user_info": {"display_name": "Jane Doe"}}