chromite: commandline_unittest does not pass locally |
||
Issue description
commandline_unittest is failing locally whereas it looks passing on buildbots. Maybe Python environment is a bit different?
Below is the local log. It looks caused by passing generators to argparse, which makes sense.
$ ../../chromite/lib/commandline_unittest
................................14:28:25: INFO: RunCommand: /cmd arg1 arg2 in /mnt/host/source
14:28:25: INFO: RunCommand: /cmd arg1 arg2 in /mnt/host/source
.14:28:25: INFO: RunCommand: /cmd arg1 arg2 in /mnt/host/source
14:28:25: INFO: RunCommand: /cmd arg1 arg2 in /mnt/host/source
14:28:25: INFO: RunCommand: /cmd arg1 arg2 in /mnt/host/source
..EEEEEE....
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testEmptyArg
Make sure '' produces nothing.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 331, in testEmptyArg
self._CheckArgs(['', ''], [])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1985, in _parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1917, in consume_optional
TypeError: 'generator' object has no attribute '__getitem__'
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testEmptyWhitespaceArg
Make sure whitespace produces nothing.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 335, in testEmptyWhitespaceArg
self._CheckArgs([' ', '\t', ' \t '], [])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1985, in _parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1917, in consume_optional
TypeError: 'generator' object has no attribute '__getitem__'
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testMultipleMultipleArgs
Verify splitting multiple args works.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 347, in testMultipleMultipleArgs
self._CheckArgs(['a b c', '', 'x', ' k '], ['a', 'b', 'c', 'x', 'k'])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1985, in _parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1917, in consume_optional
TypeError: 'generator' object has no attribute '__getitem__'
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testMultipleSingleArg
Verify splitting one arg works.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 343, in testMultipleSingleArg
self._CheckArgs(['a b c\td '], ['a', 'b', 'c', 'd'])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1985, in _parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1917, in consume_optional
TypeError: 'generator' object has no attribute '__getitem__'
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testNoArgs
This is more of a sanity check for resting state.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 327, in testNoArgs
self._CheckArgs([], [])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1991, in _parse_known_args
TypeError: 'generator' object has no attribute '__getitem__'
======================================================================
ERROR: [chromite.lib.commandline_unittest] SplitExtendActionTest.testSingleSingleArg
Verify splitting one arg works.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/mnt/host/source/chromite/lib/timeout_util.py", line 191, in TimeoutWrapper
return func(*args, **kwargs)
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 339, in testSingleSingleArg
self._CheckArgs(['a'], ['a'])
File "/mnt/host/source/chromite/lib/commandline_unittest.py", line 308, in _CheckArgs
cros_build_lib.iflatten_instance(['-x', x] for x in cliargs))
File "/mnt/host/source/chromite/lib/commandline.py", line 787, in parse_args
self, args=args, namespace=namespace)
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1747, in parse_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1779, in parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1985, in _parse_known_args
File "/mnt/hibiki/home/nya/src/cros/chromite/third_party/argparse.py", line 1917, in consume_optional
TypeError: 'generator' object has no attribute '__getitem__'
----------------------------------------------------------------------
Ran 45 tests in 0.203s
FAILED (errors=6)
,
Feb 23 2018
Oh my, the error went away by deleting *.pyc. Do we have a bug tracking general *.pyc issue?
,
Feb 23 2018
python is supposed to handle this stuff automatically :/ maybe we should change the test runner to clean pyc files ?
,
Feb 23 2018
Ah now I see, chromite/third_party/argparse.py was deleted at some point, but argparse.pyc remained there. The most elegant way to avoid this issue is to migrate to Python3... __pycache__ does not have the issue. But it won't happen soon. I wish we can have some workaround, but I don't come up with one. Anyway, thanks vapier@ for your quick response. |
||
►
Sign in to add a comment |
||
Comment 1 by vapier@chromium.org
, Feb 23 2018