Plugin aware extensions should also be reset at each test setup

PluginAwareExtensionManager caches extension according plugin.
At each db plugin test setup, testing plugin and router are newly
created.
However, the extension manager held the extensions for first time
loaded plugin. Because of their cache.

So if a plugin conditional extension exists, it could not be loaded by
testing order.

Fixes bug 1043381.

Change-Id: Ic994aab61c3d67aa9d422594484049f41ff8b321
This commit is contained in:
Yusuke Muraoka 2012-08-28 09:59:42 +00:00
parent 54bc60850f
commit 8db1df22a4

View File

@ -34,6 +34,7 @@ from quantum import context
from quantum.db import api as db from quantum.db import api as db
from quantum.db import db_base_plugin_v2 from quantum.db import db_base_plugin_v2
from quantum.db import models_v2 from quantum.db import models_v2
from quantum.extensions.extensions import PluginAwareExtensionManager
from quantum.manager import QuantumManager from quantum.manager import QuantumManager
from quantum.openstack.common import cfg from quantum.openstack.common import cfg
from quantum.openstack.common import timeutils from quantum.openstack.common import timeutils
@ -63,6 +64,8 @@ class QuantumDbPluginV2TestCase(unittest2.TestCase):
db._MAKER = None db._MAKER = None
# Make sure at each test a new instance of the plugin is returned # Make sure at each test a new instance of the plugin is returned
QuantumManager._instance = None QuantumManager._instance = None
# Make sure at each test according extensions for the plugin is loaded
PluginAwareExtensionManager._instance = None
# Save the attributes map in case the plugin will alter it # Save the attributes map in case the plugin will alter it
# loading extensions # loading extensions
# Note(salvatore-orlando): shallow copy is not good enough in # Note(salvatore-orlando): shallow copy is not good enough in