Add new tests for projects
This commit is contained in:
parent
5b83b04a0a
commit
47572bb212
|
|
@ -0,0 +1,23 @@
|
||||||
|
from django.test import RequestFactory, TestCase
|
||||||
|
from graphene.test import Client
|
||||||
|
from api.schema import schema
|
||||||
|
from users.models import User
|
||||||
|
from users.services import create_users
|
||||||
|
|
||||||
|
|
||||||
|
def create_client(user):
|
||||||
|
request = RequestFactory().get('/')
|
||||||
|
request.user = user
|
||||||
|
return Client(schema=schema, context_value=request)
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultUserTestCase(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
create_users()
|
||||||
|
|
||||||
|
self.teacher = User.objects.get(username='teacher')
|
||||||
|
self.teacher2 = User.objects.get(username='teacher2')
|
||||||
|
self.student1 = User.objects.get(username='student1')
|
||||||
|
self.student2 = User.objects.get(username='student2')
|
||||||
|
self.student_second_class = User.objects.get(username='student_second_class')
|
||||||
|
|
||||||
|
|
@ -1,25 +1,13 @@
|
||||||
from django.test import RequestFactory, TestCase
|
|
||||||
from graphene.test import Client
|
|
||||||
from graphql_relay import to_global_id
|
from graphql_relay import to_global_id
|
||||||
|
|
||||||
from api.utils import get_graphql_mutation
|
from api.test_utils import create_client, DefaultUserTestCase
|
||||||
from assignments.models import Assignment, StudentSubmission
|
from assignments.models import Assignment, StudentSubmission
|
||||||
from books.factories import ModuleFactory
|
|
||||||
from ..factories import AssignmentFactory
|
from ..factories import AssignmentFactory
|
||||||
from users.models import User
|
|
||||||
from users.services import create_users
|
|
||||||
from api.schema import schema
|
|
||||||
|
|
||||||
|
|
||||||
class AssignmentPermissionsTestCase(TestCase):
|
class AssignmentPermissionsTestCase(DefaultUserTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
create_users()
|
super(AssignmentPermissionsTestCase, self).setUp()
|
||||||
|
|
||||||
self.teacher = User.objects.get(username='teacher')
|
|
||||||
self.teacher2 = User.objects.get(username='teacher2')
|
|
||||||
self.student1 = User.objects.get(username='student1')
|
|
||||||
self.student2 = User.objects.get(username='student2')
|
|
||||||
self.student_second_class = User.objects.get(username='student_second_class')
|
|
||||||
self.assignment = AssignmentFactory(
|
self.assignment = AssignmentFactory(
|
||||||
owner=self.teacher
|
owner=self.teacher
|
||||||
)
|
)
|
||||||
|
|
@ -27,10 +15,6 @@ class AssignmentPermissionsTestCase(TestCase):
|
||||||
self.assignment_id = to_global_id('AssignmentNode', self.assignment.pk)
|
self.assignment_id = to_global_id('AssignmentNode', self.assignment.pk)
|
||||||
self.module_id = to_global_id('ModuleNode', self.assignment.module.pk)
|
self.module_id = to_global_id('ModuleNode', self.assignment.module.pk)
|
||||||
|
|
||||||
def _create_client(self, user):
|
|
||||||
request = RequestFactory().get('/')
|
|
||||||
request.user = user
|
|
||||||
return Client(schema=schema, context_value=request)
|
|
||||||
|
|
||||||
def _submit_submission(self, user=None):
|
def _submit_submission(self, user=None):
|
||||||
mutation = '''
|
mutation = '''
|
||||||
|
|
@ -53,9 +37,9 @@ class AssignmentPermissionsTestCase(TestCase):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
client = self._create_client(self.student1)
|
client = create_client(self.student1)
|
||||||
else:
|
else:
|
||||||
client = self._create_client(user)
|
client = create_client(user)
|
||||||
|
|
||||||
return client.execute(mutation, variables={
|
return client.execute(mutation, variables={
|
||||||
'input': {
|
'input': {
|
||||||
|
|
@ -82,7 +66,7 @@ class AssignmentPermissionsTestCase(TestCase):
|
||||||
self.assertEqual(StudentSubmission.objects.count(), 1)
|
self.assertEqual(StudentSubmission.objects.count(), 1)
|
||||||
|
|
||||||
def _test_visibility(self, user, count):
|
def _test_visibility(self, user, count):
|
||||||
client = self._create_client(user)
|
client = create_client(user)
|
||||||
query = '''
|
query = '''
|
||||||
query AssignmentWithSubmissions($id: ID!) {
|
query AssignmentWithSubmissions($id: ID!) {
|
||||||
assignment(id: $id) {
|
assignment(id: $id) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
from api.test_utils import create_client, DefaultUserTestCase
|
||||||
|
from portfolio.models import Project
|
||||||
|
|
||||||
|
|
||||||
|
class ProjectMutationsTestCase(DefaultUserTestCase):
|
||||||
|
def test_add_project(self):
|
||||||
|
client = create_client(self.student1)
|
||||||
|
mutation = """
|
||||||
|
mutation AddProjectMutation($input: AddProjectInput!){
|
||||||
|
addProject(input: $input){
|
||||||
|
project {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
errors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
result = client.execute(mutation, variables={
|
||||||
|
'input': {
|
||||||
|
"project": {
|
||||||
|
"title": "Rick Astley",
|
||||||
|
"description": "She wants to dance with me",
|
||||||
|
"objectives": "Dance with me",
|
||||||
|
"appearance": "green"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
self.assertIsNone(result.get('errors'))
|
||||||
|
self.assertEqual(Project.objects.count(), 1)
|
||||||
|
|
@ -7,8 +7,6 @@ from core.factories import UserFactory
|
||||||
from rooms.factories import RoomEntryFactory, RoomFactory
|
from rooms.factories import RoomEntryFactory, RoomFactory
|
||||||
from rooms.models import RoomEntry
|
from rooms.models import RoomEntry
|
||||||
from users.factories import SchoolClassFactory
|
from users.factories import SchoolClassFactory
|
||||||
from users.services import create_users
|
|
||||||
|
|
||||||
|
|
||||||
class RoomEntryMutationsTestCase(TestCase):
|
class RoomEntryMutationsTestCase(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue