Files
zvk2_public/tests/zvk/plugins/vk/test_signatures.py
2019-03-15 15:02:19 +04:00

50 lines
1.7 KiB
Python

import pytest
from zvk.plugins.vk.command import Argument, CommandEventConsumer, CommandParseException
def test_signatures_easy():
a = CommandEventConsumer('a', Argument('n', type=int))
assert a.parse_argstring('1') == {'n': 1}
with pytest.raises(Exception):
assert a.parse_argstring('dsa') == {'n': 1}
with pytest.raises(CommandParseException):
assert a.parse_argstring('-h')
with pytest.raises(CommandParseException):
assert a.parse_argstring('dsa')
with pytest.raises(CommandParseException):
assert a.parse_argstring('')
with pytest.raises(CommandParseException):
assert a.parse_argstring('--arg=1')
assert a.parse_argstring('"1"') == {'n': 1}
with pytest.raises(CommandParseException):
assert a.parse_argstring('"')
def test_signatures_complex():
a = CommandEventConsumer('a',
Argument('n', nargs='?', type=int, default=0),
Argument('-n', '--n', dest='m', type=int, default=2),
Argument('-v', action='store_true'),
Argument('--s', type=str))
assert a.parse_argstring('1') == {'n': 1, 'm': 2, 'v': False, 's': None}
assert a.parse_argstring('--n=1') == {'n': 0, 'm': 1, 'v': False, 's': None}
assert a.parse_argstring('--n 1') == {'n': 0, 'm': 1, 'v': False, 's': None}
assert a.parse_argstring('-n 1') == {'n': 0, 'm': 1, 'v': False, 's': None}
assert a.parse_argstring('-vn1') == {'n': 0, 'm': 1, 'v': True, 's': None}
def test_signatures_whole():
a = CommandEventConsumer('a', whole_argstring=True)
assert a.parse_argstring('d ksja jd j jj jj --n -h 2') == {'argstring': 'd ksja jd j jj jj --n -h 2'}