Esempio n. 1
0
def hash_tag_battle(request):
    """
    Simple view to get the hash tag battle by id then search for hash tags and
    compare typos in all the tweets
    :param request:
    :return:
    """
    if request.method == "POST":
        battle_id = request.POST.get("id")
        if battle_id:
            try:
                hash_tag_battle = HashTagBattle.objects.get(id=battle_id)
            except ObjectDoesNotExist:
                return HttpResponse("No hash tag battle found with id: %s" % battle_id, status=500)

            hash_tag, hash_tag_data = get_hash_tag_most_typos(hash_tag_battle)
            return_json = { 'winner': None, 'typo_data': {}}

            if hash_tag:
                return_json['winner'] = hash_tag.hash_tag

            for hash_tag in hash_tag_data:
                return_json['typo_data'][hash_tag.hash_tag] = hash_tag_data[hash_tag]

            return_json['start_date_time'] = str(hash_tag_battle.start_date_time)
            return_json['end_date_time'] = str(hash_tag_battle.end_date_time)

            return HttpResponse(json.dumps(return_json), status=200, content_type="application/json")
        else:
            return HttpResponse("No hash tag battle found with id: %s" % battle_id, status=500)

    else:
        return HttpResponse("Expected POST request", status= 500)
Esempio n. 2
0
    def test_get_hash_tag_battle_results(self):
        """
        Check that hash tag battle returns expected results
        :return:
        """
        hash_tag = "dogs"
        start_date = datetime.date()
        end_date = datetime.date()
        typos = get_hash_tag_most_typos(hash_tag, start_date, end_date)

        self.assertEqual(len(typos), 0)