def setUp(self): self.tag_name_alt = TAGS[1] self.all_tags = TAGS self.test_user_id = TEST_USER_ID session = lazy_startup() self.session = session() self.test_game_id = TEST_GAME_ID self.test_game_ids = self.create_replay_names() test_user = self.session.query(Player).filter(Player.platformid == self.test_user_id).first() if test_user is None: test_user = Player(platformid=self.test_user_id) self.session.add(test_user) for i in range(len(self.test_game_ids)): tag_name = self.all_tags[i] tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == tag_name).first() if tag is None: tag = Tag(owner=self.test_user_id, name=tag_name) self.session.add(tag) for game_id in self.test_game_ids: game = self.session.query(Game).filter(Game.hash == game_id).first() if game is None: game = Game(hash=game_id) self.session.add(game) self.session.commit() # add some spice to the games :> for i in range(len(self.test_game_ids)): game_id = self.test_game_ids[i] for j in range(len(self.test_game_ids) - i): TagWrapper.add_tag_by_name_to_game(self.session, game_id, self.test_user_id, self.all_tags[j])
def test_add_tag_to_replay_success(self): TagWrapper.add_tag_by_name_to_game(self.session, self.test_game_id, self.test_user_id, self.tag_name) tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == self.tag_name).first() game = self.session.query(Game).filter(Game.hash == self.test_game_id).first() self.assertIsNotNone(tag) self.assertIsNotNone(game) self.assertIn(tag, game.tags)
def test_remove_tag_from_replay_success(self): # a bit dirty to do it like this... TagWrapper.add_tag_by_name_to_game(self.session, self.test_game_id, self.test_user_id, self.tag_name) TagWrapper.remove_tag_from_game(self.session, self.test_game_id, self.test_user_id, self.tag_name) tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == self.tag_name).first() game = self.session.query(Game).filter(Game.hash == self.test_game_id).first() self.assertIsNotNone(tag) self.assertIsNotNone(game) self.assertNotIn(tag, game.tags)
def add_tag_to_game(name: str, replay_id: str, session=None) -> None: try: TagWrapper.add_tag_by_name_to_game(session, replay_id, get_current_user_id(), name) except DBTagNotFound: raise TagNotFound()
def test_add_tag_to_replay_tag_not_found(self): with self.assertRaises(DBTagNotFound): TagWrapper.add_tag_by_name_to_game(self.session, self.test_game_id, self.test_user_id, TAGS[1])