

@mock.patch('glance_store._drivers.swift.utils.is_multiple_swift_store_accounts_enabled', mock.Mock(return_value=True))
def test_add_auth_url_variations(self):
    '\n        Test that we can add an image via the swift backend with\n        a variety of different auth_address values\n        '
    conf = copy.deepcopy(SWIFT_CONF)
    self.config(**conf)
    variations = {
        'store_4': 'swift+config://store_4/glance/%s',
        'store_5': 'swift+config://store_5/glance/%s',
        'store_6': 'swift+config://store_6/glance/%s',
    }
    for (variation, expected_location) in variations.items():
        image_id = str(uuid.uuid4())
        expected_location = (expected_location % image_id)
        expected_swift_size = FIVE_KB
        expected_swift_contents = (b'*' * expected_swift_size)
        expected_checksum = hashlib.md5(expected_swift_contents).hexdigest()
        image_swift = six.BytesIO(expected_swift_contents)
        global SWIFT_PUT_OBJECT_CALLS
        SWIFT_PUT_OBJECT_CALLS = 0
        conf['default_swift_reference'] = variation
        self.config(**conf)
        moves.reload_module(swift)
        self.mock_keystone_client()
        self.store = Store(self.conf)
        self.store.configure()
        (loc, size, checksum, _) = self.store.add(image_id, image_swift, expected_swift_size)
        self.assertEqual(expected_location, loc)
        self.assertEqual(expected_swift_size, size)
        self.assertEqual(expected_checksum, checksum)
        self.assertEqual(SWIFT_PUT_OBJECT_CALLS, 1)
        loc = location.get_location_from_uri(expected_location, conf=variation.conf)
        (new_image_swift, new_image_size) = self.store.get(loc)
        new_image_contents = b''.join([chunk for chunk in new_image_swift])
        new_image_swift_size = len(new_image_swift)
        self.assertEqual(expected_swift_contents, new_image_contents)
        self.assertEqual(expected_swift_size, new_image_swift_size)

dataset/ETHPy150Open openstack/glance_store/glance_store/tests/unit/test_swift_store.py SwiftTests.test_add_auth_url_variations/VarMisuse@258/492 `self`->`variation`