def testChildAdd(self): """ Test to see if adding a child item works as it should. """ items = ["elephant", "rat"] new_node1 = Node("elephant") new_node2 = Node("rat") i = 0 self.node1.child = new_node1 new_node1.parent = self.node1 new_node1.next = new_node2 new_node2.prev = new_node1 for node in self.node1.child.iter(): self.assertEquals(node.name, items[i]) i += 1
def setUp(self): """ Set up a simple node tree to use in testing. """ self.node1 = Node("test1") self.node11 = Node("command11") self.node2 = Node("test2") self.node21 = Node("test21") self.node22 = Node("test22") self.node23 = Node("test23") self.node221 = Node("command221") self.node222 = Node("command222") self.node231 = Node("command231") self.node232 = Node("command232") self.node1.next = self.node2 self.node2.prev = self.node1 self.node1.child = self.node11 self.node11.parent = self.node1 self.node2.child = self.node21 self.node21.parent = self.node2 self.node21.next = self.node22 self.node22.prev = self.node21 self.node22.next = self.node23 self.node23.prev = self.node22 self.node22.child = self.node221 self.node221.parent = self.node22 self.node221.next = self.node222 self.node222.prev = self.node221 self.node23.child = self.node231 self.node231.parent = self.node23 self.node231.next = self.node232 self.node232.prev = self.node231
class NodeTestCase(TestCase): """ These tests go through node functionality provided by structure. """ def setUp(self): """ Set up a simple node tree to use in testing. """ self.node1 = Node("test1") self.node11 = Node("command11") self.node2 = Node("test2") self.node21 = Node("test21") self.node22 = Node("test22") self.node23 = Node("test23") self.node221 = Node("command221") self.node222 = Node("command222") self.node231 = Node("command231") self.node232 = Node("command232") self.node1.next = self.node2 self.node2.prev = self.node1 self.node1.child = self.node11 self.node11.parent = self.node1 self.node2.child = self.node21 self.node21.parent = self.node2 self.node21.next = self.node22 self.node22.prev = self.node21 self.node22.next = self.node23 self.node23.prev = self.node22 self.node22.child = self.node221 self.node221.parent = self.node22 self.node221.next = self.node222 self.node222.prev = self.node221 self.node23.child = self.node231 self.node231.parent = self.node23 self.node231.next = self.node232 self.node232.prev = self.node231 def testName(self): """ Test to see if name of a node matches as it should. """ self.assertEquals(self.node1.name, "test1") self.node1.name = "giraffe" self.assertEquals(self.node1.name, "giraffe") def testItemAdd(self): """ Test to see if adding an item works. """ items = ["test1", "cat"] self.node1.next = Node("cat") i = 0 for node in self.node1.iter(): self.assertEquals(node.name, items[i]) i += 1 def testChildAdd(self): """ Test to see if adding a child item works as it should. """ items = ["elephant", "rat"] new_node1 = Node("elephant") new_node2 = Node("rat") i = 0 self.node1.child = new_node1 new_node1.parent = self.node1 new_node1.next = new_node2 new_node2.prev = new_node1 for node in self.node1.child.iter(): self.assertEquals(node.name, items[i]) i += 1 def testGetPath(self): """ Test to see if paths are generated as expected. """ self.assertEquals(self.node1.get_path(), "/test1/command11/") self.assertEquals(self.node11.get_path(), "/test1/command11/") self.assertEquals(self.node2.get_path(), "/test2/test21/") self.assertEquals(self.node21.get_path(), "/test2/test21/") self.assertEquals(self.node22.get_path(), "/test2/test22/command221/") self.assertEquals(self.node23.get_path(), "/test2/test23/command231/") self.assertEquals(self.node221.get_path(), "/test2/test22/command221/") self.assertEquals(self.node222.get_path(), "/test2/test22/command222/") self.assertEquals(self.node231.get_path(), "/test2/test23/command231/") self.assertEquals(self.node232.get_path(), "/test2/test23/command232/") def testIsActive(self): """ Test to see if node is considered active. Ie. it matches to given path well enough. """ request = get_request("/foo/", "GET") self.assertEquals(self.node1.is_active(request), False) request = get_request("/test1/", "GET") self.assertEquals(self.node1.is_active(request), True) request = get_request("/foo/", "GET") self.assertEquals(self.node11.is_active(request), False) request = get_request("/test1/command11/", "GET") self.assertEquals(self.node11.is_active(request), True) # -----------FOLLOWING TESTS ARE RELATED TO NAVIGATION LOGIC (TAGS)!------------ def testGetTreeDepth(self): """ Test to determine if the depth of a tree is calculated the way it should be. """ self.assertEquals(get_tree_depth(None), 0) self.assertEquals(get_tree_depth(self.node1), 1) self.assertEquals(get_tree_depth(self.node11), 0) self.assertEquals(get_tree_depth(self.node2), 2) self.assertEquals(get_tree_depth(self.node21), 0) self.assertEquals(get_tree_depth(self.node22), 1) self.assertEquals(get_tree_depth(self.node23), 1) self.assertEquals(get_tree_depth(self.node221), 0) self.assertEquals(get_tree_depth(self.node222), 0) self.assertEquals(get_tree_depth(self.node231), 0) self.assertEquals(get_tree_depth(self.node232), 0) def testHasCommands(self): """ Test to determine whether or not a node contains commands. """ self.assertEquals(contains_commands(self.node1), True) self.assertEquals(contains_commands(self.node11), False) self.assertEquals(contains_commands(self.node2), False) self.assertEquals(contains_commands(self.node21), False) self.assertEquals(contains_commands(self.node22), True) self.assertEquals(contains_commands(self.node23), True) self.assertEquals(contains_commands(self.node221), False) self.assertEquals(contains_commands(self.node222), False) self.assertEquals(contains_commands(self.node231), False) self.assertEquals(contains_commands(self.node232), False) def testRender(self): """ Test to see if node is rendered as expected. """ request = get_request("/foo/", "GET") self.assertEquals(render_node(request, self.node1), '<a href="/test1/command11/">Test1</a>') request = get_request("/test1/command11/", "GET") self.assertEquals(render_node(request, self.node1), "<span>Test1</span>") request = get_request("/foo/", "GET") self.assertEquals(render_node(request, self.node11), '<a href="/test1/command11/">Command11</a>') request = get_request("/test1/command11/", "GET") self.assertEquals(render_node(request, self.node11), "<span>Command11</span>") # ------------------------------URL PATTERN TESTS------------------------------- def testAddPathsToURLPatterns(self): """ Test to see if URL patterns are generated properly. """ regex_list = [ "^$", "^test1/command11/$", "^test2/test21/$", "^test2/test22/command221/$", "^test2/test22/command222/$", "^test2/test23/command231/$", "^test2/test23/command232/$", ] urlpatterns = patterns("navigation.views", (r"^$", "test")) self.assertEquals(self.node1.get_path(), "/test1/command11/") self.assertEquals(self.node11.get_path(), "/test1/command11/") self.assertEquals(self.node2.get_path(), "/test2/test21/") self.assertEquals(self.node21.get_path(), "/test2/test21/") self.assertEquals(self.node22.get_path(), "/test2/test22/command221/") self.assertEquals(self.node23.get_path(), "/test2/test23/command231/") self.assertEquals(self.node221.get_path(), "/test2/test22/command221/") self.assertEquals(self.node222.get_path(), "/test2/test22/command222/") self.assertEquals(self.node231.get_path(), "/test2/test23/command231/") self.assertEquals(self.node232.get_path(), "/test2/test23/command232/") add_paths_to_urlpatterns(urlpatterns, self.node1) i = 0 for pattern in urlpatterns: regex = repr(pattern).split(" ")[-1][:-1] self.assertEquals(regex, regex_list[i]) i += 1