Add tests
This commit is contained in:
123
test.py
Normal file
123
test.py
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
import unittest
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
from argclass import argclass
|
||||||
|
|
||||||
|
|
||||||
|
class TestArgClass(unittest.TestCase):
|
||||||
|
|
||||||
|
def test__required_argument(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg1: str
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg1', 'hello']) == A(arg1='hello')
|
||||||
|
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test__required_argument_missing(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg1: str
|
||||||
|
|
||||||
|
A.parse_args([])
|
||||||
|
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test__required_argument_wrong_given(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg1: str
|
||||||
|
|
||||||
|
A.parse_args(['--arg2', 'hello'])
|
||||||
|
|
||||||
|
def test__optional_argument_missing(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg2: str = 'world'
|
||||||
|
|
||||||
|
assert A.parse_args([]) == A(arg2='world')
|
||||||
|
|
||||||
|
def test__optional_argument_given(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg2: str = 'world'
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg2', 'welt']) == A(arg2='welt')
|
||||||
|
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test__optional_argument_wrong_given(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg2: str = 'world'
|
||||||
|
|
||||||
|
A.parse_args(['--arg3', 'welt'])
|
||||||
|
|
||||||
|
|
||||||
|
def test__boolean_true(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg3: bool
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg3']) == A(arg3=True)
|
||||||
|
|
||||||
|
|
||||||
|
def test__boolean_false(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg3: bool
|
||||||
|
|
||||||
|
assert A.parse_args(['--no-arg3']) == A(arg3=False)
|
||||||
|
|
||||||
|
def test__int(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg4: int
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg4', '42']) == A(arg4=42)
|
||||||
|
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test__int_malformed(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg4: int
|
||||||
|
|
||||||
|
A.parse_args(['--arg4', '4e2'])
|
||||||
|
|
||||||
|
def test__list(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg5: List
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg5', 'hello', 'world']) == A(arg5=['hello', 'world'])
|
||||||
|
|
||||||
|
|
||||||
|
def test__list_str(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg5: List[str]
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg5', 'hello', 'world']) == A(arg5=['hello', 'world'])
|
||||||
|
|
||||||
|
|
||||||
|
def test__list_int(self):
|
||||||
|
|
||||||
|
@argclass
|
||||||
|
class A:
|
||||||
|
arg5: List[int]
|
||||||
|
|
||||||
|
assert A.parse_args(['--arg5', '23', '42']) == A(arg5=[23, 42])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
||||||
Reference in New Issue
Block a user