Example #1
0
 def setUp(self):
     super(ChallengeTestCase, self).setUp()
     self.user = User.objects.create(username='******')
     self.user.save()
     self.chall_user = self.user.get_profile().get_extension(ChallengeUser)
     self.user2 = User.objects.create(username='******')
     self.user2.save()
     self.chall_user2 = self.user2.get_profile().get_extension(ChallengeUser)
     scoring.setup_scoring()
     ChallengeGame.get_instance().save()
Example #2
0
 def setUp(self):
     super(ChallengeTestCase, self).setUp()
     self.user = User.objects.create(username='******')
     self.user.save()
     self.chall_user = self.user.get_profile().get_extension(ChallengeUser)
     self.user2 = User.objects.create(username='******')
     self.user2.save()
     self.chall_user2 = self.user2.get_profile().get_extension(ChallengeUser)
     scoring.setup_scoring()
     ChallengeGame.get_instance().save()
Example #3
0
    def setUp(self):
        super(ChallengeApi, self).setUp()
        Challenge.LIMIT = 5
        self.user = User.objects.create_user('_test', '', password='******')
        self.client.login(username='******', password='******')

        self.user2 = User.objects.create_user('_test2', '', password='******')
        self.challuser = self.user.get_profile().get_extension(ChallengeUser)
        self.challuser2 = self.user2.get_profile().get_extension(ChallengeUser)
        ChallengeGame.get_instance().save()
Example #4
0
    def setUp(self):
        super(ChallengeApi, self).setUp()
        Challenge.LIMIT = 5
        self.user = User.objects.create_user('_test', '', password='******')
        self.client.login(username='******', password='******')

        self.user2 = User.objects.create_user('_test2', '', password='******')
        self.challuser = self.user.get_profile().get_extension(ChallengeUser)
        self.challuser2 = self.user2.get_profile().get_extension(ChallengeUser)
        ChallengeGame.get_instance().save()
Example #5
0
    def test_challenges_played_today_activity(self):
        player = self._get_player()
        Artifact.objects.create(group=Artifact.DEFAULT(),
                                name='ach-chall-10-a-day')
        for i in range(1, 10):
            timestamp = datetime.now()
            if (i % 4) == 0:
                Activity.objects.create(timestamp=timestamp,
                                        user_from=player,
                                        user_to=player,
                                        action="chall-lost",
                                        public=True)
            else:
                Activity.objects.create(timestamp=timestamp,
                                        user_from=player,
                                        user_to=player,
                                        action="chall-won",
                                        public=True)

        signals.addActivity.send(sender=None,
                                 user_from=player,
                                 user_to=player,
                                 action='chall-won',
                                 game=ChallengeGame.get_instance())
        self.assertTrue(player.magic.has_modifier('ach-chall-10-a-day'))
Example #6
0
 def test_this_is_sparta_activity_passed(self):
     Artifact.objects.create(group=Artifact.DEFAULT(),
                             name='ach-this-is-sparta')
     player1 = self._get_player()
     player2 = self._get_player(2)
     first_seen = datetime.now() + timedelta(days=-7)  #barely enough time
     Activity.objects.create(timestamp=first_seen,
                             user_from=player1,
                             user_to=player1,
                             action='seen',
                             public=False)
     for i in range(1, 5):
         timestamp = datetime.now() + timedelta(days=-i)
         a = Activity.objects.create(timestamp=timestamp,
                                     user_from=player1,
                                     user_to=player2,
                                     action='chall-lost',
                                     public=True)
     #send signal to enable achievement validation
     signals.addActivity.send(sender=None,
                              user_from=player1,
                              user_to=player2,
                              action='chall-won',
                              game=ChallengeGame.get_instance())
     #achievement condition earned
     self.assertTrue(player1.magic.has_modifier('ach-this-is-sparta'))
Example #7
0
 def test_this_is_sparta_activity_not_given(self):
     Artifact.objects.create(group=Artifact.DEFAULT(),
                             name='ach-this-is-sparta')
     player1 = self._get_player()
     player2 = self._get_player(2)
     first_seen = datetime.now() + timedelta(
         days=-10)  #10 days since first login
     Activity.objects.create(timestamp=first_seen,
                             user_from=player1,
                             user_to=player1,
                             action='seen',
                             public=False)
     for i in range(1, 7):
         timestamp = datetime.now() + timedelta(days=-i)
         if (i % 4) == 0:
             a = Activity.objects.create(timestamp=timestamp,
                                         user_from=player1,
                                         user_to=player2,
                                         action='chall-refused',
                                         public=True)
         else:
             a = Activity.objects.create(timestamp=timestamp,
                                         user_from=player1,
                                         user_to=player2,
                                         action='chall-lost',
                                         public=True)
     #send signal to enable achievement validation
     signals.addActivity.send(sender=None,
                              user_from=player1,
                              user_to=player2,
                              action='chall-refused',
                              game=ChallengeGame.get_instance())
     #False due to refused challenge
     self.assertFalse(player1.magic.has_modifier('ach-this-is-sparta'))
