77 lines
2.3 KiB
Python
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 PasswordUpdate(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')
|
|
|
|
|
|
|