Код: Выделить всё
from argparse import ArgumentParser
class ArgumentHandler:
def __init__(self):
self.parser = ArgumentParser()
self.parser.add_argument('--environment', help='Environment', choices=['TEST', 'DEV', 'PROD'], nargs=1, type=str.upper)
self.parser.add_argument('--asofdate', help='As of date', nargs=1)
def parse(self):
parsed = {}
args = dict(vars(self.parser.parse_args()))
...
return parsed
Код: Выделить всё
def test_providing_incorrect_environment(self):
print(f"RUNNING TEST CASE {inspect.currentframe().f_code.co_name}")
app = sys.argv[0] if len(sys.argv) > 0 and sys.argv[0] is not None else __file__
sys.argv = [app, '--environment=UAT' ]
with self.assertRaises(ArgumentError):
ArgumentHandler().parse()
Код: Выделить всё
argparse.ArgumentError: argument --environment: invalid choice: 'UAT' (choose from 'TEST', 'DEV', 'PROD')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\SWDTOOLS\PYTHON39\lib\unittest\case.py", line 59, in testPartExecutor
yield
File "C:\SWDTOOLS\PYTHON39\lib\unittest\case.py", line 593, in run
self._callTestMethod(testMethod)
File "C:\SWDTOOLS\PYTHON39\lib\unittest\case.py", line 550, in _callTestMethod
method()
File "c:\ParisNmdProcessor\tests\components\helpers\test_argument_handler.py", line 57, in test_providing_incorrect_environment
ArgumentHandler().parse()
File "c:\ParisNmdProcessor\src\components\helpers\argument_handler.py", line 28, in parse
args = dict(vars(self.parser.parse_args()))
File "C:\SWDTOOLS\PYTHON39\lib\argparse.py", line 1818, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "C:\SWDTOOLS\PYTHON39\lib\argparse.py", line 1854, in parse_known_args
self.error(str(err))
File "C:\SWDTOOLS\PYTHON39\lib\argparse.py", line 2575, in error
self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
File "C:\SWDTOOLS\PYTHON39\lib\argparse.py", line 2562, in exit
_sys.exit(status)
SystemExit: 2
Подробнее здесь: https://stackoverflow.com/questions/784 ... ng-failure