Beispiel #1
0
def generate_fake(user_count=7, battle_count=21, entry_count=100, vote_count=200):
    """
    Generate fake users and battles.
    Gets 'model_count' arguments which means create not more than 'count' objects of class 'Model'
    """
    from random import seed
    from app.helpers import (try_add, generate_fake_user, generate_fake_battle,
                             generate_fake_entry, generate_fake_vote)

    user_count, battle_count, entry_count, vote_count = int(user_count), int(battle_count), \
                                                        int(entry_count), int(vote_count)

    seed()
    try_add(*(generate_fake_user() for _ in range(user_count)))

    # Because there is a small chance of collisions
    user_count = len(User.query.all())
    print("User count is", user_count)

    try_add(*(generate_fake_battle() for _ in range(battle_count)))

    battle_count = len(Battle.get_list())
    print("Battle count is", battle_count)

    try_add(*(generate_fake_entry() for _ in range(entry_count)))

    entry_count = len(Entry.get_list())
    print("Entry count is", entry_count)

    try_add(*(generate_fake_vote() for _ in range(vote_count)))

    vote_count = len(Vote.query.all())
    print("Vote count is", vote_count)
Beispiel #2
0
    def post(self,
             latitude,
             longitude,
             name,
             description,
             radius,
             user_id=None,
             username=None):
        """
        Create new battle and return it if it was created.
        """
        creator = User.get_or_404(user_id, username)

        battle = Battle(latitude=latitude,
                        longitude=longitude,
                        name=name,
                        description=description,
                        creator_id=creator.id,
                        radius=radius)

        if creator.battle_creation_limit <= 0:
            abort(400, message="You have created too many battles already")

        if try_add(battle):
            response = jsonify(battle_schema.dump(battle))
            response.status_code = 201
            return response
        else:
            abort(400, message="Couldn't create new battle")
    def post(self, username, email, password):
        """
        Create new user.
        :return: User or 400
        """
        user = User(username=username, email=email, password=password)

        if try_add(user):
            response = jsonify(user_schema.dump(user))
            response.status_code = 201
            return response
        else:
            abort(400, message="Couldn't create new user")
Beispiel #4
0
    def put(self, battle_id, name, description):
        """
        Update battle info
        :return: updated battle
        """
        battle = Battle.query.get_or_404(battle_id)

        if name:
            battle.name = name
        if description:
            battle.description = description

        if try_add(battle):
            return jsonify(battle_schema.dump(battle))
        else:
            return abort(400, message="Couldn't update user.")
    def put(self, email, password, user_id=None, username=None, **kwargs):
        """
        Update user profile
        :return: User
        """
        user = User.get_or_404(user_id, username)

        if email:
            user.email = email
        if password:
            user.password = password

        if try_add(user):
            return jsonify(user_schema.dump(user))
        else:
            abort(400, message="Couldn't change user info")
Beispiel #6
0
    def setUp(self):
        self.app = create_app('testing')
        self.app_context = self.app.app_context()
        self.app_context.push()
        db.create_all()
        users = [
            generate_fake_user(username="******",
                               email="*****@*****.**",
                               password="******"),
            generate_fake_user(username="******"),
            generate_fake_user(username="******")
        ]

        if not try_add(*users):
            self.fail("Couldn't create users in SetUp")
        print(User.query.get(1))
Beispiel #7
0
    def post(self, latitude, longitude, user_id, battle_id):
        """
        Create new entry
        """
        user = User.query.get_or_404(user_id)
        battle = Battle.query.get_or_404(battle_id)
        entry = Entry(latitude=latitude,
                      longitude=longitude,
                      user=user,
                      battle=battle)

        if try_add(entry):
            response = jsonify(entry_schema.dump(entry))
            response.status_code = 201
            return response
        else:
            abort(400, message="Couldn't create new entry")
Beispiel #8
0
    def post(self, battle_id, voter_id, winner_id, loser_id):
        """
        Create new entry
        """
        vote = Vote(voter_id=voter_id,
                    winner_id=winner_id,
                    loser_id=loser_id,
                    battle_id=battle_id)

        user = User.query.get_or_404(voter_id)
        if user.is_voted(battle_id, loser_id, winner_id):
            abort(400, message="User had already voted on this pair")

        if try_add(vote):
            response = jsonify(vote_schema.dump(vote))
            response.status_code = 201
            return response
        else:
            abort(400, message="Couldn't create new vote")