Merge "Add fixture to only emit DeprecationWarning once"

This commit is contained in:
Zuul 2017-12-13 13:20:43 +00:00 committed by Gerrit Code Review
commit 67927dd44a
5 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,40 @@
# 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.
"""Fixtures for Glance unit tests."""
# NOTE(mriedem): This is needed for importing from fixtures.
from __future__ import absolute_import
import warnings
import fixtures as pyfixtures
class WarningsFixture(pyfixtures.Fixture):
"""Filters out warnings during test runs."""
def setUp(self):
super(WarningsFixture, self).setUp()
# NOTE(sdague): Make deprecation warnings only happen once. Otherwise
# this gets kind of crazy given the way that upstream python libs use
# this.
warnings.simplefilter('once', DeprecationWarning)
# NOTE(sdague): this remains an unresolved item around the way
# forward on is_admin, the deprecation is definitely really premature.
warnings.filterwarnings(
'ignore',
message='Policy enforcement is depending on the value of is_admin.'
' This key is deprecated. Please update your policy '
'file to use the standard policy values.')
self.addCleanup(warnings.resetwarnings)

View File

@ -12,6 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import absolute_import
import copy
import os
import sys

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import absolute_import
from contextlib import contextmanager
import datetime
import hashlib

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import absolute_import
import fixtures
import mock

View File

@ -47,6 +47,7 @@ from glance.db import migration as db_migration
from glance.db.sqlalchemy import alembic_migrations
from glance.db.sqlalchemy import api as db_api
from glance.db.sqlalchemy import models as db_models
from glance.tests.unit import fixtures as glance_fixtures
CONF = cfg.CONF
try:
@ -84,6 +85,9 @@ class BaseTestCase(testtools.TestCase):
utils.safe_mkdirs(self.conf_dir)
self.set_policy()
# Limit the amount of DeprecationWarning messages in the unit test logs
self.useFixture(glance_fixtures.WarningsFixture())
def set_policy(self):
conf_file = "policy.json"
self.policy_file = self._copy_data_file(conf_file, self.conf_dir)