Example #8
0
    def test_this_is_sparta_activity(self):
        Artifact.objects.create(group=Artifact.DEFAULT(),
                                name='ach-this-is-sparta')
        player1 = self._get_player()
        player2 = self._get_player(2)
        for i in range(1, 7):
            timestamp = datetime.now() + timedelta(days=-i)
            if (i % 4) == 0:
                a = Activity.objects.create(timestamp=timestamp,
                                            user_from=player1,
                                            user_to=player2,
                                            action='chall-refused',
                                            public=True)
            else:
                a = Activity.objects.create(timestamp=timestamp,
                                            user_from=player1,
                                            user_to=player2,
                                            action='chall-lost',
                                            public=True)

        signals.addActivity.send(sender=None,
                                 user_from=player1,
                                 user_to=player2,
                                 action='chall-refused',
                                 game=ChallengeGame.get_instance())
        self.assertTrue(player1.magic.has_modifier('ach-this-is-sparta'))
Example #9
0
 def test_this_is_sparta_activity_not_given(self):
     Artifact.objects.create(group=Artifact.DEFAULT(), name='ach-this-is-sparta')
     player1 = self._get_player()
     player2 = self._get_player(2)
     first_seen = datetime.now() + timedelta(days=-10)#10 days since first login
     Activity.objects.create(timestamp=first_seen,
             user_from=player1, user_to=player1, action='seen',
             public=False)
     for i in range(1, 7):
         timestamp = datetime.now() + timedelta(days=-i)
         if (i % 4) == 0:
             a = Activity.objects.create(timestamp=timestamp,
             user_from=player1, user_to=player2, action='chall-refused',
             public=True)
         else:
             a = Activity.objects.create(timestamp=timestamp,
             user_from=player1, user_to=player2, action='chall-lost',
             public=True)
     #send signal to enable achievement validation
     signals.addActivity.send(sender=None, user_from=player1,
                                 user_to=player2,
                                 action='chall-refused',
                                 game=ChallengeGame.get_instance())
     #False due to refused challenge
     self.assertFalse(player1.magic.has_modifier('ach-this-is-sparta'))
Example #10
0
    def test_custom_create(self):
        Challenge.WARRANTY = False
        game = ChallengeGame.get_instance()
        p1, p2 = self._get_player(1), self._get_player(2)

        challenge = Challenge.create_custom(p1, p2, [], game)
        self.assertTrue(challenge)
        self.assertEqual(challenge.owner, game)
Example #11
0
    def test_defeated_better_player_activity(self):
        Artifact.objects.create(group=None, name='ach-chall-def-big')
        player1 = self._get_player()
        player2 = self._get_player(2)
        player2.level_no = 4
        player2.save()

        for i in range(1, 5):
            signals.addActivity.send(
                sender=None, user_from=player1, user_to=player2,
                action='chall-won', game=ChallengeGame.get_instance())
            self.assertFalse(player1.magic.has_modifier('ach-chall-def-big'))

        signals.addActivity.send(
            sender=None, user_from=player1, user_to=player2,
            action='chall-won', game=ChallengeGame.get_instance())
        self.assertTrue(player1.magic.has_modifier('ach-chall-def-big'))
Example #12
0
    def test_custom_create(self):
        Challenge.WARRANTY = False
        game = ChallengeGame.get_instance()
        p1, p2 = self._get_player(1), self._get_player(2)

        challenge = Challenge.create_custom(p1, p2, [], game)
        self.assertTrue(challenge)
        self.assertEqual(challenge.owner, game)
Example #13
0
    def test_custom_create(self):
        game = ChallengeGame.get_instance()
        p1, p2 = self._get_player(1), self._get_player(2)

        challenge = Challenge.create_custom(p1, p2, [], game)
        self.assertTrue(challenge)
        self.assertEqual(challenge.owner, game)


