Kengo Seki created AVRO-2437:
--------------------------------

             Summary: Fix run_tests.py to show "test skipped" message
                 Key: AVRO-2437
                 URL: https://issues.apache.org/jira/browse/AVRO-2437
             Project: Apache Avro
          Issue Type: Improvement
          Components: build, python
            Reporter: Kengo Seki
            Assignee: Kengo Seki


In connection with AVRO-2436, the tests for Python3 doesn't show the following 
message,

{code:title=lang/py3/avro/tests/test_datafile.py}
try:
  import snappy
  CODECS_TO_VALIDATE += ('snappy',)
except ImportError:
  logging.info('Snappy not present, will skip testing it.')
{code}

even if python3-snappy is not installed.

{code}
$ cd lang/py3
$ python -c "import snappy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named snappy
$ python3 setup.py test 2>&1 | grep skip
$ 
{code}

So users can't notice that snappy codec is not tested.

This is because of the processing order in run_tests.py. It imports 
test_datafile.py before calling {{SetupLogging()}}, so the logging message in 
test_datafile.py is not displayed.

{code:title=lang/py3/avro/tests/run_tests.py}
from avro.tests.test_datafile import *

(snip)

def SetupLogging():
  log_level = int(os.environ.get('PYTHON_LOG_LEVEL', logging.INFO))

  log_formatter = logging.Formatter(
      '%(asctime)s %(levelname)s %(filename)s:%(lineno)s : %(message)s')
  logging.root.handlers = list()  # list.clear() only exists in python 3.3+
  logging.root.setLevel(log_level)
  console_handler = logging.StreamHandler()
  console_handler.setFormatter(log_formatter)
  console_handler.setLevel(logging.DEBUG)
  logging.root.addHandler(console_handler)


SetupLogging()
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to