async def test_access_to_oauth_resource_post_grade2_fail(self): """ Check post_grade edX LTI2 functionality """ uri = (u'https://example.edu/courses/MITx/ODL_ENG/2014_T1/xblock/' u'i4x:;_;_MITx;_ODL_ENG;_lti;' u'_94173d3e79d145fd8ec2e83f15836ac8/handler_noauth' u'/lti_2_0_result_rest_handler/user/' u'008437924c9852377e8994829aaac7a1') def request_callback(request, cburi, headers): # pylint: disable=unused-argument """ Mock expected response. """ return 400, headers, self.expected_response httpretty.register_uri(httpretty.PUT, uri, body=request_callback) consumers = self.consumers url = 'http://localhost/initial?' new_url = self.generate_launch_request(consumers, url) ret = await self.app_client.get(new_url) self.assertFalse(self.has_exception()) ret = await self.app_client.get("/post_grade2/1.0") self.assertTrue(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "error")
async def test_access_to_oauth_resource_post_grade(self): """ Check post_grade functionality. """ # pylint: disable=maybe-no-member uri = (u'https://example.edu/courses/MITx/ODL_ENG/2014_T1/xblock/' u'i4x:;_;_MITx;_ODL_ENG;_lti;' u'_94173d3e79d145fd8ec2e83f15836ac8/handler_noauth' u'/grade_handler') httpretty.register_uri(httpretty.POST, uri, body=self.request_callback) consumers = self.consumers url = 'http://localhost/initial?' new_url = self.generate_launch_request(consumers, url) ret = await self.app_client.get(new_url) self.assertFalse(self.has_exception()) ret = await self.app_client.get("/post_grade/1.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=True") ret = await self.app_client.get("/post_grade/2.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=False")
async def test_access_to_oauth_resource_post_grade2(self): """ Check post_grade edX LTI2 functionality. """ uri = (u'https://example.edu/courses/MITx/ODL_ENG/2014_T1/xblock/' u'i4x:;_;_MITx;_ODL_ENG;_lti;' u'_94173d3e79d145fd8ec2e83f15836ac8/handler_noauth' u'/lti_2_0_result_rest_handler/user/' u'008437924c9852377e8994829aaac7a1') httpretty.register_uri(httpretty.PUT, uri, body=self.request_callback) consumers = self.consumers url = 'http://localhost/initial?' new_url = self.generate_launch_request(consumers, url) ret = await self.app_client.get(new_url) self.assertFalse(self.has_exception()) ret = await self.app_client.get("/post_grade2/1.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=True") ret = await self.app_client.get("/post_grade2/2.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=False")
async def test_access_to_oauth_resource_post_grade_fail(self): """ Check post_grade functionality fails on invalid response. """ # pylint: disable=maybe-no-member uri = (u'https://example.edu/courses/MITx/ODL_ENG/2014_T1/xblock/' u'i4x:;_;_MITx;_ODL_ENG;_lti;' u'_94173d3e79d145fd8ec2e83f15836ac8/handler_noauth' u'/grade_handler') def request_callback(request, cburi, headers): # pylint: disable=unused-argument """ Mock error response callback. """ return 200, headers, "wrong_response" httpretty.register_uri(httpretty.POST, uri, body=request_callback) consumers = self.consumers url = 'http://localhost/initial?' new_url = self.generate_launch_request(consumers, url) ret = await self.app_client.get(new_url) self.assertFalse(self.has_exception()) self.assertFalse(self.has_exception()) ret = await self.app_client.get("/post_grade/1.0") self.assertTrue(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "error")
def test_get(self): httpretty.register_uri(httpretty.GET, "http://swagger.py/swagger-test/pet", body='[]') resp = self.uut.pet.listPets().result() self.assertEqual([], resp)
def test_delete(self): httpretty.register_uri(httpretty.DELETE, "http://swagger.py/swagger-test/pet/1234", status=204) resp = self.uut.pet.deletePet(petId=1234).result() self.assertEqual(None, resp)
def test_multiple(self): httpretty.register_uri(httpretty.GET, "http://swagger.py/swagger-test/pet/find", body='[]') resp = self.uut.pet.findPets(species=['cat', 'dog']).result() self.assertEqual([], resp) self.assertEqual({'species': ['cat', 'dog']}, httpretty.last_request().querystring)
def test_post_check_headers(self): body = {"id": "test_id"} httpretty.register_uri(httpretty.POST, "http://localhost/test_http?", body='[]', content_type='text/json') resp = self.client.simple1.createAsterikInfoHttp(body=body).result() self.assertEqual('application/json', httpretty.last_request().headers['content-type']) self.assertEqual('{"id": "test_id"}', httpretty.last_request().body) self.assertEqual([], resp)
def test_response_body_is_shown_in_error_message(self): httpretty.register_uri(httpretty.GET, "http://swagger.py/swagger-test/pet", body='{"success": false}', status=500) msg = '500 Server Error: Internal Server Error' try: self.uut.pet.listPets().result() except IOError as e: self.assertEqual(msg + ' : {"success": false}', e.args[0])
def test_headers(self): self.uut = SwaggerClient.from_resource_listing(self.resource_listing) httpretty.register_uri(httpretty.GET, "http://swagger.py/swagger-test/pet", body='[]') self.uut.pet.listPets(_request_options={ 'headers': { 'foo': 'bar' } }).result() self.assertEqual('bar', httpretty.last_request().headers['foo'])
def test_post_binary_data(self): httpretty.register_uri( httpretty.POST, 'http://swagger.py/swagger-test/pet/1234/vaccine', status=204) temporary_file = tempfile.TemporaryFile() temporary_file.write('\xff\xd8') temporary_file.seek(0) resp = self.uut.pet.postVaccine(vaccineFile=temporary_file, petId=1234).result() self.assertEqual(None, resp)
def test_post_and_optional_params(self): httpretty.register_uri(httpretty.POST, "http://swagger.py/swagger-test/pet", status=200, body='"Spark is born"') resp = self.uut.pet.createPet(name='Sparky', birthday=datetime.date(2014, 1, 2)).result() self.assertEqual('Spark is born', resp) self.assertEqual({ 'name': ['Sparky'], 'birthday': ['2014-01-02'] }, httpretty.last_request().querystring) resp = self.uut.pet.createPet(name='Sparky').result() self.assertEqual('Spark is born', resp) self.assertEqual({'name': ['Sparky']}, httpretty.last_request().querystring)
async def test_access_to_oauth_resource_post_grade_fix_url(self): """ Make sure URL remap works for edX vagrant stack. """ # pylint: disable=maybe-no-member uri = 'https://localhost:8000/dev_stack' httpretty.register_uri(httpretty.POST, uri, body=self.request_callback) url = 'http://localhost/initial?' new_url = self.generate_launch_request( self.consumers, url, lit_outcome_service_url=uri ) ret = await self.app_client.get(new_url) self.assertFalse(self.has_exception()) ret = await self.app_client.get("/post_grade/1.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=True") ret = await self.app_client.get("/post_grade/2.0") self.assertFalse(self.has_exception()) self.assertEqual(ret.data.decode('utf-8'), "grade=False")
def setUp(self): httpretty.register_uri(httpretty.GET, "http://localhost/api-docs", body=open('test-data/1.2/simple/resources.json', 'r').read()) httpretty.register_uri(httpretty.GET, "http://localhost/api-docs/simple", body=open('test-data/1.2/simple/simple.json', 'r').read()) httpretty.register_uri(httpretty.GET, "http://localhost/api-docs/simple1", body=open('test-data/1.2/simple/simple1.json', 'r').read()) # Default handlers for all swagger.py access self.client = SwaggerClient.from_url(u'http://localhost/api-docs')