def test_delete_empty_linked_list_raises_exception(self):
     linked_list = LinkedList()
     with self.assertRaises(Exception) as context:
         linked_list.delete_node(1)
     self.assertTrue("Linked List is empty!" in str(context.exception))
 def test_delete_last_node_returns_deleted_node(self):
     linked_list = LinkedList([1, 2, 3, 4])
     deleted_node = linked_list.delete_node(4)
     self.assertEqual(deleted_node.data, 4)
 def test_delete_last_node_changes_reference(self):
     linked_list = LinkedList([1, 2, 3, 4])
     linked_list.delete_node(4)
     expected = LinkedList([1, 2, 3])
     self.assertEqual(expected, linked_list)
 def test_delete_head_node_changes_reference(self):
     linked_list = LinkedList([1, 2, 3, 4])
     linked_list.delete_node(1)
     expected = LinkedList([2, 3, 4])
     self.assertEqual(linked_list, expected)