Use oslo_messaging conf fixture
Oslo_messaging mocking in audit tests is a bit odd because middleware creation must be run multiple times so that the oslo_messaging opts are registered before the config fixture tries to set it. If we use the oslo_messaging conf fixture then it handles all the option registration for us correctly and removes the need for us to manually patch get_transport. Change-Id: Iaea2e66e9418a0426d73e1c4554c56be262a7779
This commit is contained in:
parent
23808e1bae
commit
98b639aeb7
@ -12,6 +12,7 @@
|
||||
|
||||
|
||||
from oslo_config import fixture as cfg_fixture
|
||||
from oslo_messaging import conffixture as msg_fixture
|
||||
from oslotest import createfile
|
||||
|
||||
from keystonemiddleware import audit
|
||||
@ -60,6 +61,8 @@ class BaseAuditMiddlewareTest(utils.BaseTestCase):
|
||||
createfile.CreateFileWithContent('audit', audit_map_content))
|
||||
|
||||
self.cfg = self.useFixture(cfg_fixture.Config())
|
||||
self.msg = self.useFixture(msg_fixture.ConfFixture(self.cfg.conf))
|
||||
|
||||
self.cfg.conf([], project=self.PROJECT_NAME)
|
||||
|
||||
self.middleware = audit.AuditMiddleware(
|
||||
|
@ -10,7 +10,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import fixtures
|
||||
import mock
|
||||
import webob
|
||||
|
||||
@ -20,19 +19,6 @@ from keystonemiddleware.tests.unit.audit import base
|
||||
|
||||
class AuditNotifierConfigTest(base.BaseAuditMiddlewareTest):
|
||||
|
||||
def setUp(self):
|
||||
super(AuditNotifierConfigTest, self).setUp()
|
||||
|
||||
f = fixtures.MockPatch('oslo_messaging.get_transport',
|
||||
side_effect=self._get_transport)
|
||||
self.transport_fixture = self.useFixture(f)
|
||||
|
||||
def _get_transport(self, conf, aliases=None, url=None):
|
||||
transport = mock.MagicMock()
|
||||
transport.conf = conf
|
||||
conf.register_opts = mock.MagicMock()
|
||||
return transport
|
||||
|
||||
def test_conf_middleware_log_and_default_as_messaging(self):
|
||||
self.cfg.config(driver='log', group='audit_middleware_notifications')
|
||||
middleware = audit.AuditMiddleware(
|
||||
@ -108,7 +94,8 @@ class AuditNotifierConfigTest(base.BaseAuditMiddlewareTest):
|
||||
middleware._process_request(req)
|
||||
self.assertTrue(driver.called)
|
||||
|
||||
def test_conf_middleware_messaging_and_transport_set(self):
|
||||
@mock.patch('oslo_messaging.get_transport')
|
||||
def test_conf_middleware_messaging_and_transport_set(self, m):
|
||||
transport_url = 'rabbit://me:passwd@host:5672/virtual_host'
|
||||
self.cfg.config(driver='messaging',
|
||||
transport_url=transport_url,
|
||||
@ -118,7 +105,6 @@ class AuditNotifierConfigTest(base.BaseAuditMiddlewareTest):
|
||||
base.FakeApp(),
|
||||
audit_map_file=self.audit_map,
|
||||
service_name='pycadf')
|
||||
m = self.transport_fixture.mock
|
||||
self.assertTrue(m.called)
|
||||
# make sure first call kwarg 'url' is same as provided transport_url
|
||||
self.assertEqual(transport_url, m.call_args_list[0][1]['url'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user