Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
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