# TODO: add page tests (views) for challenge run
Example #14
0
    def test_evade(self):
        """
         Test for Evade spell
        """
        player = self._get_player()
        player2 = self._get_player(2)

        initial_points = 10

        scoring.setup_scoring()
        Coin.add('points')
        scoring.score_simple(player, 'points', initial_points)
        self.assertEqual(player.points, initial_points)

        # Create and apply evade
        evade = Spell.objects.create(name='challenge-evade',
                                     available=True,
                                     price=25,
                                     percents=100,
                                     type='p')
        obs = PlayerSpellDue.objects.create(player=player,
                                            source=player,
                                            spell=evade,
                                            due=datetime.now() +
                                            timedelta(days=1))
        self.assertTrue(player.magic.has_modifier('challenge-evade'))

        # Get 'chall-lost' expression. By default you still win 2 points when losing a challenge
        formulas = ChallengeGame.get_formulas()
        exp = formulas[1]['expression']  # this will be 'points=XX'
        index = exp.find('=') + 1  # get position of '='
        points = int(
            exp[index:])  # get XX (nr of points won when losing challenge)

        # Create challenge and make first player lose it
        chall = Challenge.create(user_from=player2,
                                 user_to=player,
                                 ignore_questions=True)
        chall.set_won_by_player(player2)

        # If evade spell worked losing player should have initial_points + 'chall-lost' points

        # Evade has 20% chance of activation so play challenge in loop while it activates
        while player.points != initial_points + points:
            player.points = initial_points
            chall.set_expired()
            chall = Challenge.create(user_from=player2,
                                     user_to=player,
                                     ignore_questions=True)
            chall.set_won_by_player(player2)

        # Check if final score is ok
        self.assertEqual(player.points, initial_points + points)
Example #15
0
    def test_defeated_better_player_activity(self):
        Artifact.objects.create(group=None, name='ach-chall-def-big')
        player1 = self._get_player()
        player2 = self._get_player(2)
        player2.level_no = 4
        player2.save()

        for i in range(1, 5):
            signals.addActivity.send(sender=None,
                                     user_from=player1,
                                     user_to=player2,
                                     action='chall-won',
                                     game=ChallengeGame.get_instance())
            self.assertFalse(player1.magic.has_modifier('ach-chall-def-big'))

        signals.addActivity.send(sender=None,
                                 user_from=player1,
                                 user_to=player2,
                                 action='chall-won',
                                 game=ChallengeGame.get_instance())
        self.assertTrue(player1.magic.has_modifier('ach-chall-def-big'))
Example #16
0
    def test_chall_10_won_activity(self):
        Artifact.objects.create(group=None, name='ach-chall-won-10')
        player = self._get_player()
        for i in range(1, 10):
            timestamp = datetime.now() + timedelta(days=-i)
            a = Activity.objects.create(
                timestamp=timestamp, user_from=player, user_to=player,
                action='chall-won', public=True)

        self.assertFalse(player.magic.has_modifier('ach-chall-won-10'))
        signals.addActivity.send(
            sender=None, user_from=player, user_to=player,
            action='chall-won', game=ChallengeGame.get_instance())
        self.assertTrue(player.magic.has_modifier('ach-chall-won-10'))
Example #17
0
 def test_ach(self):
     Artifact.objects.create(group=Artifact.DEFAULT(), name='ach-win-fast')
     player = self._get_player()
     self.chall.user_from.seconds_took = 30
     self.chall.user_from.score = 400
     self.chall.user_from.save()
     self.chall.user_to.seconds_took = 80
     self.chall.user_to.score = 300
     self.chall.user_to.save()
     signals.addActivity.send(sender=None, user_from=player,
                              user_to=player,
                              arguments=dict(id=self.chall.id),
                              action="chall-won",
                              game = ChallengeGame.get_instance())
     self.assertTrue(player.magic.has_modifier('ach-win-fast'))
Example #18
0
 def test_ach(self):
     Artifact.objects.create(group=Artifact.DEFAULT(), name='ach-win-fast')
     player = self._get_player()
     self.chall.user_from.seconds_took = 30
     self.chall.user_from.score = 400
     self.chall.user_from.save()
     self.chall.user_to.seconds_took = 80
     self.chall.user_to.score = 300
     self.chall.user_to.save()
     signals.addActivity.send(sender=None,
                              user_from=player,
                              user_to=player,
                              arguments=dict(id=self.chall.id),
                              action="chall-won",
                              game=ChallengeGame.get_instance())
     self.assertTrue(player.magic.has_modifier('ach-win-fast'))
