Skip to content

Commit 9febc39

Browse files
committed
Add some command line test
1 parent 33ce78e commit 9febc39

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

tests/test_qiita_sync.py

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,25 @@
33
import string
44
import pytest
55
import datetime
6+
import re
67
from pathlib import Path
78
from typing import Generator, List, Optional, NamedTuple, Dict, Callable
89
from dataclasses import dataclass
9-
from argparse import ArgumentError
1010

11-
from qiita_sync.qiita_sync import ApplicationError, CommandError, QiitaArticle, QiitaSync, exec_command, qsync_get_access_token
11+
from qiita_sync.qiita_sync import ApplicationError, CommandError, QiitaArticle, QiitaSync
12+
from qiita_sync.qiita_sync import exec_command, qsync_get_access_token
1213
from qiita_sync.qiita_sync import DEFAULT_ACCESS_TOKEN_FILE, DEFAULT_INCLUDE_GLOB, DEFAULT_EXCLUDE_GLOB, GITHUB_REF
1314
from qiita_sync.qiita_sync import qsync_init, qsync_argparse, Maybe
1415
from qiita_sync.qiita_sync import rel_path, add_path, url_add_path, get_utc, str2bool, is_url
15-
from qiita_sync.qiita_sync import git_get_topdir, git_get_remote_url, git_get_default_branch, git_get_committer_datetime
16+
from qiita_sync.qiita_sync import git_get_topdir, git_get_remote_url, git_get_default_branch
17+
from qiita_sync.qiita_sync import git_get_committer_datetime
1618
from qiita_sync.qiita_sync import qiita_create_caller, qiita_get_authenticated_user_id
1719
from qiita_sync.qiita_sync import markdown_code_block_split, markdown_code_inline_split, markdown_replace_text
1820
from qiita_sync.qiita_sync import markdown_replace_link, markdown_replace_image
21+
from qiita_sync.qiita_sync import qsync_main
1922

2023
from pytest_mock.plugin import MockerFixture
24+
from pytest import CaptureFixture
2125

2226
########################################################################
2327
# Test Utils
@@ -189,6 +193,30 @@ def gen_md2(mdlink: Callable[[str], str], imglink: Callable[[str], str]):
189193
########################################################################
190194

191195

196+
def test_subcommand_download(mocker: MockerFixture):
197+
mocker.patch('sys.argv', ['qiita_sync.py', 'download', '.', '--file-timestamp'])
198+
#
199+
# TODO: better assertion
200+
#
201+
try:
202+
qsync_main()
203+
assert True
204+
except Exception:
205+
assert False
206+
207+
208+
def test_subcommand_check(mocker: MockerFixture, capsys: CaptureFixture):
209+
mocker.patch('sys.argv', ['qiita_sync.py', 'check', '.', '--file-timestamp'])
210+
try:
211+
qsync_main()
212+
captured = capsys.readouterr()
213+
print(captured.out)
214+
assert re.match(r'^https://qiita\.com/.*is new article$', captured.out, re.MULTILINE | re.DOTALL)
215+
assert "qiita-sync/CHANGELOG.md is new article" in captured.out
216+
except Exception:
217+
assert False
218+
219+
192220
def test_invalid_subcommand(topdir_fx: Path):
193221
with pytest.raises(SystemExit):
194222
qsync_argparse().parse_args("invalid .".split())

0 commit comments

Comments
 (0)