def testCascadeUserMatch(self): # user -> match firstUser = User(username=u'FirstUser', password='******') db.session.add(firstUser) db.session.commit() firstMatch = Match(initiator=firstUser) db.session.add(firstMatch) db.session.commit() assert len(firstUser.matches) == 1 # cascade update firstUser.username = u'FirstUserUpdated' db.session.commit() assert firstMatch.users[0].username == u'FirstUserUpdated' # cascade delete db.session.delete(firstUser) db.session.commit() assert len(firstMatch.users) == 0 db.session.delete(firstMatch) db.session.commit() # match -> user secondUser = User(username=u'SecondUser', password='******') db.session.add(secondUser) db.session.commit() secondMatch = Match(initiator=secondUser) db.session.add(secondMatch) db.session.commit() assert len(secondUser.matches) == 1 # cascade update secondMatch.finished = True db.session.commit() assert models.User.query.get(secondUser.id).matches[0].finished == True # cascade delete db.session.delete(secondMatch) db.session.commit() assert len(secondUser.matches) == 0 app.logger.debug('testCascadeUserMatch - OK')
def createTestData(cls): db.drop_all() db.create_all() ############################################# create Users john_user = User(username=u'John', password=u'123', avatar_image_name='avatar_axe.png', wallpapers_image_name='wallpaper_antimage_1.jpg', mmr=4125) peter_user = User(username=u'Peter', password=u'123', avatar_image_name='avatar_nature_prophet.png', wallpapers_image_name='wallpaper_bloodseeker_1.jpg', mmr=3940) jack_user = User(username=u'Jack', password=u'123', avatar_image_name='avatar_tinker.png', wallpapers_image_name='wallpaper_bloodseeker_1.jpg', mmr=3870) # add Users to session db.session.add(john_user) db.session.add(peter_user) db.session.add(jack_user) db.session.commit() ############################################### adding friends john_user.sendRequest(peter_user) john_user.sendRequest(jack_user) jack_user.acceptRequest(john_user) # ############################################# making themes lore_theme = Theme(name=u'lore', image_name=u'theme_lore.png') tournaments_theme = Theme(name=u'tournaments', image_name=u'theme_tournaments.png') mechanics_theme = Theme(name=u'mechanics', image_name=u'theme_mechanics.png') # add to session db.session.add(lore_theme) db.session.add(tournaments_theme) db.session.add(mechanics_theme) db.session.commit() # upload questions Database_queries.uploadQuestionFromPath(questiondir) ############################################## create Match first_match = Match(initiator=john_user) second_match = Match(initiator=peter_user) # add users to match first_match.setOpponent(peter_user) second_match.setOpponent(john_user) third_match = Match(initiator=peter_user) third_match.setOpponent(john_user) fourth_match = Match(initiator=john_user) fifth_match = Match(initiator=jack_user) # [1] FINISHED for r in first_match.rounds: for quest in r.questions: user_answer = UserAnswer() user_answer.round = r user_answer.user = first_match.users[0] user_answer.answer = random.choice(quest.answers) db.session.add(user_answer) user2_answer = UserAnswer() user2_answer.round = r user2_answer.user = first_match.users[1] user2_answer.answer = random.choice(quest.answers) db.session.add(user2_answer) first_match.finished = True # [!1] # [2] RUNNING for r in second_match.rounds[0:2]: for quest in r.questions: user_answer = UserAnswer() user_answer.round = r user_answer.user = second_match.users[0] user_answer.answer = random.choice(quest.answers) db.session.add(user_answer) user2_answer = UserAnswer() user2_answer.round = r user2_answer.user = second_match.users[1] user2_answer.answer = random.choice(quest.answers) db.session.add(user2_answer) # [!2] # [3] TIME_ELAPSED for r in third_match.rounds: for quest in r.questions[0:2]: user_answer = UserAnswer() user_answer.round = r user_answer.user = third_match.users[0] user_answer.question = quest user_answer.answer = random.choice(quest.answers) db.session.add(user_answer) user2_answer = UserAnswer() user2_answer.round = r user2_answer.user = third_match.users[1] user2_answer.question = quest user2_answer.answer = random.choice(quest.answers) db.session.add(user2_answer) third_match.finished = True # [!3] # [4] NOT_STARTED # add match to session db.session.add(first_match) db.session.add(second_match) db.session.add(third_match) db.session.add(fourth_match) db.session.add(fifth_match) db.session.commit()