Hi,

Trying to run the test suite manually through run_tests.py but I hit an
error. I've traced it down to the -lv argument:

[[[
dsg@daniel-2022:~/svn_1.14.x$ python build/run_tests.py -lv
Traceback (most recent call last):
  File "/home/dsg/svn_1.14.x/build/run_tests.py", line 1092, in <module>
    main()
  File "/home/dsg/svn_1.14.x/build/run_tests.py", line 1069, in main
    (opts, args) = create_parser().parse_args(sys.argv[1:])
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/optparse.py", line 1387, in parse_args
    stop = self._process_args(largs, rargs, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/optparse.py", line 1431, in _process_args
    self._process_short_opts(rargs, values)
  File "/usr/lib/python3.11/optparse.py", line 1536, in _process_short_opts
    option.process(opt, value, values, self)
  File "/usr/lib/python3.11/optparse.py", line 784, in process
    return self.take_action(
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/optparse.py", line 805, in take_action
    self.callback(self, opt, value, parser, *args, **kwargs)
  File "/home/dsg/svn_1.14.x/build/run_tests.py", line 990, in set_log_level
    parser.values.set_log_level = getattr(logging, level, None) or
int(level)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: attribute name must be string, not 'int'
]]]

The code is:
[[[
  def set_log_level(option, opt, value, parser, level=None):
    if level is None:
      level = value
    parser.values.set_log_level = getattr(logging, level, None) or
int(level)
]]]

I assume the last line should be
[[[
    parser.values.set_log_level = getattr(logging, "level", None) or
int(level)
]]]

Since I'm not very proficient in Python I'd like to verify before making a
change - is there or was there ever a reason why the attribute name should
be taken from the level and/or value argument.

Kind regards,
Daniel Sahlberg

Reply via email to