def read(self, request): if (Media.URL_TAG in request.GET) and (Mood.URL_TAG in request.GET): # check if input is string myMood = request.GET[Mood.URL_TAG] myContent = request.GET[Media.URL_TAG] if not (myMood in Mood.MOOD_TYPES): return ApiDataProvider.returnError(ContentHandler._TAG + 'bad mood input') if not (myContent in Media.CONTENT_TYPES): return ApiDataProvider.returnError(ContentHandler._TAG + 'bad content input') # check if input is within bounds if not ((myMood in Mood.MOOD_TYPES) and (myContent in Media.CONTENT_TYPES)): return ApiDataProvider.returnError(ContentHandler._TAG + 'input out of bounds') # save guard try: return ApiDataProvider.getContent(myMood, myContent) except Exception: return ApiDataProvider.returnError(ContentHandler._TAG + 'unexpected error') else: return ApiDataProvider.returnError(ContentHandler._TAG + 'bad request')
def read(self, request): if (Media.URL_TAG in request.GET) and (Mood.URL_TAG in request.GET): # check if input is string myMood = request.GET[Mood.URL_TAG] myContent = request.GET[Media.URL_TAG] if not (myMood in Mood.MOOD_TYPES): return ApiDataProvider.returnError(ContentHandler._TAG + 'bad mood input') if not (myContent in Media.CONTENT_TYPES): return ApiDataProvider.returnError(ContentHandler._TAG + 'bad content input') # check if input is within bounds if not((myMood in Mood.MOOD_TYPES) and (myContent in Media.CONTENT_TYPES)): return ApiDataProvider.returnError(ContentHandler._TAG + 'input out of bounds') # save guard try: return ApiDataProvider.getContent(myMood, myContent) except Exception: return ApiDataProvider.returnError(ContentHandler._TAG + 'unexpected error') else : return ApiDataProvider.returnError(ContentHandler._TAG + 'bad request')
def test_getContent_outofboundsinput(self): with self.assertRaises(AssertionError) as err: ApiDataProvider.getContent(4, Media.PICTURE) with self.assertRaises(AssertionError) as err: ApiDataProvider.getContent(Mood.HAPPY, 4)
def test_getContent_baddatabase_nopictures(self): Picture.objects.all().delete() json_str = ApiDataProvider.getContent(Mood.HAPPY, Media.PICTURE) self.assertTrue(ApiDataProvider.STATUS_ERROR in json_str)
def test_getContent_emptyBoth(self): json_str = ApiDataProvider.getContent(Mood.HAPPY, Media.TEXT) self.assertTrue(ApiDataProvider.STATUS_ERROR in json_str)
def test_getContent_emptyMood(self): json_str = ApiDataProvider.getContent(Mood.EXCITED, Media.PICTURE) self.assertTrue(ApiDataProvider.STATUS_ERROR in json_str)
def test_getContent_normalsituation(self): json_str = ApiDataProvider.getContent(Mood.HAPPY, Media.PICTURE) self.assertTrue(json_str[ApiDataProvider.PARAM_URL] in self.websites) mid_arr = [self.m1.id, self.m2.id, self.m3.id] self.assertTrue(json_str[ApiDataProvider.MEDIA_ID] in mid_arr)