28 lines
776 B
Python
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}!')
|