skillbox/server/users/tests/test_my_school_classes.py

77 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
#
# ITerativ GmbH
# http://www.iterativ.ch/
#
# Copyright (c) 2019 ITerativ GmbH. All rights reserved.
#
# Created on 2019-04-09
# @author: chrigu <christian.cueni@iterativ.ch>
from django.conf import settings
from django.test import TestCase, RequestFactory
from graphene.test import Client
from api.schema import schema
from core.factories import UserFactory
from django.contrib.auth import authenticate
from users.factories import SchoolClassFactory
class MySchoolClasses(TestCase):
def setUp(self):
self.user = UserFactory(username='aschi')
self.another_user = UserFactory(username='pesche')
self.class1 = SchoolClassFactory(users=[self.user, self.another_user])
self.class2 = SchoolClassFactory(users=[self.user])
self.class3 = SchoolClassFactory(users=[self.another_user])
request = RequestFactory().get('/')
request.user = self.user
self.client = Client(schema=schema, context_value=request)
def make_query(self):
query = '''
query {
me {
schoolClasses {
edges {
node {
id
name
users {
edges {
node {
id
firstName
lastName
permissions
}
}
}
}
}
}
}
}
'''
return self.client.execute(query)
def test_user_sees_her_classes(self):
result = self.make_query()
classes = result.get('data').get('me').get('schoolClasses').get('edges')
self.assertEqual(len(classes), 2)
for school_class in classes:
if school_class.get('name') == self.class1:
self.assertEqual(len(school_class.get('node')), 2)
elif school_class.get('name') == self.class2:
self.assertEqual(len(school_class.get('node')), 1)
elif school_class.get('name') == self.class2:
self.fail('MySchoolClassTest:test_user_sees_her_classes: Class should not be in response')