mirror of
https://github.com/Doctorado-ML/beflask.git
synced 2025-08-15 07:05:51 +00:00
123 lines
2.8 KiB
Python
123 lines
2.8 KiB
Python
import pytest
|
|
from sys import platform
|
|
from beflask import app as application
|
|
from flask_login import FlaskLoginClient
|
|
from beflask.models import Benchmark, User, db
|
|
|
|
|
|
class AuthActions(object):
|
|
guest_user = "guest"
|
|
guest_password = "patata"
|
|
|
|
def __init__(self, client):
|
|
self._client = client
|
|
|
|
def login(
|
|
self,
|
|
username=None,
|
|
password=None,
|
|
follow_redirects=False,
|
|
):
|
|
username = username or self.guest_user
|
|
password = password or self.guest_password
|
|
return self._client.post(
|
|
"/login",
|
|
data={"username": username, "password": password},
|
|
follow_redirects=follow_redirects,
|
|
)
|
|
|
|
def logout(self, follow_redirects=False):
|
|
return self._client.get("/logout", follow_redirects=follow_redirects)
|
|
|
|
|
|
@pytest.fixture
|
|
def auth(client):
|
|
return AuthActions(client)
|
|
|
|
|
|
@pytest.fixture
|
|
def app(admin_user, admin_password):
|
|
app = application.create_app("testing")
|
|
app.test_client_class = FlaskLoginClient
|
|
with app.app_context():
|
|
db_seed(db, admin_user, admin_password)
|
|
return app
|
|
|
|
|
|
@pytest.fixture
|
|
def client(app):
|
|
return app.test_client()
|
|
|
|
|
|
@pytest.fixture
|
|
def runner(app):
|
|
return app.test_cli_runner()
|
|
|
|
|
|
@pytest.fixture
|
|
def admin_user():
|
|
return "rmontanana"
|
|
|
|
|
|
@pytest.fixture
|
|
def admin_password():
|
|
return "patito"
|
|
|
|
|
|
@pytest.fixture
|
|
def guest_user():
|
|
return AuthActions.guest_user
|
|
|
|
|
|
@pytest.fixture
|
|
def guest_password():
|
|
return AuthActions.guest_password
|
|
|
|
|
|
def db_seed(db, admin_user, admin_password):
|
|
db.drop_all()
|
|
db.create_all()
|
|
if platform == "linux" or platform == "linux2":
|
|
prefix = "/home"
|
|
elif platform == "darwin":
|
|
prefix = "/Users"
|
|
else:
|
|
prefix = "/home"
|
|
b = Benchmark(
|
|
name="discretizbench",
|
|
folder=f"{prefix}/rmontanana/Code/discretizbench",
|
|
description="Experiments with local discretization and Bayesian"
|
|
"classifiers",
|
|
)
|
|
db.session.add(b)
|
|
b = Benchmark(
|
|
name="odtebench",
|
|
folder=f"{prefix}/rmontanana/Code/odtebench",
|
|
description="Experiments with STree and Ensemble classifiers",
|
|
)
|
|
db.session.add(b)
|
|
b = Benchmark(
|
|
name="covbench",
|
|
folder=f"{prefix}/rmontanana/Code/covbench",
|
|
description="Experiments with COVID-19 dataset",
|
|
)
|
|
db.session.add(b)
|
|
u = User(
|
|
username=admin_user,
|
|
email="rmontanana@gmail.com",
|
|
admin=True,
|
|
benchmark_id=1,
|
|
)
|
|
u.set_password(admin_password)
|
|
u1 = User(
|
|
username=AuthActions.guest_user,
|
|
email="guest@example.com",
|
|
admin=False,
|
|
benchmark_id=1,
|
|
)
|
|
u1.set_password(AuthActions.guest_password)
|
|
db.session.add(b)
|
|
db.session.add(u)
|
|
db.session.add(u1)
|
|
db.session.commit()
|