minor: some preparations to test

This commit is contained in:
Lunaresk 2022-02-03 13:35:00 +01:00
parent e73cd46611
commit 0080fb0a3a
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_migrate import Migrate
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.config.from_file("config.yaml", safe_load)
app.config.from_file("configs/config.yaml", safe_load)
db = SQLAlchemy(app)
migrate = Migrate(app, db, render_as_batch=True)
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 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:
@ -27,7 +9,7 @@ class Database:
pass
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']
LOGGER.debug('Merging passed arguments with default arguments.')
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.forms import NewItemForm
from flask import abort, request, render_template
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()
@ -38,6 +15,8 @@ def index():
@app.route('/test')
def test():
if request.args:
LOGGER.debug(request.args['testing'])
form = NewItemForm()
return render_template("test.html", form=form)
@ -67,11 +46,15 @@ def insert():
case _:
abort(400)
@app.route(f'/{APPNAME}/<string:user>', methods=['GET'])
@app.route(f'/{APPNAME}/<int:year>/<int:month>', methods=['GET'])
@app.route(f'/{APPNAME}/<string:user>/<int:year>', methods=['GET'])
@app.route(f'/{APPNAME}/<string:user>/<int:year>/<int:month>', methods=['GET'])
def get_monthly_report_from_user(user: str = None, year: int = None, month: int = None):
@app.route(f'/{APPNAME}/overview', methods=['GET'])
def get_report_from_user():
user, month, year = []*3
if request.args:
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):
abort(400)
LOGGER.info("Getting results.")