def testAvailableCharacters(self): """ Tests that the Quest object has a static method that can return available characters for a user """ self.assertEqual(len(Character.available_characters_by_user(self.test_member)), 2) self.assertEqual(len(Character.available_characters_by_user(self.test_admin)), 1)
def create_quest(request, town_slug): """ View that allows members to create a quest """ town = get_object_or_404(Town, slug=town_slug) queryset = Character.available_characters_by_user(request.user) if len(queryset) < 1: return handle_error(request, u'You do not have any available characters.', town.get_absolute_url()) if request.method == 'POST': form = CreateQuestForm(request.POST, queryset=queryset) if form.is_valid(): quest = form.save(commit=False) quest.is_open = True quest.town = town quest.save() quest.set_initial_member(form.cleaned_data['character']) return HttpResponseRedirect(quest.get_absolute_url()) else: form = CreateQuestForm(queryset=queryset) context = { 'form' : form } return render_to_response("game/create-quest.html", context, RequestContext(request))
def join_quest(request, town_slug, quest_slug): """ View that allows members to join quests """ quest = get_object_or_404(Quest, slug=quest_slug, town__slug=town_slug) qs = Character.available_characters_by_user(request.user) if request.method == 'POST': form = QuestForm(request.POST, queryset=qs) if form.is_valid(): quest.add_character(form.cleaned_data['character']) return HttpResponseRedirect(quest.get_absolute_url()) else: form = QuestForm(queryset=qs) context = { 'form' : form } return render_to_response("game/join-quest.html", context, RequestContext(request))
def testCanLoadCharactersByUser(self): """ Ensures the static method correctly gets all characters for a user """ self.assertEqual(len(Character.approved_characters_by_user(self.test_member)), 2)