def test_user_follows(self): load_fixtures(db, dataset) rv = self.client.get( url_for('api.user_follows', username='******')) self.assert200(rv) self.assertEqual(1, len(json.loads(rv.data)['users']))
def load_fixtures(self, file_name, process_documents=True): filepath = os.path.abspath(os.path.join(FIXTURES, file_name)) load_fixtures(db, loaders.load(filepath)) db.session.commit() if process_documents: for doc_id, in Document.all_ids(): analyze_document(doc_id) optimize_search()
def load_fixtures(self, file_name, process_documents=True): filepath = self.get_fixture_path(file_name) load_fixtures(db, loaders.load(filepath)) db.session.commit() if process_documents: for doc_id, in Document.all_ids(): analyze_document(doc_id) optimize_search()
def test_user_followed_by(self): load_fixtures(db, dataset) rv = self.client.get(url_for('api.user_followed_by', username='******')) self.assert200(rv) self.assertEqual(0, len(json.loads(rv.data)['users'])) rv1 = self.client.get(url_for('api.user_follows', username='******')) self.assert200(rv1) self.assertEqual(1, len(json.loads(rv1.data)['users']))
def test_get_followers(self): load_fixtures(db, dataset) u1 = User.query.get(1) u2 = User.query.get(2) followers = u1.get_followed_by() self.assertEqual(1, len(followers), 'user has one follower') self.assertIsInstance(followers[0], User, 'followers is list of <User> instances') self.assertEqual(followers[0].id, 2, '<User 2> follows <User 1>') followings = u2.get_follows() self.assertEqual(1, len(followings), 'user has one following') self.assertIsInstance(followings[0], User, 'followings is list of <User> instances') self.assertEqual(followings[0].id, 1, '<User 1> follows <User 1>')
def test_add_follower(self): load_fixtures(db, dataset) user = User.query.get(1) user.add_follower(User.query.get(3)) db.session.add(user) db.session.commit() followers = user.get_followed_by() self.assertEqual(2, len(followers), 'user has two follower') user.add_follower(User.query.get(2)) with self.assertRaises(IntegrityError): db.session.add(user) db.session.commit() self.assertEqual(2, len(followers), 'user has two follower')
def load_fixtures_from_file(fixtures): """ :param fixtures: :return: """ fixtures_dirs = current_app.config['FIXTURES_DIRS'] if not isinstance(fixtures, list): _fixtures = [fixtures] else: _fixtures = fixtures for filename in _fixtures: for directory in fixtures_dirs: filepath = os.path.join(directory, filename) if os.path.exists(filepath): # TODO load the data into the database load_fixtures(db, loaders.load(filepath)) break else: raise IOError("Error loading '{0}'. File could not be found".format(filename))
def test_follow(self): load_fixtures(db, dataset) user = User.query.get(1) self.assertEqual(0, len(user.followings)) self.assertEqual(0, len(user.get_follows())) u2 = User.query.get(2) user.follow(u2) db.session.add(user) db.session.commit() self.assertEqual(1, len(user.followings)) self.assertEqual(1, len(user.get_follows())) self.assertEqual(u2, user.get_follows()[0]) with self.assertRaises(IntegrityError): user.follow(u2) db.session.add(user) db.session.commit()
def test_login(self): load_fixtures(db, dataset) data = { "grant_type": "password", "client_id": "foo", "client_secret": "secret", "username": "******", "password": "******", "scope": "email", } status_code, body = self.get(url_for("api.user_access_token"), data) self.assertEqual(status_code, 200) status_code, body = self.get( url_for("api.me"), headers={"Authorization": "Bearer %s" % (body["access_token"],)} ) self.assertEqual(status_code, 200) self.assertEqual(body["username"], "*****@*****.**") self.assertEqual(body["name"], "user") # 존재하지 않는 토큰 요청 status_code, body = self.get(url_for("api.me"), headers={"Authorization": "Bearer expect expired"}) self.assertEqual(status_code, 401) self.assertEqual(body["message"], "Bearer token not found.")
def load_fixtures_from_file(db, filename): current_dir = os.path.dirname(__file__) filepath = os.path.join(current_dir, 'fixtures', filename) return load_fixtures(db, load(filepath))