Skip to content
Snippets Groups Projects
Verified Commit 4bf9a49f authored by Mark's avatar Mark
Browse files

Add create application API function

parent bb28b454
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,19 @@ class Application(SQLAlchemyObjectType):
interfaces = (relay.Node, )
class CreateApplication(graphene.Mutation):
class Arguments:
name = graphene.String(required=True)
application = graphene.Field(Application)
def mutate(self, info, name):
application = ApplicationModel(name=name)
user_datastore.db.session().add(application)
user_datastore.commit()
return CreateApplication(application=application)
class Role(SQLAlchemyObjectType):
class Meta:
model = RoleModel
......@@ -86,6 +99,7 @@ class Query(graphene.ObjectType):
class Mutation(graphene.ObjectType):
create_user = UserMutation.Field()
create_role = CreateRole.Field()
create_application = CreateApplication.Field()
add_role_to_user = AddRoleToUser.Field()
......
......@@ -5,7 +5,7 @@ from app import app
from flask_testing import LiveServerTestCase
from json import loads
from database.database import db_session
from database.models import User, Role
from database.models import User, Role, Application
class GraphQlTests(LiveServerTestCase):
......@@ -30,7 +30,11 @@ class GraphQlTests(LiveServerTestCase):
role.users = []
db_session.delete(role)
db_session.commit()
application = db_session.query(Application).filter_by(name="testapp").first()
if application is not None:
application.users = []
db_session.delete(application)
db_session.commit()
def test_query_create_and_get_user(self):
username = "graphqluser"
......@@ -140,3 +144,22 @@ class GraphQlTests(LiveServerTestCase):
description}}}}}}
'''.format(name, description).strip()
return loads(self.client.execute(querystring))
def test_create_application(self):
application_name = "testapp"
result = self._create_application(application_name)
self.assertIn("data", result)
self.assertIn("createApplication", result["data"])
self.assertIn("application", result["data"]["createApplication"])
application = result["data"]["createApplication"]["application"]
self.assertEqual(application["name"], application_name)
def _create_application(self, name):
querystring = '''
mutation{{
createApplication(
name: "{0}"){{
application{{
name}}}}}}
'''.format(name).strip()
return loads(self.client.execute(querystring))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment