magicli/tests/_test_functionality.py

28 lines
776 B
Python

from unittest import mock
import pytest
import sys
from magicli import magicli
@pytest.mark.parametrize('inputs, output', (
('appname command --name=Name --amount=3',
'Hello Name!\nHello Name!\nHello Name!\n'),
('appname command Name 3',
'Hello Name!\nHello Name!\nHello Name!\n'),
('appname command',
'Hello World!\n'),
('command magicli 2',
'Hello magicli!\nHello magicli!\n'),
))
def test_valid_command_line_arguments(inputs, output, capsys):
args = inputs.split()
with mock.patch('sys.argv', args):
magicli(exclude=['test_valid_command_line_arguments'])
out, err = capsys.readouterr()
assert out == output
def command(name='World', amount=1):
for _ in range(int(amount)):
print(f'Hello {name}!')