~chad.smith/charms/precise/block-storage-broker/bsb-ec2-support

« back to all changes in this revision

Viewing changes to hooks/test_hooks.py

  • Committer: Chad Smith
  • Date: 2014-03-13 22:50:29 UTC
  • Revision ID: chad.smith@canonical.com-20140313225029-8rxt28rpb5zrytqo
when mocking avoid mocker.replace of global imports using simple strings like 'util.StorageServiceUtil.attach_volume'. Instead use mocker.patch of our local imported StorageServiceUtil object and patch the attach_volume() method. This local patching seems to avoid collisions multiple processes run unit tests simultaneously

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import mocker
5
5
import os
6
6
from testing import TestHookenv
 
7
from util import StorageServiceUtil
7
8
 
8
9
 
9
10
class TestHooks(mocker.MockerTestCase):
10
11
 
11
12
    def setUp(self):
 
13
        super(TestHooks, self).setUp()
12
14
        self.maxDiff = None
13
15
        hooks.hookenv = TestHookenv(
14
16
            {"key": "myusername", "tenant": "myusername_project",
160
162
            ("key", "myusername"), ("tenant", ""), ("provider", "nova"),
161
163
            ("secret", "password"), ("region", ""),
162
164
            ("endpoint", "https://keystone_url:443/v2.0/"))
163
 
        self.mocker.replay()
164
165
 
165
166
        result = self.assertRaises(SystemExit, hooks.config_changed)
166
167
        self.assertEqual(result.code, 0)
230
231
 
231
232
        persist = self.mocker.replace(hooks._persist_data)
232
233
        persist("storage/0", "i-123")
233
 
        nova_attach = self.mocker.replace(
234
 
            "util.StorageServiceUtil.attach_volume")
235
 
        nova_attach(
 
234
        self.storage_util = self.mocker.patch(StorageServiceUtil)
 
235
        self.storage_util.attach_volume(
236
236
            instance_id="i-123", volume_id=None, size=None, volume_label=None)
237
237
        self.mocker.result(device_path)   # The attached device path from nova
238
238
        self.mocker.replay()
265
265
 
266
266
        persist = self.mocker.replace(hooks._persist_data)
267
267
        persist("storage/0", "i-123")
268
 
        nova_attach = self.mocker.replace(
269
 
            "util.StorageServiceUtil.attach_volume")
270
 
        nova_attach(
 
268
        self.storage_util = self.mocker.patch(StorageServiceUtil)
 
269
        self.storage_util.attach_volume(
271
270
            instance_id="i-123", volume_id=volume_id, size=None,
272
271
            volume_label=None)
273
272
        self.mocker.result(device_path)   # The attached device path from nova
300
299
            ("instance-id", "i-123"), ("size", size))
301
300
        persist = self.mocker.replace(hooks._persist_data)
302
301
        persist("storage/0", "i-123")
303
 
        nova_attach = self.mocker.replace(
304
 
            "util.StorageServiceUtil.attach_volume")
305
 
        nova_attach(
 
302
        self.storage_util = self.mocker.patch(StorageServiceUtil)
 
303
        self.storage_util.attach_volume(
306
304
            instance_id="i-123", volume_id=None, size=size, volume_label=None)
307
305
        self.mocker.result(device_path)   # The attached device path from nova
308
306
        self.mocker.replay()
347
345
        with open(persist_path, "w") as outfile:
348
346
            outfile.write(unicode(json.dumps(data, ensure_ascii=False)))
349
347
 
350
 
        nova_detach = self.mocker.replace(
351
 
            "util.StorageServiceUtil.detach_volume")
352
 
        nova_detach("i-123")
 
348
        self.storage_util = self.mocker.patch(StorageServiceUtil)
 
349
        self.storage_util.detach_volume("i-123")
353
350
        self.mocker.replay()
354
351
 
355
352
        hooks.block_storage_relation_departed()