コード例 #1
0
    def setUpTestData(cls):
        cls.user: User = User.objects.create_user("test", "*****@*****.**",
                                                  "password")
        cls.user.is_staff = True
        cls.user.save()
        user_profile: UserProfile = UserProfile(user=cls.user)
        user_profile.save()
        teacher: Teacher = Teacher.objects.create(user=user_profile,
                                                  new_user=cls.user,
                                                  title="Mx")
        teacher.save()
        cls.klass, _, _ = create_class_directly(cls.user.email)
        cls.klass.save()
        cls.worksheet = Worksheet.objects.create(name="test worksheet",
                                                 starter_code="test code")
        cls.game = models.Game(id=1,
                               name="test",
                               game_class=cls.klass,
                               worksheet=cls.worksheet)
        cls.game.save()

        cls.EXPECTED_GAME_DETAIL = {
            "era": "1",
            "name": "test",
            "status": "r",
            "settings":
            '{"GENERATOR": "Main", "OBSTACLE_RATIO": 0.1, "PICKUP_SPAWN_CHANCE": 0.1, "SCORE_DESPAWN_CHANCE": 0.05, "START_HEIGHT": 31, "START_WIDTH": 31, "TARGET_NUM_CELLS_PER_AVATAR": 16.0, "TARGET_NUM_PICKUPS_PER_AVATAR": 1.2, "TARGET_NUM_SCORE_LOCATIONS_PER_AVATAR": 0.5}',
            "worksheet_id": str(cls.worksheet.id),
        }
        cls.EXPECTED_GAME_LIST = {
            "1": cls.EXPECTED_GAME_DETAIL,
            "2": cls.EXPECTED_GAME_DETAIL
        }
コード例 #2
0
ファイル: test_views.py プロジェクト: helena-charles/aimmo
 def setUpTestData(cls):
     cls.user = User.objects.create_user("test", "*****@*****.**",
                                         "password")
     cls.user.is_staff = True
     cls.user.save()
     cls.game = models.Game(id=1, name="test", public=True)
     cls.game.save()
コード例 #3
0
ファイル: test_views.py プロジェクト: mrniket/aimmo
    def test_list_all_games(self):
        self.game.main_user = self.user
        self.game.save()

        game2 = models.Game(id=2, name="test", game_class=self.klass2)
        game2.save()

        def expected_game_detail(class_id, worksheet_id):
            return {
                "era": "1",
                "name": "test",
                "status": "r",
                "settings":
                '{"GENERATOR": "Main", "OBSTACLE_RATIO": 0.1, "PICKUP_SPAWN_CHANCE": 0.1, "SCORE_DESPAWN_CHANCE": 0.05, "START_HEIGHT": 31, "START_WIDTH": 31, "TARGET_NUM_CELLS_PER_AVATAR": 16.0, "TARGET_NUM_PICKUPS_PER_AVATAR": 1.2, "TARGET_NUM_SCORE_LOCATIONS_PER_AVATAR": 0.5}',
                "class_id": str(class_id),
                "worksheet_id": str(worksheet_id),
            }

        expected_game_list = {
            "1": expected_game_detail(self.klass.id, self.worksheet.id),
            "2": expected_game_detail(self.klass2.id, 1),
        }

        c = Client()
        response = c.get(reverse("game-list"))

        self.assertJSONEqual(response.content, expected_game_list)
コード例 #4
0
 def _associate_game_as_level_num(self, level_num=1, user=None, game=None):
     if game is None:
         game = self.game
     if user is None:
         user = self.user
     models.LevelAttempt(user=user, game=game, level_number=level_num).save()
     models.Game(name="Wrong").save()
コード例 #5
0
ファイル: tests.py プロジェクト: wwxFromTju/aimmo
 def setUpTestData(cls):
     cls.user = User.objects.create_user('test', '*****@*****.**',
                                         'password')
     cls.user.is_staff = True
     cls.user.save()
     cls.game = models.Game(id=1, name='test', public=True)
     cls.game.save()
コード例 #6
0
ファイル: tests.py プロジェクト: wwxFromTju/aimmo
 def setUpTestData(cls):
     cls.user1 = User.objects.create_user('test', '*****@*****.**',
                                          'password')
     cls.user1.save()
     cls.user2 = User.objects.create_user('test2', '*****@*****.**',
                                          'password')
     cls.user2.save()
     cls.game = models.Game(id=1, name='test', public=False)
     cls.game.save()
