Esempio n. 1
0
    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')
Esempio n. 2
0
    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()