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')
示例#3
0
 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)
示例#4
0
 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)
示例#5
0
 def test_getContent_emptyBoth(self):
     json_str = ApiDataProvider.getContent(Mood.HAPPY, Media.TEXT)
     self.assertTrue(ApiDataProvider.STATUS_ERROR in json_str)
示例#6
0
 def test_getContent_emptyMood(self):
     json_str = ApiDataProvider.getContent(Mood.EXCITED, Media.PICTURE)
     self.assertTrue(ApiDataProvider.STATUS_ERROR in json_str)
示例#7
0
 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)