예제 #1
0
    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')
예제 #2
0
파일: tests.py 프로젝트: ArmandNM/wouso
    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')
예제 #3
0
    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)
예제 #4
0
파일: tests.py 프로젝트: ArmandNM/wouso
    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)
예제 #5
0
파일: models.py 프로젝트: ArmandNM/wouso
    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')
예제 #6
0
    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')
예제 #7
0
파일: views.py 프로젝트: ArmandNM/wouso
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))
예제 #8
0
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))
예제 #9
0
파일: models.py 프로젝트: ArmandNM/wouso
 def get_coin_position(cls, coin, user):
     coin = Coin.get(coin)
     return NewHistory.get_obj_position(user, relative_to=coin)
예제 #10
0
 def get_coin_position(cls, coin, user):
     coin = Coin.get(coin)
     return NewHistory.get_obj_position(user, relative_to=coin)