Update: Docker Compose (without Frontend now)
This commit is contained in:
parent
f1ae473b40
commit
bce2237303
12 changed files with 54 additions and 281 deletions
7
backend/Dockerfile
Normal file
7
backend/Dockerfile
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
FROM python:latest
|
||||
WORKDIR /data/backend
|
||||
COPY requirements.txt requirements.txt
|
||||
RUN pip install --upgrade pip
|
||||
RUN pip install -r requirements.txt
|
||||
COPY . .
|
||||
CMD [ "python", "-m" , "flask", "run", "--host=0.0.0.0"]
|
||||
|
|
@ -5,4 +5,5 @@ app = create_app()
|
|||
|
||||
if __name__ == "__main__":
|
||||
PORT = os.environ.get('PORT', 33507)
|
||||
print('app.run')
|
||||
app.run(host='0.0.0.0', port=PORT, DEBUG=True)
|
||||
|
|
|
|||
|
|
@ -19,13 +19,17 @@ def create_app():
|
|||
app.config.from_object("config.Config")
|
||||
|
||||
if app.config['SQLALCHEMY_DATABASE_URI_1'] is None or app.config['SQLALCHEMY_DATABASE_URI_2'] is None:
|
||||
print('No ENV Variable for DATABASE_URL_1 or DATABASE_URL_2')
|
||||
print('No ENV Variable for DATABASE_URL_USERS or DATABASE_URL_LOGS')
|
||||
sys.exit(1)
|
||||
else:
|
||||
print('ENV Variables passed : ', app.config['SQLALCHEMY_BINDS'])
|
||||
|
||||
print('init_app')
|
||||
db.init_app(app)
|
||||
with app.app_context():
|
||||
print('import routes')
|
||||
from . import routes
|
||||
print('db.create_all')
|
||||
db.create_all()
|
||||
print('db created')
|
||||
return app
|
||||
|
|
|
|||
|
|
@ -1,19 +1,9 @@
|
|||
print('hashlib')
|
||||
import hashlib
|
||||
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
print('flask_sqlalchemy')
|
||||
from flask_sqlalchemy import inspect
|
||||
|
||||
print('sqlalchemy')
|
||||
from sqlalchemy import asc, desc, or_
|
||||
|
||||
print('users_model')
|
||||
from .users_model import Users, db
|
||||
|
||||
print('logs_model')
|
||||
from .logs_model import Logs
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from flask import request
|
|||
from .responses import send_message, send_error
|
||||
from .api_functions import db_login, db_register, db_user_update, db_create_log, db_user_delete, db_admin_update_user, db_users
|
||||
from .sessionJWT import create_auth_token, check_auth_token
|
||||
print('route imported')
|
||||
|
||||
|
||||
# Login
|
||||
@app.route('/api/login', methods=['POST'])
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
Flask_Migrate
|
||||
Flask_SQLAlchemy
|
||||
Flask_Script
|
||||
Flask
|
||||
sqlalchemy
|
||||
hashlib
|
||||
jwt
|
||||
alembic==1.7.5
|
||||
Flask==2.0.2
|
||||
Flask-Migrate==3.1.0
|
||||
Flask-Script==2.0.6
|
||||
Flask-SQLAlchemy==2.5.1
|
||||
Flask-WTF==0.15.1
|
||||
pipreqs==0.4.10
|
||||
PyJWT==2.3.0
|
||||
pytest==6.2.5
|
||||
SQLAlchemy==1.4.27
|
||||
psycopg2==2.9.2
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
from logs_model import Logs
|
||||
from datetime import date
|
||||
|
||||
|
||||
TAB_LOG = [
|
||||
{
|
||||
"id": 1,
|
||||
"date": date.fromisoformat('2021-12-04'),
|
||||
"user": "riri",
|
||||
"ip": "0.0.0.0",
|
||||
"table": "Users",
|
||||
"action": "connexion",
|
||||
"status": "succes",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"date": date.fromisoformat('2021-12-04'),
|
||||
"user": "fifi",
|
||||
"ip": "0.0.0.0",
|
||||
"table": "Users",
|
||||
"action": "connexion",
|
||||
"status": "succes",
|
||||
"status_code": 200
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"date": date.fromisoformat('2021-12-04'),
|
||||
"user": "loulou",
|
||||
"ip": "0.0.0.0",
|
||||
"table": "Users",
|
||||
"action": "connexion",
|
||||
"status": "succes",
|
||||
"status_code": 200
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def get_log_object(i: int):
|
||||
return Logs(
|
||||
id=TAB_LOG[i]["id"],
|
||||
date=TAB_LOG[i]["date"],
|
||||
user=TAB_LOG[i]["user"],
|
||||
ip=TAB_LOG[i]["ip"],
|
||||
table=TAB_LOG[i]["table"],
|
||||
action=TAB_LOG[i]["action"],
|
||||
status=TAB_LOG[i]["status"],
|
||||
status_code=TAB_LOG[i]["status_code"]
|
||||
)
|
||||
|
||||
|
||||
def get_log_json(i: int):
|
||||
return TAB_LOG[i]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
import sys
|
||||
sys.path.append( "../application" )
|
||||
import users_model
|
||||
import logs_model
|
||||
|
||||
from users_model import Users
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TAB_USER = [
|
||||
{
|
||||
"email": "riri@gmail.com",
|
||||
"hash_pass": "ririPass",
|
||||
"salt": "b'\x98\x95]\xa2B\xe5\x84gN\n1\x11\x1c%\xf7S\x8b\x88\xf7\xaa\x83\xf8$\xa8\xd5A\xd1\xa0\xf7:j\x10'",
|
||||
"is_admin": False
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"email": "fifi@gmail.com",
|
||||
"hash_pass": "fifiPass",
|
||||
"salt": "b'\xa9X9{\xc3\x8c\xe0\xeb\x0b\x01\xd0.o\t\xc0bv\xac\xe2n\x878\xf7\xba\x16\xd6\xee\x94\xc8U\xf0\x15'",
|
||||
"is_admin": False
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"email": "donald@gmail.com",
|
||||
"hash_pass": "donaldPass",
|
||||
"salt": "b'\xefM\xe5q\r\xb2\xc5\xff3\x88\x0c\x87\xa3\xe9F\xd7:\xc1\xc2J\xabvVR&\xe1-|D\xf5L '"
|
||||
"is_admin": False
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"email": "daisy@gmail.com",
|
||||
"hash_pass": "daisyPass",
|
||||
"salt": "b'\x01\xefCC\x05\x1f\x85\xd8\xf0\x02\xd1\x1c\xcb\xab\xec\x87M\x03\xe5T\x05]\x11\xc45<}\xd3\xfbFA\xbb'"
|
||||
"is_admin": True
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def get_user_object(i: int):
|
||||
return Users(
|
||||
id=TAB_USER[i]["id"],
|
||||
email=TAB_USER[i]["email"],
|
||||
login=TAB_USER[i]["login"],
|
||||
hashPass=TAB_USER[i]["hashPass"],
|
||||
isAdmin=TAB_USER[i]["isAdmin"]
|
||||
)
|
||||
|
||||
|
||||
def get_user_json(i: int):
|
||||
return TAB_USER[i]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
|
||||
def initialisation():
|
||||
|
||||
# supprimer: Riri, Fifi, Donald, Daisy
|
||||
#
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
print("debut")
|
||||
|
||||
import sys
|
||||
#sys.path.append( "../application" )
|
||||
|
||||
|
||||
import os
|
||||
os.chdir("../application")
|
||||
print(os.getcwd())
|
||||
from .api_functions import db_register
|
||||
|
||||
|
||||
print("fin")
|
||||
|
||||
|
||||
|
||||
|
||||
#def test_db_register():
|
||||
#
|
||||
# # success
|
||||
# ip = "1.2.3.4.5"
|
||||
# email = "homer@gmail.com"
|
||||
# password = "homerPass"
|
||||
# is_admin = False
|
||||
# result1 = db_register(ip, email, password, is_admin)
|
||||
# assert(result1["status"] == 0)
|
||||
#
|
||||
# # fail: user already exists
|
||||
# result2 = db_register(ip, email, password, is_admin)
|
||||
# assert(result2["status"] == 1)
|
||||
#
|
||||
# # delete the new user
|
||||
# if result1["status"] == 0:
|
||||
|
||||
|
||||
#
|
||||
#
|
||||
#def test_db_login():
|
||||
#
|
||||
# # success
|
||||
# result = db_login(ip, email, password)
|
||||
# assert(result["status"] == 0)
|
||||
#
|
||||
# # fail: email doesn't exist
|
||||
# result = db_login(ip, email, password)
|
||||
# assert(result["status"] == 1)
|
||||
#
|
||||
# # fail: hashPass not correct
|
||||
# assert(result["status"] == 1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# Third party modules
|
||||
import pytest
|
||||
from datetime import date
|
||||
|
||||
from __init__ import create_app, db
|
||||
from users_model import Users
|
||||
from logs_model import Logs
|
||||
|
||||
import fictive_users
|
||||
import ficitve_logs
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def client():
|
||||
app = create_app()
|
||||
|
||||
app.config["TESTING"] = True
|
||||
app.testing = True
|
||||
|
||||
|
||||
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite://"
|
||||
|
||||
client = app.test_client()
|
||||
with app.app_context():
|
||||
db.create_all()
|
||||
|
||||
for i in range(1,6):
|
||||
db.session.add(fictive_users.get_user_object(i))
|
||||
|
||||
for i in range(1,3):
|
||||
db.session.add(ficitve_logs.get_log_object(i))
|
||||
|
||||
db.session.commit()
|
||||
|
||||
yield client
|
||||
|
||||
|
||||
|
||||
def test_get_user(client):
|
||||
index = 1
|
||||
predict_results = client.get("/api/users/{}}".format(index))
|
||||
true_results = fictive_users.get_user_json(index)
|
||||
assert predict_results.json == true_results
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue