tox: Don't inline python warnings

The sphinx regex is picking up python warnings.  We can disambiguate
the two because sphinx doesn't emit a space before the message but
the python warnings module does.  This adjusts the regex to do that
and adds a test file that includes warnings output.

If we need/want to make this more robust, we could also simply filter
the sphinx output for messages that start with " ?\w+Warning:".

We could also decide that we want to include python warnings.

Change-Id: Ib58cc1a2d4f673a0ce3d2a9cae306004559f5b52
This commit is contained in:
James E. Blair 2020-04-08 14:13:48 -07:00
parent db27d024ee
commit a4cf5ca07e
2 changed files with 11 additions and 1 deletions

View File

@ -0,0 +1,10 @@
---
workdir: .
output: |
tests/test_discovery.py:25: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
config = yaml.load(open('hiera/common.yaml', 'r'))
tests/test_discovery.py:714: UserWarning: Policy "foo:create_bar":"role:fizz" was deprecated in N in favor of "foo:create_bar":"". Reason: because of reasons. Either ensure your deployment is ready for the new default or copy/paste the deprecated policy into your policy file and maintain it manually.
warnings.warn(deprecated_msg)
WARNING [oslo_policy.policy] Policies ['foo', 'bar'] are part of a cyclical reference.
WARNING [oslo_policy.policy] Policies ['foo', 'bar'] are part of a cyclical reference.
comments: {}

View File

@ -42,7 +42,7 @@ from ansible.module_utils.basic import AnsibleModule
ANSI_RE = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]')
PEP8_RE = re.compile(r"^(.*):(\d+):(\d+): (.*)$")
SPHINX_RE = re.compile(r"^([^:]*):([\d]+):(.+)$")
SPHINX_RE = re.compile(r"^([^:]*):([\d]+):(\w.+)$")
def simple_matcher(line, regex, file_path_group, start_line_group,