73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
from graphql_relay import from_global_id
|
|
|
|
from core.tests.base_test import SkillboxTestCase
|
|
from core.tests.helpers import GQLResult
|
|
|
|
class GQLRoom:
|
|
def __init__(self, room_data):
|
|
self.id = room_data.get('id')
|
|
self.slug = room_data.get('slug')
|
|
self.title = room_data.get('title')
|
|
self.entry_count = room_data.get('entryCount')
|
|
self.appearance = room_data.get('appearance')
|
|
self.description = room_data.get('description')
|
|
self.school_class = room_data.get('schoolClass')
|
|
|
|
class AddRoomResult:
|
|
def __init__(self, result: GQLResult):
|
|
self.room = GQLRoom(result.data.get('addRoom').get('room'))
|
|
# id
|
|
# slug
|
|
# title
|
|
# entryCount
|
|
# appearance
|
|
# description
|
|
# schoolClass {
|
|
# id
|
|
# name
|
|
# }
|
|
|
|
class NewRoomMutationTestCase(SkillboxTestCase):
|
|
def setUp(self) -> None:
|
|
self.createDefault()
|
|
|
|
def test_create_new_room(self):
|
|
mutation = """
|
|
mutation AddRoom($input: AddRoomInput!){
|
|
addRoom(input: $input) {
|
|
room {
|
|
id
|
|
slug
|
|
title
|
|
entryCount
|
|
appearance
|
|
description
|
|
schoolClass {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
"""
|
|
title = 'some title'
|
|
appearance='blue'
|
|
res = self.get_client().execute(mutation, variables={
|
|
'input': {
|
|
'room': {
|
|
'title': title,
|
|
# description
|
|
'appearance': appearance
|
|
}
|
|
}
|
|
})
|
|
result = GQLResult(res)
|
|
self.assertIsNone(result.errors)
|
|
room = GQLRoom(result.data.get('addRoom').get('room'))
|
|
self.assertEqual(room.title, title)
|
|
self.assertEqual(room.appearance, appearance)
|
|
self.assertIsNone(room.description)
|
|
self.assertEqual(int(from_global_id(room.school_class.get('id'))[1]), self.teacher.selected_class.id)
|
|
|
|
|