def test_insert_administrator_default(self) -> None: """Test of insertion of default administrator""" current_app.config['ADMIN_NAME'] = None current_app.config['ADMIN_PASSWORD'] = None Administrator.insert_administrator() administrator = db.session.query(Administrator).first() self.assertEqual('admin', administrator.name) self.assertTrue(administrator.verify_password('admin'))
def setUp(self) -> None: self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() Administrator.insert_administrator() ReviewStatus.insert_review_status() self.client = self.app.test_client(use_cookies=True)
def test_insert_administrator_config(self) -> None: """Test of insertion of administrator by config""" name = 'customized_admin_name' password = '******' current_app.config['ADMIN_NAME'] = name current_app.config['ADMIN_PASSWORD'] = password Administrator.insert_administrator() administrator = db.session.query(Administrator).first() self.assertEqual(name, administrator.name) self.assertTrue(administrator.verify_password(password))
def test_id_auto_increment(self) -> None: """Test of id auto-incrementing""" old_id = self.admin_in_db.id for i in range(5): name = f'test{i}' db.session.add(Administrator(name=name)) db.session.commit() new_id = db.session.query(Administrator) \ .filter_by(name=name).first().id self.assertEqual(old_id + 1, new_id) old_id = new_id
def setUp(self) -> None: self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() Administrator.insert_administrator() ReviewStatus.insert_review_status() self.client = self.app.test_client(use_cookies=True) # create some feedbacks for testing self.test_info = [{ 'email': f'test{i}@email.com', 'title': f'title{i}', 'content': f'some content{i}', } for i in range(5)] for info in self.test_info: db.session.add(Feedback(**info)) db.session.commit()
def setUp(self) -> None: self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() # create an Administrator for testing self.test_info = { 'name': 'test', 'password': '******', } db.session.add(Administrator(**self.test_info)) db.session.commit() self.admin_in_db = db.session.query(Administrator) \ .filter_by(name=self.test_info['name']).first()
def setUp(self) -> None: self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() # create a administrator reviewer_name = 'admin' admin = Administrator(name=reviewer_name) db.session.add(admin) db.session.commit() self.reviewer_in_db = db.session.query(Administrator)\ .filter_by(name=reviewer_name).first() # create a admin status status_name = 'status' review_status = ReviewStatus(name=status_name) db.session.add(review_status) db.session.commit() self.review_status_in_db = db.session.query(ReviewStatus) \ .filter_by(name=status_name).first()
"""The entry module of the web app """ import os import click from app import create_app, db from app.models.feedback import Feedback from app.models.administrator import Administrator from app.models.review_status import ReviewStatus app = create_app(os.getenv('FLASK_CONFIG') or 'default') app_context = app.app_context() app_context.push() db.create_all() Administrator.insert_administrator() ReviewStatus.insert_review_status() @app.shell_context_processor def make_shell_context(): """Set the environment for Flask shell""" return dict(db=db, Feedback=Feedback, ReviewStatus=ReviewStatus, Administrator=Administrator) @app.cli.command() @click.argument('test_names', nargs=-1) def test(test_names):
def test_password_hash_is_unique(self) -> None: """Test of password hash uniqueness""" same_password_admin = Administrator( password=self.test_info['password']) self.assertNotEqual(same_password_admin.password_hash, self.admin_in_db.password_hash)
def test_name_len_limit(self) -> None: """Test of name length restriction""" name = 'test' * 64 with self.assertRaises(ValueError): Administrator(name=name)
def test_name_unique(self) -> None: """Test of name uniqueness""" db.session.add(Administrator(**self.test_info)) with self.assertRaises(IntegrityError): db.session.commit()
def test_id_is_unique(self) -> None: """Test of id uniqueness""" db.session.add(Administrator(id=self.admin_in_db.id)) with self.assertRaises(FlushError): db.session.commit()