diff --git a/test/test_graphql.py b/test/test_graphql.py
index 8701c10e897d9cf79124587a744d3962c60f38f4..ea12ff11c9c2f8a85c1de16869649f279a0fcd0c 100644
--- a/test/test_graphql.py
+++ b/test/test_graphql.py
@@ -18,9 +18,18 @@ class GraphQlTests(LiveServerTestCase):
 
     def tearDown(self):
         # clean up tables
-        users = User.query.filter_by(username="graphqluser").delete()
-        roles = Role.query.filter_by(name="testusers").delete()
-        db_session.commit()
+        for username in ["graphqluser"]:
+            user = db_session.query(User).filter_by(username=username).first()
+            if user is not None:
+                user.roles = []
+                user.applications = []
+                db_session.delete(user)
+                db_session.commit()
+        role = db_session.query(Role).filter_by(name="testusers").first()
+        if role is not None:
+            role.users = []
+            db_session.delete(role)
+            db_session.commit()
 
 
     def test_query_create_and_get_user(self):