2014-01-23 15:09:43 -05:00
|
|
|
# Copyright 2014 Samsung Electronics. All Rights Reserved.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
# not use this file except in compliance with the License. You may obtain
|
|
|
|
# a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
# License for the specific language governing permissions and limitations
|
|
|
|
# under the License.
|
|
|
|
|
|
|
|
from elastic_recheck import loader
|
|
|
|
from elastic_recheck import tests
|
|
|
|
|
|
|
|
|
|
|
|
class TestLoadQueries(tests.TestCase):
|
|
|
|
"""Test that all the production queries can be loaded.
|
|
|
|
|
|
|
|
This ensures that we don't completely explode on some badly formed
|
|
|
|
yaml that's provided to us.
|
|
|
|
"""
|
|
|
|
def test_load_queries(self):
|
|
|
|
queries = loader.load("queries")
|
|
|
|
|
|
|
|
self.assertGreater(len(queries), 0)
|
|
|
|
for q in queries:
|
|
|
|
self.assertIsNotNone(q['bug'])
|
|
|
|
self.assertIsNotNone(q['query'])
|
2016-02-01 07:55:30 -08:00
|
|
|
# check for the allow-nonvoting flag
|
2016-03-01 12:24:14 -05:00
|
|
|
if 'allow-nonvoting' in q:
|
2016-02-01 07:55:30 -08:00
|
|
|
self.assertNotIn('voting:1', q['query'])
|
|
|
|
else:
|
|
|
|
self.assertIn('voting:1', q['query'])
|
2014-01-23 15:09:43 -05:00
|
|
|
|
2014-02-14 19:00:04 -08:00
|
|
|
def test_grenade_compat(self):
|
|
|
|
# grenade logs are in logs/new/ and logs/old, while devstack is in
|
|
|
|
# logs/. To make sure queries will work with both, one should use
|
|
|
|
# filename:logs*screen... (no quotes)
|
|
|
|
queries = loader.load("queries")
|
|
|
|
|
|
|
|
for q in queries:
|
|
|
|
# Use assertTrue because you can specify a custom message
|
|
|
|
self.assertTrue("filename:\"logs/screen-" not in q['query'],
|
|
|
|
msg=("for bug %s" % q['bug']))
|