def test_get_tasks(self): #check first that tasks exists in the db result = self.root_node.get_children() self.assertIsNotNone(result) self.assertEqual(len(result), 3) #check that the clients request returns the relevant fields for these #assume that the user "knows" the root and task uuid's response = self.client.get('/index/tasks/'+str(self.root_node.uuid)+'/') self.assertEqual(node_serializer(self.task1, [self.completed_node1]), response.data[0]) self.assertEqual(node_serializer(self.task2, [self.text_node2]), response.data[1]) self.assertEqual(node_serializer(self.task3, [self.completed_node3, self.deadline_node3]), response.data[2])
def test_additional_properties(self): serial = node_serializer(self.task1, [self.completed_node1, self.text_node1, self.deadline_node1]) #parse back to dictionary data = json.loads(serial) self.assertEqual(data['is_completed'], str(self.completed_node1.is_completed)) self.assertEqual(data['extra_text'], str(self.text_node1.extra_text)) self.assertEqual(data['deadline'], str(self.deadline_node1.deadline))
def test_basic_properties(self): #serialize without additional properties serial = node_serializer(self.task1, []) #parse back to dictionary data = json.loads(serial) self.assertEqual(data['parent'], str(self.root_node.uuid)) self.assertEqual(data['uuid'], str(self.task1.uuid)) self.assertEqual(data['title'], self.task1.title)
def __single_task(node): properties = [] #add all possible properties possible_properties = [IsCompletedPropertyNode, TextPropertyNode, DeadlinePropertyNode] for p_type in possible_properties: try: p_node = p_type.objects.get(parent_node=node) properties.append(p_node) except p_type.DoesNotExist: pass return node_serializer(node, properties)
def test_get_task(self): #check that the clients request returns the relevant fields for these #assume that the user "knows" the root and task uuid's response = self.client.get('/index/tasks/'+str(self.root_node.uuid)+'/'+str(self.task3.uuid)+"/") self.assertEqual(node_serializer(self.task3, [self.completed_node3, self.deadline_node3]), response.data)