forked from kompetenzinventar/ki-backend
fix db error on second login
This commit is contained in:
parent
b09b072261
commit
5d259635a2
@ -6,3 +6,9 @@
|
|||||||
language: system
|
language: system
|
||||||
files: ^.*\.py$
|
files: ^.*\.py$
|
||||||
exclude: ^(migrations).*$
|
exclude: ^(migrations).*$
|
||||||
|
- id: unittest
|
||||||
|
name: unittest
|
||||||
|
entry: python -m unittest discover ki
|
||||||
|
language: system
|
||||||
|
exclude: .*
|
||||||
|
always_run: true
|
||||||
|
@ -13,7 +13,7 @@ class User(db.Model):
|
|||||||
auth_id = Column(String(50), nullable=False, unique=True)
|
auth_id = Column(String(50), nullable=False, unique=True)
|
||||||
profile_id = Column(Integer, ForeignKey("profile.id"), nullable=True)
|
profile_id = Column(Integer, ForeignKey("profile.id"), nullable=True)
|
||||||
|
|
||||||
tokens = relationship("Token", uselist=False, back_populates="user")
|
tokens = relationship("Token", back_populates="user")
|
||||||
profile = relationship("Profile", back_populates="user")
|
profile = relationship("Profile", back_populates="user")
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
|
39
ki/test/test_login_endpoint.py
Normal file
39
ki/test/test_login_endpoint.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
from alembic import command
|
||||||
|
import json
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from app import app, migrate
|
||||||
|
from ki.commands import seed
|
||||||
|
|
||||||
|
|
||||||
|
class TestLoginEndpoint(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
app.debug = 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()
|
||||||
|
|
||||||
|
def test_login(self):
|
||||||
|
response1_data = self.login()
|
||||||
|
response2_data = self.login()
|
||||||
|
self.assertNotEqual(response1_data["token"], response2_data["token"])
|
||||||
|
|
||||||
|
def login(self):
|
||||||
|
response = self.client.post("/users/login",
|
||||||
|
data=json.dumps({
|
||||||
|
"username": "peter",
|
||||||
|
"password": "geheim"
|
||||||
|
}),
|
||||||
|
content_type="application/json")
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
self.assertIn("token", response.json)
|
||||||
|
return response.json
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "main":
|
||||||
|
unittest.main()
|
@ -15,12 +15,15 @@ class TestProfileEndpoint(unittest.TestCase):
|
|||||||
self.client = app.test_client()
|
self.client = app.test_client()
|
||||||
|
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
|
db.drop_all()
|
||||||
|
db.engine.dispose()
|
||||||
config = migrate.get_config()
|
config = migrate.get_config()
|
||||||
command.upgrade(config, "head")
|
command.upgrade(config, "head")
|
||||||
|
|
||||||
seed()
|
seed()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
db.drop_all()
|
||||||
db.engine.dispose()
|
db.engine.dispose()
|
||||||
|
|
||||||
def test_create_profile(self):
|
def test_create_profile(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user