Example #19
0
    def test_challenges_played_today_activity(self):
        player = self._get_player()
        Artifact.objects.create(group=None, name='ach-chall-10-a-day')
        for i in range(1, 10):
            timestamp = datetime.now()
            if (i % 4) == 0:
                Activity.objects.create(
                    timestamp=timestamp, user_from=player, user_to=player,
                    action="chall-lost", public=True)
            else:
                Activity.objects.create(
                    timestamp=timestamp, user_from=player, user_to=player,
                    action="chall-won", public=True)

        signals.addActivity.send(
            sender=None, user_from=player, user_to=player,
            action='chall-won', game=ChallengeGame.get_instance())
        self.assertTrue(player.magic.has_modifier('ach-chall-10-a-day'))
Example #20
0
    def test_chall_10_won_activity(self):
        Artifact.objects.create(group=None, name='ach-chall-won-10')
        player = self._get_player()
        for i in range(1, 10):
            timestamp = datetime.now() + timedelta(days=-i)
            a = Activity.objects.create(timestamp=timestamp,
                                        user_from=player,
                                        user_to=player,
                                        action='chall-won',
                                        public=True)

        self.assertFalse(player.magic.has_modifier('ach-chall-won-10'))
        signals.addActivity.send(sender=None,
                                 user_from=player,
                                 user_to=player,
                                 action='chall-won',
                                 game=ChallengeGame.get_instance())
        self.assertTrue(player.magic.has_modifier('ach-chall-won-10'))
Example #21
0
 def test_this_is_sparta_activity_passed(self):
     Artifact.objects.create(group=None, name='ach-this-is-sparta')
     player1 = self._get_player()
     player2 = self._get_player(2)
     first_seen = datetime.now() + timedelta(days=-7)  # barely enough time
     Activity.objects.create(
         timestamp=first_seen, user_from=player1, user_to=player1,
         action='seen', public=False)
     for i in range(1, 5):
         timestamp = datetime.now() + timedelta(days=-i)
         a = Activity.objects.create(
             timestamp=timestamp, user_from=player1, user_to=player2,
             action='chall-lost', public=True)
     # send signal to enable achievement validation
     signals.addActivity.send(
         sender=None, user_from=player1, user_to=player2,
         action='chall-won', game=ChallengeGame.get_instance())
     # achievement condition earned
     self.assertTrue(player1.magic.has_modifier('ach-this-is-sparta'))
Example #22
0
    def test_this_is_sparta_activity(self):
        Artifact.objects.create(group=Artifact.DEFAULT(), name='ach-this-is-sparta')
        player1 = self._get_player()
        player2 = self._get_player(2)
        for i in range(1, 7):
            timestamp = datetime.now() + timedelta(days=-i)
            if (i % 4) == 0:
                a = Activity.objects.create(timestamp=timestamp,
                user_from=player1, user_to=player2, action='chall-refused',
                public=True)
            else:
                a = Activity.objects.create(timestamp=timestamp,
                user_from=player1, user_to=player2, action='chall-lost',
                public=True)

        signals.addActivity.send(sender=None, user_from=player1,
                                    user_to=player2,
                                    action='chall-refused',
                                    game=ChallengeGame.get_instance())
        self.assertTrue(player1.magic.has_modifier('ach-this-is-sparta'))
Example #23
0
    def test_evade(self):
        """
         Test for Evade spell
        """
        player = self._get_player()
        player2 = self._get_player(2)

        initial_points = 10

        scoring.setup_scoring()
        Coin.add('points')
        scoring.score_simple(player, 'points', initial_points)
        self.assertEqual(player.points, initial_points)

        # Create and apply evade
        evade = Spell.objects.create(name='challenge-evade', available=True, price=25, percents=100, type='p')
        obs = PlayerSpellDue.objects.create(player=player, source=player, spell=evade, due=datetime.now() + timedelta(days=1))
        self.assertTrue(player.magic.has_modifier('challenge-evade'))

        # Get 'chall-lost' expression. By default you still win 2 points when losing a challenge
        formulas = ChallengeGame.get_formulas()
        exp = formulas[1]['expression'] # this will be 'points=XX'
        index = exp.find('=') + 1 # get position of '='
        points = int(exp[index:]) # get XX (nr of points won when losing challenge)

        # Create challenge and make first player lose it
        chall = Challenge.create(user_from=player2, user_to=player, ignore_questions=True)
        chall.set_won_by_player(player2)

        # If evade spell worked losing player should have initial_points + 'chall-lost' points

        # Evade has 20% chance of activation so play challenge in loop while it activates
        while player.points != initial_points + points:
            player.points = initial_points
            chall.set_expired()
            chall = Challenge.create(user_from=player2, user_to=player, ignore_questions=True)
            chall.set_won_by_player(player2)

        # Check if final score is ok
        self.assertEqual(player.points, initial_points + points)