コード例 #1
0
    def test_list_entry_annotations(self, monkeypatch):

        def getentry_request(self):
            return Response(
                    200, (
                        '{"id": 1, "title": "title",'
                        '"content": "<h1>head</h1>content", "url": "url",'
                        '"is_archived": 0, "is_starred": 1,'
                        '"annotations": [{'
                        '"user": "******", "annotator_schema_version":'
                        ' "v1.0", "id": 1, "text": "content", '
                        '"created_at": "2020-10-28T10:50:51+0000", '
                        '"updated_at": "2020-10-28T10:50:51+0000", '
                        '"quote": "quote", "ranges": '
                        '[{"start": "/div[1]/p[1]", "startOffset": "23", '
                        '"end": "/div[1]/p[1]", "endOffset": "49"}]}]}'))

        monkeypatch.setattr(GetEntry, 'request', getentry_request)

        params = AnnoCommandParams()
        params.entry_id = 1
        result = AnnoCommand(self.config, params).execute()
        assert result[0]
        past = delorean.utcnow() - delorean.parse('2020-10-28T10:50:51+0000')
        assert result[1] == f'1. quote ({humanize.naturaltime(past)}) [7]'
コード例 #2
0
    def test_remove_annotation(self, monkeypatch):

        def request_success(self):
            return Response(200, None)

        monkeypatch.setattr(DeleteAnnotation, 'request', request_success)

        params = AnnoCommandParams()
        params.anno_id = 1
        params.command = AnnoSubcommand.REMOVE
        result = AnnoCommand(self.config, params).execute()
        assert result[0]
        assert result[1] == 'Annotation successfully deleted'
コード例 #3
0
def anno(ctx, command, entry_id, anno_id):
    """
    Annotations manipulation command.

    list (default) command: Retrieve and print annotations for specified entry:

    \b
    {id}. {quote} ({updated}) [{length}]
    {id}. {quote} ({updated}) [{length}]
    {id}. {quote} ({updated}) [{length}]
    """
    params = AnnoCommandParams()
    params.entry_id = entry_id
    params.anno_id = anno_id
    params.command = AnnoSubcommand.get(command)
    run_command(AnnoCommand(ctx.obj, params))
コード例 #4
0
 def test_remove_empty_params(self):
     params = AnnoCommandParams()
     params.command = AnnoSubcommand.REMOVE
     result = AnnoCommand(self.config, params).execute()
     assert not result[0]
     assert result[1] == 'Annotation ID not specified'
コード例 #5
0
 def test_list_empty_params(self):
     params = AnnoCommandParams()
     params.command = AnnoSubcommand.LIST
     result = AnnoCommand(self.config, params).execute()
     assert not result[0]
     assert result[1] == 'Entry ID not specified'