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)
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)