def test_single_emoji_contains_expected_fields(self): data = EmojiSerializer(self.emoji_pizza).data self.assertEqual( set(data.keys()), set([ 'sub_category', 'shortened_codepoint', 'codepoint', 'surrogate_pairs', 'keywords', 'main_category', 'shortcode' ]))
def test_get_all_emoji(self): # API response response = client.get(reverse(self.endpoint)) # Get data from db emoji = Emoji.objects.all() serializer = EmojiSerializer(emoji, many=True) self.assertEqual(len(response.data.get('results')), len(serializer.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_all_recent_emoji(self): # API response url = reverse_querystring(self.endpoint, query_kwargs={'recent': True}) response = client.get(url) # Get data from db emoji = Emoji.objects.filter(shortcode__startswith='\u229b') serializer = EmojiSerializer(emoji, many=True) self.assertEqual(len(response.data.get('results')), len(serializer.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_limited_emoji(self): limit = 3 # API response url = reverse_querystring(self.endpoint, query_kwargs={'limit': limit}) response = client.get(url) # Get data from db emoji = Emoji.objects.all()[:limit] serializer = EmojiSerializer(emoji, many=True) self.assertEqual(len(response.data.get('results')), len(serializer.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_emoji_by_sub_category(self): # API response url = reverse_querystring( self.endpoint, query_kwargs={'sub_category': self.sub_category_fruit}) response = client.get(url) # Get data from db emoji = Emoji.objects.filter( sub_category__name__icontains=self.sub_category_fruit) serializer = EmojiSerializer(emoji, many=True) self.assertEqual(len(response.data.get('results')), len(serializer.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_emoji_by_querystring(self): query_string = 'green' # API response url = reverse_querystring(self.endpoint, query_kwargs={'q': query_string}) response = client.get(url) # Get data from db query_filter = Q( Q(shortcode__icontains=query_string) | Q(codepoint__icontains=query_string) | Q(keywords__name__icontains=query_string)) emoji = Emoji.objects.filter(query_filter) serializer = EmojiSerializer(emoji, many=True) self.assertEqual(len(response.data.get('results')), len(serializer.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_serialize_multiple_emoji(self): data = EmojiSerializer([self.emoji_pizza, self.emoji_rabbit], many=True).data self.assertEqual(len(data), 2)
def test_single_emoji_keywords(self): data = EmojiSerializer(self.emoji_pizza).data self.assertEqual(set(data.get('keywords')), set(['cheesy', 'pizza']))