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'))
Exemple #2
0
    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
Exemple #5
0
    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()