From f6b5de825bd324b62d369c8297ae5f20b8c33d58 Mon Sep 17 00:00:00 2001 From: Mark <mark@openappstack.net> Date: Tue, 10 Sep 2019 12:35:05 +0200 Subject: [PATCH] Add createUser API test --- requirements.txt | 2 ++ test/test_graphql.py | 44 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/requirements.txt b/requirements.txt index c94686f..e39c4ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,8 @@ sqlalchemy psycopg2 flask-sqlalchemy flask-security +flask-testing graphene_sqlalchemy Flask-GraphQL bcrypt +graphqlclient diff --git a/test/test_graphql.py b/test/test_graphql.py index 98b9e2d..3de3f0b 100644 --- a/test/test_graphql.py +++ b/test/test_graphql.py @@ -1,17 +1,45 @@ - +from graphqlclient import GraphQLClient import unittest from os import environ from app import app +from flask_testing import LiveServerTestCase +from json import loads +from database.database import db_session +from database.models import User + +class GraphQlTests(LiveServerTestCase): -class GraphQlTests(unittest.TestCase): + def create_app(self): + app.config["TESTING"] = True + return app def setUp(self): - self.app = app.test_client() - self.app.testing = True + self.client = GraphQLClient(self.get_server_url()+"/graphql") def tearDown(self): - pass + # clean up tables + users = User.query.filter_by(username="graphqluser").delete() + db_session.commit() - def test_graphql_home(self): - result = self.app.get('/graphql') - self.assertEqual(result.status_code, 400) + def test_query_create_user(self): + username = "graphqluser" + password = "randompassword" + email = "user@example.com" + querystring = ''' + mutation{{ + createUser( + username: "{0}", + password: "{1}", + email: "{2}"){{ + user{{ + username, + email}}}}}} + '''.format(username, password, email).strip() + result = loads(self.client.execute(querystring)) + self.assertNotIn("error", result, "Creating user failed due to an error") + self.assertIn("data", result) + self.assertIn("createUser", result["data"]) + self.assertIn("user", result["data"]["createUser"]) + user = result["data"]["createUser"]["user"] + self.assertEqual(user["username"], username) + self.assertEqual(user["email"], email) -- GitLab