def test_final_quest_results_view(self): u1 = self._get_player(1).get_extension(QuestUser) u2 = self._get_player(2).get_extension(QuestUser) r = Race.objects.create(name='rasa_buna', can_play=True) Formula.add('finalquest-ok', definition='points=50*({level}+1)/{level_users}') Formula.add('level-gold', definition='gold=0') Coin.add('points') Coin.add('gold') final = FinalQuest.objects.create(start=datetime.datetime.now(), end=datetime.datetime.now()) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) u1.current_level = 1 u1.race = r u1.current_quest = final u1.save() u2.current_level = 1 u2.race = r u2.current_quest = final u2.save() c = Client() admin = User.objects.create_superuser('admin', '*****@*****.**', 'admin') c.login(username='******', password='******') response = c.get('/cpanel/games/quest/final/results/') self.assertContains(response, 'testuser1') self.assertContains(response, 'testuser2')
def test_final_quest_results_view(self): u1 = self._get_player(1).get_extension(QuestUser) u2 = self._get_player(2).get_extension(QuestUser) r = Race.objects.create(name='rasa_buna', can_play=True) Formula.add('finalquest-ok', expression='points=50*({level}+1)/{level_users}') Formula.add('level-gold', expression='gold=0') Coin.add('points') Coin.add('gold') final = FinalQuest.objects.create(start=datetime.datetime.now(), end=datetime.datetime.now()) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) u1.current_level = 1; u1.race = r; u1.current_quest = final u1.save() u2.current_level = 1; u2.race = r; u2.current_quest = final u2.save() c = Client() admin = User.objects.create_superuser('admin', '*****@*****.**', 'admin') c.login(username='******', password='******') response = c.get('/cpanel/games/quest/final/results/') self.assertContains(response, 'testuser1') self.assertContains(response, 'testuser2')
def test_final_bonus(self): u1 = self._get_player(1).get_extension(QuestUser) u2 = self._get_player(2).get_extension(QuestUser) r = Race.objects.create(name='rasa_buna', can_play=True) Formula.add('finalquest-ok', definition='points=50*({level}+1)/{level_users}') Formula.add('level-gold', definition='gold=0') Coin.add('points') Coin.add('gold') final = FinalQuest.objects.create(start=datetime.datetime.now(), end=datetime.datetime.now()) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) u1.current_level = 1 u1.race = r u1.current_quest = final u1.save() u2.current_level = 1 u2.race = r u2.current_quest = final u2.save() final.give_level_bonus() u1 = QuestUser.objects.get(pk=u1.pk) self.assertEqual(u1.points, 50) u2 = QuestUser.objects.get(pk=u2.pk) self.assertEqual(u2.points, 50)
def test_final_bonus(self): u1 = self._get_player(1).get_extension(QuestUser) u2 = self._get_player(2).get_extension(QuestUser) r = Race.objects.create(name='rasa_buna', can_play=True) Formula.add('finalquest-ok', expression='points=50*({level}+1)/{level_users}') Formula.add('level-gold', expression='gold=0') Coin.add('points') Coin.add('gold') final = FinalQuest.objects.create(start=datetime.datetime.now(), end=datetime.datetime.now()) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) question = Question.objects.create(text='test', answer_type='F') final.questions.add(question) u1.current_level = 1; u1.race = r; u1.current_quest = final u1.save() u2.current_level = 1; u2.race = r; u2.current_quest = final u2.save() final.give_level_bonus() u1 = QuestUser.objects.get(pk=u1.pk) self.assertEqual(u1.points, 50) u2 = QuestUser.objects.get(pk=u2.pk) self.assertEqual(u2.points, 50)
def coin_top(cls, coin, now, stdout=sys.stdout): """ Calculate and record a new top for a coin """ coin_obj = Coin.get(coin) if not coin_obj: stdout.write('No such coin %s' % coin) return stdout.write(' Calculating coin %s top...' % coin) players = list(Player.objects.filter(race__can_play=True)) players.sort(lambda b, a: a.coins.get(coin) - b.coins.get(coin)) for i, p in enumerate(players): hs = NewHistory.record(p, now, relative_to=coin_obj) hs.position, hs.points = i + 1, p.coins.get(coin_obj.name) hs.save() stdout.write('\n')
def topcoin(request, coin): coin_obj = Coin.get(coin) if coin_obj is None: raise Http404 pageno = request.GET.get('page', 0) topcoin_qs = NewHistory.get_coin_top(coin_obj) paginator = Paginator(topcoin_qs, PERPAGE) try: pageno = int(pageno) topcoin = paginator.page(pageno) except (EmptyPage, InvalidPage, ValueError): pageno = 1 topcoin = paginator.page(pageno) return render_to_response('top/coin_top.html', {'top': topcoin, 'coin': coin_obj, 'page_start': (pageno - 1) * PERPAGE}, context_instance=RequestContext(request))
def topcoin(request, coin): coin_obj = Coin.get(coin) if coin_obj is None: raise Http404 pageno = request.GET.get('page', 0) topcoin_qs = NewHistory.get_coin_top(coin_obj) paginator = Paginator(topcoin_qs, PERPAGE) try: pageno = int(pageno) topcoin = paginator.page(pageno) except (EmptyPage, InvalidPage, ValueError): pageno = 1 topcoin = paginator.page(pageno) return render_to_response('top/coin_top.html', { 'top': topcoin, 'coin': coin_obj, 'page_start': (pageno - 1) * PERPAGE }, context_instance=RequestContext(request))
def get_coin_position(cls, coin, user): coin = Coin.get(coin) return NewHistory.get_obj_position(user, relative_to=coin)