示例#1
0
 def test_add_size_zero(self, fake_size):
     """
     Test that when specifying size zero for the image to add,
     the actual size of the image is returned.
     """
     expected_image_id = str(uuid.uuid4())
     expected_size = FIVE_KB
     expected_contents = "*" * expected_size
     hash_code = hashlib.md5(expected_contents)
     expected_checksum = hash_code.hexdigest()
     fake_size.__get__ = mock.Mock(return_value=expected_size)
     with mock.patch('hashlib.md5') as md5:
         md5.return_value = hash_code
         expected_location = format_location(
             VMWARE_DATASTORE_CONF['vmware_server_host'],
             VMWARE_DATASTORE_CONF['vmware_store_image_dir'],
             expected_image_id,
             VMWARE_DATASTORE_CONF['vmware_datacenter_path'],
             VMWARE_DATASTORE_CONF['vmware_datastore_name'])
         image = six.StringIO(expected_contents)
         with mock.patch('httplib.HTTPConnection') as HttpConn:
             HttpConn.return_value = FakeHTTPConnection()
             location, size, checksum, _ = self.store.add(
                 expected_image_id, image, 0)
     self.assertEqual(unit_utils.sort_url_by_qs_keys(expected_location),
                      unit_utils.sort_url_by_qs_keys(location))
     self.assertEqual(expected_size, size)
     self.assertEqual(expected_checksum, checksum)
 def test_add_size_zero(self, fake_size):
     """
     Test that when specifying size zero for the image to add,
     the actual size of the image is returned.
     """
     expected_image_id = str(uuid.uuid4())
     expected_size = FIVE_KB
     expected_contents = "*" * expected_size
     hash_code = hashlib.md5(expected_contents)
     expected_checksum = hash_code.hexdigest()
     fake_size.__get__ = mock.Mock(return_value=expected_size)
     with mock.patch('hashlib.md5') as md5:
         md5.return_value = hash_code
         expected_location = format_location(
             VMWARE_DATASTORE_CONF['vmware_server_host'],
             VMWARE_DATASTORE_CONF['vmware_store_image_dir'],
             expected_image_id,
             VMWARE_DATASTORE_CONF['vmware_datacenter_path'],
             VMWARE_DATASTORE_CONF['vmware_datastore_name'])
         image = six.StringIO(expected_contents)
         with mock.patch('httplib.HTTPConnection') as HttpConn:
             HttpConn.return_value = FakeHTTPConnection()
             location, size, checksum, _ = self.store.add(expected_image_id,
                                                          image, 0)
     self.assertEqual(unit_utils.sort_url_by_qs_keys(expected_location),
                      unit_utils.sort_url_by_qs_keys(location))
     self.assertEqual(expected_size, size)
     self.assertEqual(expected_checksum, checksum)
示例#3
0
    def test_index_carries_query_parameters(self):
        url = '/v2/tasks?limit=10&sort_key=id&sort_dir=asc'
        request = webob.Request.blank(url)
        response = webob.Response(request=request)
        task_fixtures = [f for f in self.fixtures]
        result = {'tasks': task_fixtures, 'next_marker': UUID2}
        self.serializer.index(response, result)
        output = jsonutils.loads(response.body)

        expected_url = '/v2/tasks?limit=10&sort_dir=asc&sort_key=id'
        self.assertEqual(unit_test_utils.sort_url_by_qs_keys(expected_url),
                         unit_test_utils.sort_url_by_qs_keys(output['first']))

        expect_next = '/v2/tasks?limit=10&marker=%s&sort_dir=asc&sort_key=id'
        self.assertEqual(
            unit_test_utils.sort_url_by_qs_keys(expect_next % UUID2),
            unit_test_utils.sort_url_by_qs_keys(output['next']))
    def test_index_carries_query_parameters(self):
        url = '/v2/tasks?limit=10&sort_key=id&sort_dir=asc'
        request = webob.Request.blank(url)
        response = webob.Response(request=request)
        task_fixtures = [f for f in self.fixtures]
        result = {'tasks': task_fixtures, 'next_marker': UUID2}
        self.serializer.index(response, result)
        output = jsonutils.loads(response.body)

        expected_url = '/v2/tasks?limit=10&sort_dir=asc&sort_key=id'
        self.assertEqual(unit_test_utils.sort_url_by_qs_keys(expected_url),
                         unit_test_utils.sort_url_by_qs_keys(output['first']))

        expect_next = '/v2/tasks?limit=10&marker=%s&sort_dir=asc&sort_key=id'
        self.assertEqual(unit_test_utils.sort_url_by_qs_keys(
                         expect_next % UUID2),
                         unit_test_utils.sort_url_by_qs_keys(output['next']))
    def prime_request(self, method, url, in_body, in_headers,
                      out_code, out_body, out_headers):
        if not url.startswith('/'):
            url = '/' + url
        url = unit_test_utils.sort_url_by_qs_keys(url)
        hkeys = sorted(in_headers.keys())
        hashable = (method, url, in_body, ' '.join(hkeys))

        flat_headers = []
        for key in out_headers:
            flat_headers.append((key, out_headers[key]))

        self.reqs[hashable] = (out_code, out_body, flat_headers)
示例#6
0
    def prime_request(self, method, url, in_body, in_headers, out_code,
                      out_body, out_headers):
        if not url.startswith('/'):
            url = '/' + url
        url = unit_test_utils.sort_url_by_qs_keys(url)
        hkeys = sorted(in_headers.keys())
        hashable = (method, url, in_body, ' '.join(hkeys))

        flat_headers = []
        for key in out_headers:
            flat_headers.append((key, out_headers[key]))

        self.reqs[hashable] = (out_code, out_body, flat_headers)
    def request(self, method, url, body, headers):
        self.count += 1
        url = unit_test_utils.sort_url_by_qs_keys(url)
        hkeys = sorted(headers.keys())
        hashable = (method, url, body, ' '.join(hkeys))

        if hashable not in self.reqs:
            options = []
            for h in self.reqs:
                options.append(repr(h))

            raise Exception('No such primed request: %s "%s"\n'
                            '%s\n\n'
                            'Available:\n'
                            '%s'
                            % (method, url, hashable, '\n\n'.join(options)))
        self.last_req = hashable
示例#8
0
    def request(self, method, url, body, headers):
        self.count += 1
        url = unit_test_utils.sort_url_by_qs_keys(url)
        hkeys = sorted(headers.keys())
        hashable = (method, url, body, ' '.join(hkeys))

        if hashable not in self.reqs:
            options = []
            for h in self.reqs:
                options.append(repr(h))

            raise Exception('No such primed request: %s "%s"\n'
                            '%s\n\n'
                            'Available:\n'
                            '%s' %
                            (method, url, hashable, '\n\n'.join(options)))
        self.last_req = hashable