# -*- coding: utf-8 -*- # # ITerativ GmbH # http://www.iterativ.ch/ # # Copyright (c) 2019 ITerativ GmbH. All rights reserved. # # Created on 2019-04-09 # @author: chrigu 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')