from django.test import TestCase from graphene import Context from graphene.test import Client from api.schema import schema from core.factories import UserFactory, TeacherFactory from users.factories import TeamFactory from users.models import Role from users.services import create_teacher ME_QUERY = """ query MeQuery { me { team { name code } } } """ CREATE_MUTATION = """ mutation CreateTeamMutation($input: CreateTeamInput!) { createTeam(input: $input) { success team { name code } } } """ class TeamTest(TestCase): def setUp(self): self.client = Client(schema=schema) self.team_name = 'Fiterativ' self.code = 'AAAA' self.team = TeamFactory(name=self.team_name, code=self.code) self.user = TeacherFactory(username='ueli', team=self.team) self.context = Context(user=self.user) def test_team_query(self): result = self.client.execute(ME_QUERY, context=self.context) self.assertIsNone(result.get('errors')) team = result.get('data').get('me').get('team') self.assertEqual(team.get('name'), self.team_name) self.assertEqual(team.get('code'), self.code) def test_join_team_mutation(self): raise NotImplementedError() def test_create_team_mutation(self): team_name = "Dunder Mifflin" variables = { "input": { "name": team_name } } result = self.client.execute(CREATE_MUTATION, context=self.context, variables=variables) self.assertIsNone(result.get('errors')) create_team = result.get('data').get('createTeam') team = create_team.get('team') success = create_team.get('success') self.assertTrue(success) self.assertEqual(team.get('name'), team_name) self.assertIsNotNone(team.get('code'))