buku/tests/test_ExtendedArgumentParser.py
rachmadani haryono d440a294b9 Feature/fix help test (#178)
* chg: test: dont hardcode the expected result

* fix: test: fix called_once arg

* fix: test: use mock_calls
2017-07-25 12:26:02 +05:30

40 lines
1.1 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
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:
assert len(m_sys.stderr.write.mock_calls) == 1
else:
assert len(file.write.mock_calls) == 1
def test_prompt_help():
"""test method."""
file = mock.Mock()
import buku
buku.ExtendedArgumentParser.prompt_help(file)
assert len(file.write.mock_calls) == 1
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)