skillbox/server/users/tests/test_my_school_classes.py

87 lines
2.7 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.test import TestCase, RequestFactory
from graphene.test import Client
from api.schema import schema
from api.utils import get_graphql_query
from core.factories import UserFactory
from users.factories import SchoolClassFactory
from users.models import SchoolClassMember
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])
self.inactive_class = SchoolClassFactory(users=[self.user])
inactive_member = SchoolClassMember.objects.get(school_class=self.inactive_class)
inactive_member.active = False
inactive_member.save()
request = RequestFactory().get('/')
request.user = self.user
self.client = Client(schema=schema, context_value=request)
def test_user_sees_her_classes(self):
query = '''
query {
me {
schoolClasses {
edges {
node {
id
name
users {
edges {
node {
id
firstName
lastName
permissions
}
}
}
}
}
}
}
}
'''
result = self.client.execute(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')
def test_old_classes(self):
query = get_graphql_query('oldClasses.gql')
result = self.client.execute(query)
old_classes = result.get('data').get('me').get('oldClasses').get('edges')
self.assertEqual(len(old_classes), 1)