minor: some preparations to test

This commit is contained in:
Lunaresk 2022-02-03 13:35:00 +01:00
parent e73cd46611
commit bfa3383a7c
6 changed files with 68 additions and 56 deletions

View File

@ -3,9 +3,28 @@ from flask_login import LoginManager
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate from flask_migrate import Migrate
from yaml import safe_load from yaml import safe_load
from logging import getLogger
from logging.config import fileConfig
from os import makedirs
from os.path import dirname, exists
try:
dir_name = dirname(__file__)
if dir_name:
DIR = dir_name + "/"
else:
DIR = "./"
except NameError:
DIR = "./"
if not exists(DIR + "logs"):
makedirs(DIR + "logs")
fileConfig(DIR + "configs/log.conf")
LOGGER = getLogger("root")
app = Flask(__name__) app = Flask(__name__)
app.config.from_file("config.yaml", safe_load) app.config.from_file("configs/config.yaml", safe_load)
db = SQLAlchemy(app) db = SQLAlchemy(app)
migrate = Migrate(app, db, render_as_batch=True) migrate = Migrate(app, db, render_as_batch=True)
login = LoginManager(app) login = LoginManager(app)

View File

@ -1,6 +0,0 @@
database:
host: "hostname or ip"
port: "port"
database: "databasename"
user: "username"
password: "password"

View File

@ -0,0 +1,3 @@
SECRET_KEY: "MY_5€cr37_K€Y"
SQLALCHEMY_DATABASE_URI: "dialect+driver://username:password@host:port/database"
SQLALCHEMY_TRACK_MODIFICATIONS: False

31
app/configs/log.conf Normal file
View File

@ -0,0 +1,31 @@
[loggers]
keys=root, main
[handlers]
keys=console, file
[formatters]
keys=stdout
[logger_root]
handlers = console, file
level = DEBUG
[logger_main]
handlers = console, file
level = DEBUG
qualname = main
[handler_console]
class = logging.StreamHandler
level = DEBUG
formatter = stdout
[handler_file]
class = logging.FileHandler
level = INFO
formatter = stdout
kwargs = {"filename": "app/logs/infos.log"}
[formatter_stdout]
format = %(asctime)s [%(threadName)s] [%(levelname)s]: %(message)s

View File

@ -1,24 +1,6 @@
from os.path import dirname from app import LOGGER
from psycopg2 import connect as psyconn, ProgrammingError, errors from psycopg2 import connect as psyconn, ProgrammingError, errors
from yaml import safe_load from yaml import safe_load
import logging
DIR = dirname(__file__) + "/"
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
logFormatter = logging.Formatter(
"%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s")
fileHandler = logging.FileHandler(DIR + "../../logs/database.log")
fileHandler.setFormatter(logFormatter)
fileHandler.setLevel(logging.INFO)
LOGGER.addHandler(fileHandler)
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)
LOGGER.addHandler(consoleHandler)
class Database: class Database:
@ -27,7 +9,7 @@ class Database:
pass pass
def connect(self, **kwargs): def connect(self, **kwargs):
with open(DIR + 'config.yaml', 'r') as file: with open('configs/config.yaml', 'r') as file:
data = safe_load(file)['database'] data = safe_load(file)['database']
LOGGER.debug('Merging passed arguments with default arguments.') LOGGER.debug('Merging passed arguments with default arguments.')
for key, value in data.items(): for key, value in data.items():

View File

@ -1,31 +1,8 @@
from app import app from app import app, LOGGER
from app.database import Database from app.database import Database
from app.forms import NewItemForm from app.forms import NewItemForm
from flask import abort, request, render_template from flask import abort, request, render_template
from flask.json import jsonify from flask.json import jsonify
from os import makedirs
from os.path import dirname, exists
import logging
DIR = dirname(__file__) + "/"
if not exists(DIR + "../../logs"):
makedirs(DIR + "../../logs")
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
logFormatter = logging.Formatter(
"%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s")
fileHandler = logging.FileHandler(DIR + "../../logs/server.log")
fileHandler.setFormatter(logFormatter)
fileHandler.setLevel(logging.INFO)
LOGGER.addHandler(fileHandler)
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)
LOGGER.addHandler(consoleHandler)
DATABASE = Database() DATABASE = Database()
@ -38,6 +15,8 @@ def index():
@app.route('/test') @app.route('/test')
def test(): def test():
if request.args:
LOGGER.debug(request.args['testing'])
form = NewItemForm() form = NewItemForm()
return render_template("test.html", form=form) return render_template("test.html", form=form)
@ -67,11 +46,15 @@ def insert():
case _: case _:
abort(400) abort(400)
@app.route(f'/{APPNAME}/<string:user>', methods=['GET']) @app.route(f'/{APPNAME}/overview', methods=['GET'])
@app.route(f'/{APPNAME}/<int:year>/<int:month>', methods=['GET']) def get_report_from_user():
@app.route(f'/{APPNAME}/<string:user>/<int:year>', methods=['GET']) user, month, year = []*3
@app.route(f'/{APPNAME}/<string:user>/<int:year>/<int:month>', methods=['GET']) if request.args:
def get_monthly_report_from_user(user: str = None, year: int = None, month: int = None): args = request.args
if 'month' in args:
month = args['month']
if 'year' in args:
year = args['year']
if month and (month > 12 or month < 1): if month and (month > 12 or month < 1):
abort(400) abort(400)
LOGGER.info("Getting results.") LOGGER.info("Getting results.")