def testapp(request): app = create_app('impression.settings.TestConfig') client = app.test_client() db.app = app db.create_all() if getattr(request.module, "create_user", True): admin = User(username="******", password="******") admin.insert() my_role = Role(name='admin') my_role.insert() admin.add_roles('admin') non_admin = User(username="******", password="******") non_admin.insert() safe_commit() def teardown(): db.session.remove() db.drop_all() request.addfinalizer(teardown) return client
def sample_data(): """ Creates a set of sample data """ from impression.models import Role user = User(username="******", password="******") my_role = Role(name='admin') my_role.add_abilities('create_users', 'delete_users') user.add_roles('admin', 'superadmin') db.session.add(user) db.session.add(my_role) db.session.commit()
def setup(): import shlex import subprocess user_count = User.count() # print(user_count) if user_count > 0: # We already have a user. No running setup. return redirect(url_for('.index')) if request.method == 'POST': payload = get_payload(request) if payload.get('email') and payload.get('password'): user = User(username=payload.get('email'), password=payload.get('password'), firstname=payload.get('firstname'), lastname=payload.get('lastname')) my_role = Role(name='admin') my_role.add_abilities('create_users', 'delete_users', 'create_content', 'delete_content', 'upload_files', 'delete_files', 'change_settings') user.add_roles('admin', 'superadmin') login_user(user) args = shlex.split("alembic history") p = subprocess.Popen(args, stdout=subprocess.PIPE) output, error = p.communicate() data = output.split('\n') latest_alembic = None for row in data: if "(head)" in row: cols = row.split(" ") latest_alembic = cols[2].strip() if latest_alembic: print("Stamping with latest Alembic revision: %s" % latest_alembic) args = shlex.split("alembic stamp %s" % latest_alembic) subprocess.Popen(args, stdout=subprocess.PIPE) from impression.upgrade import THEMES, SYNTAX_THEMES # Create some system settings Setting(name='blog-title', vartype='str', system=True).insert() Setting(name='blog-copyright', vartype='str', system=True).insert() Setting(name='blog-theme', vartype='str', system=True, value='impression').insert() Setting(name='posts-per-page', vartype='int', system=True, value=4).insert() Setting(name='bootstrap-theme', vartype='str', system=True, value='sandstone', allowed=json.dumps(THEMES)).insert() Setting(name='syntax-highlighting-theme', vartype='str', system=True, value='monokai.css', allowed=json.dumps(SYNTAX_THEMES)).insert() Setting(name='custom-front-page', vartype='str', system=True).insert() Setting(name='allowed-extensions', vartype='list', system=True, value="['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'tiff']").insert() Setting(name='upload-directory', vartype='str', system=True, value='uploads/').insert() Setting(name='max-file-size', vartype='int', system=True, value=16777216).insert() safe_commit() flash("Initial Setup Complete", "success") return redirect(url_for('admin_controller.admin_settings')) return render('setup.html')