65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
|
"""test module."""
|
||
|
from itertools import product
|
||
|
from unittest import mock
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize("platform, file", product(['win32', 'linux'], [None, mock.Mock()]))
|
||
|
def test_program_info(platform, file):
|
||
|
"""test method."""
|
||
|
with mock.patch('buku.sys') as m_sys:
|
||
|
import buku
|
||
|
prog_info_text = '''
|
||
|
SYMBOLS:
|
||
|
> title
|
||
|
+ comment
|
||
|
# tags
|
||
|
|
||
|
Version {}
|
||
|
Copyright © 2015-2017 {}
|
||
|
License: {}
|
||
|
Webpage: https://github.com/jarun/Buku
|
||
|
'''.format(buku.__version__, buku.__author__, buku.__license__)
|
||
|
file = mock.Mock()
|
||
|
if file is None:
|
||
|
buku.ExtendedArgumentParser.program_info()
|
||
|
else:
|
||
|
buku.ExtendedArgumentParser.program_info(file)
|
||
|
if platform == 'win32' and file == m_sys.stdout:
|
||
|
m_sys.stderr.write.assert_called_once_with(prog_info_text)
|
||
|
else:
|
||
|
file.write.assert_called_once_with(prog_info_text)
|
||
|
|
||
|
|
||
|
def test_prompt_help():
|
||
|
"""test method."""
|
||
|
file = mock.Mock()
|
||
|
import buku
|
||
|
buku.ExtendedArgumentParser.prompt_help(file)
|
||
|
file.write.assert_called_once_with('''
|
||
|
keys:
|
||
|
1-N browse search result indices and/or ranges
|
||
|
a open all results in browser
|
||
|
s keyword [...] search for records with ANY keyword
|
||
|
S keyword [...] search for records with ALL keywords
|
||
|
d match substrings ('pen' matches 'opened')
|
||
|
r expression run a regex search
|
||
|
t [...] search bookmarks by a tag or show tag list
|
||
|
w [editor|index] edit and add or update a bookmark
|
||
|
(tag list index fetches bookmarks by tag)
|
||
|
? show this help
|
||
|
q, ^D, double Enter exit buku
|
||
|
|
||
|
''')
|
||
|
|
||
|
|
||
|
def test_print_help():
|
||
|
"""test method."""
|
||
|
file = mock.Mock()
|
||
|
import buku
|
||
|
obj = buku.ExtendedArgumentParser()
|
||
|
obj.program_info = mock.Mock()
|
||
|
obj.print_help(file)
|
||
|
obj.program_info.assert_called_once_with(file)
|