def _bounce_id(self, test_id): class BounceController(object): def show(self, req, id): return id res_ext = extensions.ResourceExtension('bounce', BounceController()) manager = StubExtensionManager(res_ext) app = router.APIRouter(manager) request = webob.Request.blank("/fake/bounce/%s" % test_id) response = request.get_response(app) return response.body
def test_get_extension_json(self): app = router.APIRouter() request = webob.Request.blank("/fake/extensions/FOXNSOX") response = request.get_response(app) self.assertEqual(200, response.status_int) data = jsonutils.loads(response.body) self.assertEqual( { "namespace": "http://www.fox.in.socks/api/ext/pie/v1.0", "name": "Fox In Socks", "updated": "2011-01-22T13:25:27-06:00", "description": "The Fox In Socks Extension.", "alias": "FOXNSOX", "links": [] }, data['extension'])
def test_get_extension_xml(self): app = router.APIRouter() request = webob.Request.blank("/fake/extensions/FOXNSOX") request.accept = "application/xml" response = request.get_response(app) self.assertEqual(200, response.status_int) xml = response.body root = etree.XML(xml) self.assertEqual(NS, root.tag.split('extension')[0]) self.assertEqual('FOXNSOX', root.get('alias')) self.assertEqual('Fox In Socks', root.get('name')) self.assertEqual('http://www.fox.in.socks/api/ext/pie/v1.0', root.get('namespace')) self.assertEqual('2011-01-22T13:25:27-06:00', root.get('updated')) self.assertEqual('The Fox In Socks Extension.', root.findtext('{0}description'.format(NS))) xmlutil.validate_schema(root, 'extension')
def test_list_extensions_json(self): app = router.APIRouter() request = webob.Request.blank("/fake/extensions") response = request.get_response(app) self.assertEqual(200, response.status_int) # Make sure we have all the extensions, extra extensions being OK. data = jsonutils.loads(response.body) names = [ str(x['name']) for x in data['extensions'] if str(x['name']) in self.ext_list ] names.sort() self.assertEqual(self.ext_list, names) # Ensure all the timestamps are valid according to iso8601 for ext in data['extensions']: iso8601.parse_date(ext['updated']) # Make sure that at least Fox in Sox is correct. (fox_ext, ) = [ x for x in data['extensions'] if x['alias'] == 'FOXNSOX' ] self.assertEqual( { 'namespace': 'http://www.fox.in.socks/api/ext/pie/v1.0', 'name': 'Fox In Socks', 'updated': '2011-01-22T13:25:27-06:00', 'description': 'The Fox In Socks Extension.', 'alias': 'FOXNSOX', 'links': [] }, fox_ext) for ext in data['extensions']: url = '/fake/extensions/%s' % ext['alias'] request = webob.Request.blank(url) response = request.get_response(app) output = jsonutils.loads(response.body) self.assertEqual(ext['alias'], output['extension']['alias'])
def test_list_extensions_xml(self): app = router.APIRouter() request = webob.Request.blank("/fake/extensions") request.accept = "application/xml" response = request.get_response(app) self.assertEqual(200, response.status_int) root = etree.XML(response.body) self.assertEqual(NS, root.tag.split('extensions')[0]) # Make sure we have all the extensions, extras extensions being OK. exts = root.findall('{0}extension'.format(NS)) self.assertGreaterEqual(len(exts), len(self.ext_list)) # Make sure that at least Fox in Sox is correct. (fox_ext, ) = [x for x in exts if x.get('alias') == 'FOXNSOX'] self.assertEqual('Fox In Socks', fox_ext.get('name')) self.assertEqual('http://www.fox.in.socks/api/ext/pie/v1.0', fox_ext.get('namespace')) self.assertEqual('2011-01-22T13:25:27-06:00', fox_ext.get('updated')) self.assertEqual('The Fox In Socks Extension.', fox_ext.findtext('{0}description'.format(NS))) xmlutil.validate_schema(root, 'extensions')
def setUp(self): super(MiperRouterTestCase, self).setUp() # NOTE(vish): versions is just returning text so, no need to stub. self.app = router.APIRouter()
def test_get_non_existing_extension_json(self): app = router.APIRouter() request = webob.Request.blank("/fake/extensions/4") response = request.get_response(app) self.assertEqual(404, response.status_int)