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)
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")
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")
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))
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")
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")