def test_add_no_container_and_create(self): """ Tests that adding an image with a non-existing container creates the container automatically if flag is set """ options = SWIFT_OPTIONS.copy() options['swift_store_create_container_on_put'] = 'True' options['swift_store_container'] = 'noexist' expected_image_id = 42 expected_swift_size = FIVE_KB expected_swift_contents = "*" * expected_swift_size expected_checksum = hashlib.md5(expected_swift_contents).hexdigest() expected_location = format_swift_location( options['swift_store_user'], options['swift_store_key'], options['swift_store_auth_address'], options['swift_store_container'], expected_image_id) image_swift = StringIO.StringIO(expected_swift_contents) location, size, checksum = SwiftBackend.add(42, image_swift, options) self.assertEquals(expected_location, location) self.assertEquals(expected_swift_size, size) self.assertEquals(expected_checksum, checksum) url_pieces = urlparse.urlparse(expected_location) new_image_swift = SwiftBackend.get(url_pieces) new_image_contents = new_image_swift.getvalue() new_image_swift_size = new_image_swift.len self.assertEquals(expected_swift_contents, new_image_contents) self.assertEquals(expected_swift_size, new_image_swift_size)
def test_add(self): """Test that we can add an image via the swift backend""" expected_image_id = 42 expected_swift_size = FIVE_KB expected_swift_contents = "*" * expected_swift_size expected_checksum = hashlib.md5(expected_swift_contents).hexdigest() expected_location = format_swift_location( SWIFT_OPTIONS['swift_store_user'], SWIFT_OPTIONS['swift_store_key'], SWIFT_OPTIONS['swift_store_auth_address'], SWIFT_OPTIONS['swift_store_container'], expected_image_id) image_swift = StringIO.StringIO(expected_swift_contents) location, size, checksum = SwiftBackend.add(42, image_swift, SWIFT_OPTIONS) self.assertEquals(expected_location, location) self.assertEquals(expected_swift_size, size) self.assertEquals(expected_checksum, checksum) url_pieces = urlparse.urlparse(expected_location) new_image_swift = SwiftBackend.get(url_pieces) new_image_contents = new_image_swift.getvalue() new_image_swift_size = new_image_swift.len self.assertEquals(expected_swift_contents, new_image_contents) self.assertEquals(expected_swift_size, new_image_swift_size)