45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
# SPDX-FileCopyrightText: WTF Kooperative eG <https://wtf-eg.de/>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
from alembic import command
|
|
import json
|
|
import unittest
|
|
|
|
from app import app, db, migrate
|
|
from ki.actions import seed
|
|
from ki.models import Skill
|
|
|
|
|
|
class ApiTest(unittest.TestCase):
|
|
maxDiff = None
|
|
|
|
def setUp(self):
|
|
app.debug = True
|
|
app.config["KI_AUTH"] = "file"
|
|
app.config["TESTING"] = True
|
|
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:"
|
|
|
|
self.client = app.test_client()
|
|
|
|
with app.app_context():
|
|
config = migrate.get_config()
|
|
command.upgrade(config, "head")
|
|
|
|
seed(True)
|
|
max_skill = Skill.query.order_by(Skill.id.desc()).first()
|
|
self.max_skill_id = max_skill.id
|
|
|
|
def tearDown(self):
|
|
db.drop_all()
|
|
db.engine.dispose()
|
|
|
|
def login(self, username, password):
|
|
login_data = {"username": username, "password": password}
|
|
login_response = self.client.post("/users/login", data=json.dumps(login_data), content_type="application/json")
|
|
|
|
self.assertEqual(login_response.status_code, 200)
|
|
self.assertIn("token", login_response.json)
|
|
|
|
return login_response.json
|