Esempio n. 1
0
    def test_microversion_406_handling(self):
        body = ''
        status = '400 Bad Request'
        title = ''

        # Not a 406, no version info required.
        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertNotIn('max_version', result['errors'][0])
        self.assertNotIn('min_version', result['errors'][0])

        # A 406 but not because of microversions (microversion
        # parsing was successful), no version info
        # required.
        status = '406 Not Acceptable'
        version_obj = microversion.parse_version_string('2.3')
        self.environ[microversion.MICROVERSION_ENVIRON] = version_obj

        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertNotIn('max_version', result['errors'][0])
        self.assertNotIn('min_version', result['errors'][0])

        # Microversion parsing failed, status is 406, send version info.
        del self.environ[microversion.MICROVERSION_ENVIRON]

        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertEqual(microversion.max_version_string(),
                         result['errors'][0]['max_version'])
        self.assertEqual(microversion.min_version_string(),
                         result['errors'][0]['min_version'])
Esempio n. 2
0
    def test_microversion_406_handling(self):
        body = ''
        status = '400 Bad Request'
        title = ''

        # Not a 406, no version info required.
        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertNotIn('max_version', result['errors'][0])
        self.assertNotIn('min_version', result['errors'][0])

        # A 406 but not because of microversions (microversion
        # parsing was successful), no version info
        # required.
        status = '406 Not Acceptable'
        version_obj = microversion.parse_version_string('2.3')
        self.environ[microversion.MICROVERSION_ENVIRON] = version_obj

        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertNotIn('max_version', result['errors'][0])
        self.assertNotIn('min_version', result['errors'][0])

        # Microversion parsing failed, status is 406, send version info.
        del self.environ[microversion.MICROVERSION_ENVIRON]

        result = util.json_error_formatter(
            body, status, title, self.environ)
        self.assertEqual(microversion.max_version_string(),
                         result['errors'][0]['max_version'])
        self.assertEqual(microversion.min_version_string(),
                         result['errors'][0]['min_version'])
Esempio n. 3
0
 def test_microversion_sequential(self):
     for method_name, method_list in microversion.VERSIONED_METHODS.items():
         previous_min_version = method_list[0][0]
         for method in method_list[1:]:
             previous_min_version = microversion.parse_version_string(
                 '%s.%s' % (previous_min_version.major,
                            previous_min_version.minor - 1))
             self.assertEqual(previous_min_version, method[1],
                 "The microversions aren't sequential in the mehtod %s" %
                 method_name)
             previous_min_version = method[0]
 def test_microversion_sequential(self):
     for method_name, method_list in microversion.VERSIONED_METHODS.items():
         previous_min_version = method_list[0][0]
         for method in method_list[1:]:
             previous_min_version = microversion.parse_version_string(
                 '%s.%s' % (previous_min_version.major,
                            previous_min_version.minor - 1))
             self.assertEqual(previous_min_version, method[1],
                 "The microversions aren't sequential in the mehtod %s" %
                 method_name)
             previous_min_version = method[0]
Esempio n. 5
0
 def test_raise_keyerror_out_of_date_version_string(self):
     version_obj = microversion.parse_version_string('1.4')
     self.req.environ['placement.microversion'] = version_obj
     self.assertRaises(KeyError,
                       microversion.raise_http_status_code_if_not_version,
                       self.req, 999, '1.5')
Esempio n. 6
0
 def test_raise_405_out_of_date_version_max(self):
     version_obj = microversion.parse_version_string('1.4')
     self.req.environ['placement.microversion'] = version_obj
     self.assertRaises(webob.exc.HTTPMethodNotAllowed,
                       microversion.raise_http_status_code_if_not_version,
                       self.req, 405, (1, 2), '1.3')
Esempio n. 7
0
 def test_raise_keyerror_out_of_date_version_string(self):
     version_obj = microversion.parse_version_string('1.4')
     self.req.environ['placement.microversion'] = version_obj
     self.assertRaises(KeyError,
          microversion.raise_http_status_code_if_not_version,
          self.req, 999, '1.5')
Esempio n. 8
0
 def test_raise_405_out_of_date_version_max(self):
     version_obj = microversion.parse_version_string('1.4')
     self.req.environ['placement.microversion'] = version_obj
     self.assertRaises(webob.exc.HTTPMethodNotAllowed,
          microversion.raise_http_status_code_if_not_version,
          self.req, 405, (1, 2), '1.3')