Files
ironic/ironic/tests/unit/__init__.py
T
Jay Faulkner b9baf7dbc8 eventlet monkey patch in unit tests earlier
It's important for consistent behavior to monkey_patch eventlet
before importing anything. While it makes an attempt to green any
existing created objects or locks, that code is buggy and fails
in some cases -- especially around rlocks.

It's not my belief that this resolves any specific bugs, but this
does reflect a better overall practice.

Change-Id: I57b2c91f9853287a08ee79ac87ae6e1767ddfb6f
2023-11-02 10:40:42 -07:00

51 lines
1.7 KiB
Python

# Copyright 2010 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# 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.
"""
:mod:`ironic.tests.unit` -- ironic unit tests
=====================================================
.. automodule:: ironic.tests.unit
:platform: Unix
"""
import eventlet
# NOTE(JayF): We must green all python stdlib modules before anything else
# is imported for consistent behavior. For instance, sqlalchemy
# creates a threading.RLock early, and if it was imported before
eventlet.monkey_patch() # noqa
from oslo_config import cfg # noqa E402
from oslo_log import log # noqa E402
from ironic import objects # noqa E402
log.register_options(cfg.CONF)
log.setup(cfg.CONF, 'ironic')
# NOTE(comstud): Make sure we have all of the objects loaded. We do this
# at module import time, because we may be using mock decorators in our
# tests that run at import time.
objects.register_all()
# NOTE(dtantsur): this module creates mocks which may be used at random points
# of time, so it must be imported as early as possible.
from ironic.tests.unit.drivers import third_party_driver_mocks # noqa