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 }
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()
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)
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()
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()
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()
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()
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)
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)
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)
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)
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()