コード例 #7
0
ファイル: tests_models.py プロジェクト: ranpiper3/aimmo
 def setUpTestData(cls):
     cls.user1 = User.objects.create_user("test", "*****@*****.**",
                                          "password")
     cls.user1.save()
     cls.user2 = User.objects.create_user("test2", "*****@*****.**",
                                          "password")
     cls.user2.save()
     cls.game = models.Game(id=1, name="test", public=False)
     cls.game.save()
コード例 #8
0
    def test_list_all_games(self):
        self.game.main_user = self.user
        self.game.save()

        game2 = models.Game(id=2, name="test", worksheet=self.worksheet)
        game2.save()

        c = Client()
        response = c.get(reverse("game-list"))

        self.assertJSONEqual(response.content, self.EXPECTED_GAME_LIST)
コード例 #9
0
ファイル: test_views.py プロジェクト: mrniket/aimmo
    def test_delete_games(self):
        # Create a new teacher with a game to make sure it's not affected
        new_user: User = User.objects.create_user("test2", "*****@*****.**",
                                                  "password")
        new_user.is_staff = True
        new_user.save()
        new_user_profile: UserProfile = UserProfile(user=new_user)
        new_user_profile.save()
        new_teacher: Teacher = Teacher.objects.create(user=new_user_profile,
                                                      new_user=new_user)
        new_teacher.save()
        new_klass, _, _ = create_class_directly(new_user.email)
        new_user.save()
        new_game = models.Game(name="test2",
                               game_class=new_klass,
                               worksheet=self.worksheet)
        new_game.save()

        # Create a game for the second class
        game2 = models.Game(name="test",
                            game_class=self.klass2,
                            worksheet=self.worksheet)
        game2.save()

        data = {"game_ids": [self.game.id, game2.id, new_game.id]}

        # Try to login as a student and delete games - they shouldn't have access
        _, student_password, student = create_school_student_directly(
            self.klass.access_code)
        client = self.login(username=student.new_user.username,
                            password=student_password)
        response = client.post(reverse("game-delete-games"), data)
        assert response.status_code == 403
        assert Game.objects.count() == 3

        # Login as initial teacher and delete games - only his games should be deleted
        client = self.login()
        response = client.post(reverse("game-delete-games"), data)
        assert response.status_code == 204
        assert Game.objects.count() == 1
        assert Game.objects.get(pk=new_game.id)
コード例 #10
0
ファイル: test_views.py プロジェクト: ranpiper3/aimmo
    def test_delete_game(self):
        """
        Check for 204 when deleting a game
        """
        client = self.login()

        game2 = models.Game(id=2, name="test", public=True)
        game2.save()

        response = client.delete(reverse("game-detail", kwargs={"pk": self.game.id}))
        self.assertEquals(response.status_code, 204)
        self.assertEquals(len(models.Game.objects.all()), 1)
コード例 #11
0
    def test_delete_game(self):
        """
        Check for 204 when deleting a game
        """
        client = self.login()
        worksheet = Worksheet.objects.create(name="test", starter_code="test")
        game2 = models.Game(id=2, name="test", worksheet=worksheet)
        game2.save()

        response = client.delete(
            reverse("game-detail", kwargs={"pk": self.game.id}))
        self.assertEquals(response.status_code, 204)
        self.assertEquals(len(models.Game.objects.all()), 1)
コード例 #12
0
ファイル: test_views.py プロジェクト: mrniket/aimmo
 def setUpTestData(cls):
     cls.user: User = User.objects.create_user("test", "*****@*****.**",
                                               "password")
     cls.user.is_staff = True
     cls.user.save()
     user_profile: UserProfile = UserProfile(user=cls.user)
     user_profile.save()
     teacher: Teacher = Teacher.objects.create(user=user_profile,
                                               new_user=cls.user)
     teacher.save()
     cls.klass, _, _ = create_class_directly(cls.user.email)
     cls.klass.save()
     cls.klass2, _, _ = create_class_directly(cls.user.email)
     cls.klass2.save()
     cls.worksheet: Worksheet = Worksheet.objects.create(
         name="test worksheet", starter_code="test code 1")
     cls.worksheet2: Worksheet = Worksheet.objects.create(
         name="test worksheet 2", starter_code="test code 2")
     cls.game = models.Game(id=1,
                            name="test",
                            game_class=cls.klass,
                            worksheet=cls.worksheet)
     cls.game.save()