Esempio n. 1
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))
    def test_token_auth(self):
        u = generate_fake_user(username="******",
                               email="*****@*****.**",
                               password="******")
        db.session.add(u)
        db.session.commit()

        # issue a request with a bad token
        response = self.client.get(url_for('api.battles_list'),
                                   headers=self.get_api_headers(
                                       'bad-token', ''))
        self.assertTrue(response.status_code == 401)

        # get a token
        response = self.client.get(url_for('api.get_token'),
                                   headers=self.get_api_headers('test', '123'))
        self.assertTrue(response.status_code == 200)
        json_response = json.loads(response.data.decode('utf-8'))
        self.assertIsNotNone(json_response.get('token'))
        token = json_response['token']

        # issue a request with the token
        response = self.client.get(url_for('api.battles_list'),
                                   headers=self.get_api_headers(token, ''))
        self.assertTrue(response.status_code == 200)
Esempio n. 3
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)
    def test_bad_auth(self):
        u = generate_fake_user(email="*****@*****.**", password="******")
        db.session.add(u)
        db.session.commit()

        # authenticate with bad password
        response = self.client.get(url_for('api.battles_list'),
                                   headers=self.get_api_headers(
                                       '*****@*****.**', '456'))
        self.assertTrue(response.status_code == 401)
 def test_get_list(self):
     battles = Battle.get_list()
     self.assertEqual(0, len(battles))
     size = 10
     creator = generate_fake_user()
     db.session.add(creator)
     for b in (generate_fake_battle(name="Battle" + str(i))
               for i in range(size)):
         db.session.add(b)
     db.session.commit()
     battles = Battle.get_list()
     self.assertEqual(size, len(battles))
 def test_voting(self):
     from app.helpers import (generate_fake_entry, generate_fake_vote,
                              generate_fake_user, generate_fake_battle)
     voter = generate_fake_user()
     u_left = generate_fake_user()
     u_right = generate_fake_user()
     creator = generate_fake_user()
     b = generate_fake_battle(creator=creator)
     e_left = generate_fake_entry(user=u_left, battle=b)
     e_right = generate_fake_entry(user=u_right, battle=b)
     db.session.add_all((b, voter, u_left, u_right, e_left, e_right))
     db.session.flush()
     db.session.refresh(e_left)
     db.session.refresh(e_right)
     v = generate_fake_vote(voter=voter,
                            entry_left_id=e_left.id,
                            entry_right_id=e_right.id,
                            battle=b,
                            chosen_entry='left')
     db.session.add(v)
     db.session.commit()
     self.assertGreater(e_left.rating, e_right.rating)
    def test_users(self):
        # add two users
        u1 = generate_fake_user(username="******",
                                email="*****@*****.**",
                                password="******")
        u2 = generate_fake_user(username="******",
                                email="*****@*****.**",
                                password="******")
        db.session.add_all([u1, u2])
        db.session.commit()

        # get users
        response = self.client.get(url_for('api.user', username=u1.username),
                                   headers=self.get_api_headers('one', '123'))
        self.assertTrue(response.status_code == 200)
        json_response = json.loads(response.data.decode('utf-8'))
        self.assertTrue(json_response['id'] == u1.id)
        response = self.client.get(url_for('api.user', username=u2.username),
                                   headers=self.get_api_headers('two', '456'))
        self.assertTrue(response.status_code == 200)
        json_response = json.loads(response.data.decode('utf-8'))
        self.assertTrue(json_response['id'] == u2.id)