示例#1
0
    def test_should_invoke_get_by_url(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-u", "https://some/url"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = MainTests.posts

        runner(args)
        blogObj.getPosts.assert_called_with(url="https://some/url")
示例#2
0
    def test_empty_results_in_get(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-q", "query"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = {"items": []}

        runner(args)
        blogObj.getPosts.assert_called_with(query="query", maxResults=None)
示例#3
0
    def test_should_invoke_search(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-q", "query"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = MainTests.posts

        runner(args)
        blogObj.getPosts.assert_called_with(query="query", maxResults=None)
示例#4
0
    def test_handle_non_existent_keys_in_fields(self, pypandocMock,
                                                blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-q", "query", "-f", "id,b"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = MainTests.posts

        runner(args)
        blogObj.getPosts.assert_called_with(query="query", maxResults=None)
示例#5
0
    def test_should_invoke_bylabel_bydefault(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get'])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = MainTests.posts

        runner(args)

        blogObj.getPosts.assert_called_with(labels=None, maxResults=None)
示例#6
0
    def test_should_invoke_getbyid(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-p", "100"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.return_value = MainTests.posts

        runner(args)

        blogObj.getPosts.assert_called_with(postId="100")
示例#7
0
    def test_should_invoke_delete(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['delete', '100', "200"])
        blogObj = blogObjClass.return_value

        runner(args)

        assert blogObj.deletePost.call_count == 2
        expected = [call.deletePost('100'), call.deletePost('200')]
        assert blogObj.mock_calls == expected
示例#8
0
    def test_should_invoke_update(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(
            ['update', "-t", "t", "-c", "content", "100", '--date',
             '2018-01-01'])
        blogObj = blogObjClass.return_value
        blogObj.updatePost.return_value = {"id": "100", "url": "someurl"}

        runner(args)

        blogObj.updatePost.assert_called_with(
            "100", "t", "content", None, [], isDraft=True, fmt="html",
            publishDate='2018-01-01')
示例#9
0
    def test_should_process_files_for_create(self, pypandocMock, blogObjClass):
        mo = mock_open(read_data="""
+++
title= "t"
tags= ["l", "a", "c"]
+++

this is the post """)

        def processItemSideEffect(*positionalArgs, **kwargs):
            args = positionalArgs[0]
            assert args.title == "t"
            assert args.labels == ["l", "a", "c"]
            assert args.command == "post"
            assert args.format == "asciidoc"
            assert not args.publish
            return DEFAULT

        blogObj = blogObjClass.return_value
        with patch('blogger.main.open', mo) as openmock, \
                patch('blogger.main.processItem') as mockProcessItem, \
                patch('blogger.main.glob') as glob:
            glob.iglob.return_value = iter(["file1.asciidoc"])
            pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
            args = parse_args(['file', "file1.asciidoc"])
            mockProcessItem.side_effect = processItemSideEffect
            exitStatus = runner(args)
示例#10
0
    def test_should_return_error_exit_code_on_exception(
            self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['get', "-p", "100"])
        blogObj = blogObjClass.return_value
        blogObj.getPosts.side_effect = AccessTokenRefreshError

        rval = runner(args)
        assert rval == -1
示例#11
0
    def test_should_invoke_post(self, pypandocMock, blogObjClass):
        pypandocMock.get_pandoc_formats.return_value = [['a'], ['b']]
        args = parse_args(['post', "-t", "t", "-c", "content"])
        print(args)
        blogObj = blogObjClass.return_value
        blogObj.post.return_value = {"id": "100", "url": "someurl"}

        exitStatus = runner(args)

        blogObj.post.assert_called_with("t",
                                        "content",
                                        None, [],
                                        isDraft=True,
                                        fmt="html")
        assert exitStatus == 0