skillbox/server/users/tests/test_teams.py

69 lines
2.0 KiB
Python

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'))