From d387af0f370bde8168e88778e6c2e221273aa5f4 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 13 Jun 2021 21:41:01 +0200 Subject: [PATCH] add skills integration test --- README.md | 7 +++++++ ki/commands.py | 9 +++++++-- ki/test/__init__.py | 0 ki/test/test_skills_endpoint.py | 33 +++++++++++++++++++++++++++++++++ test.py | 2 ++ 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 ki/test/__init__.py create mode 100644 ki/test/test_skills_endpoint.py create mode 100644 test.py diff --git a/README.md b/README.md index d400144..6450723 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,13 @@ flask run http://localhost:5000/ +### Tests ausführen + +``` +python -m unittest discover ki +``` + + ### Testbenutzer Für ein Login ohne LDAP werden die Benutzer aus der [`auth.yml`](./data/auth.yml) benutzt. diff --git a/ki/commands.py b/ki/commands.py index 119f2cc..3382708 100644 --- a/ki/commands.py +++ b/ki/commands.py @@ -4,11 +4,11 @@ from ki.models import Language, Skill from app import app, db -@app.cli.command("seed") def seed(): - skill_seed_file_path = app.config["KI_DATA_DIR"] + "/seed_data/skills.csv" + print("importing skills") + with open(skill_seed_file_path) as skills_file: skills_csv_reader = csv.DictReader(skills_file) @@ -32,3 +32,8 @@ def seed(): db.session.add(Language(id=iso["639-1"], name=iso["Sprache"])) db.session.commit() + + +@app.cli.command("seed") +def seed_command(): + seed() diff --git a/ki/test/__init__.py b/ki/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ki/test/test_skills_endpoint.py b/ki/test/test_skills_endpoint.py new file mode 100644 index 0000000..0bbb0d6 --- /dev/null +++ b/ki/test/test_skills_endpoint.py @@ -0,0 +1,33 @@ +from alembic import command +import unittest + +from app import app, migrate +from ki.commands import seed + + +class TestSkillsEndpoint(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_get_skills1(self): + response = self.client.get("/skills?search=p") + self.assertEqual(response.status_code, 200) + self.assertEqual( \ + {"skills": [ \ + {"id": 1, "name": "PHP"}, \ + {"id": 3, "name": "Python"} + ]}, \ + response.json \ + ) + + +if __name__ == "main": + unittest.main() diff --git a/test.py b/test.py new file mode 100644 index 0000000..139597f --- /dev/null +++ b/test.py @@ -0,0 +1,2 @@ + +