Пример #1
0
    def test_one_function(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test1.py"

        filenode = FileNode(test_file, "test1.py")
        filenode.scope = [1, 3]
        fncnode = FncNode(test_file, "test")
        fncnode.scope = [1, 3]
        fncnode.parent = filenode
        filenode.add_child(fncnode)
        gold = filenode

        output = pyrser(test_file)

        self.assertEqual(gold, output)
Пример #2
0
    def test_dir_with_two_nonempty_py(self):
        directory = "/home/kemri/Projects/pyrser/test_files/test_dir4"

        dirnode = DirNode(directory, "test_dir4")

        filenode = FileNode(directory + "/test1.py", "test1.py")
        filenode.scope = [1, 3]
        fncnode = FncNode(directory + "/test1.py", "test")
        fncnode.parent = filenode
        fncnode.scope = [1, 3]
        filenode.add_child(fncnode)
        filenode.parent = dirnode
        dirnode.add_child(filenode)

        filenode2 = FileNode(directory + "/test2.py", "test2.py")
        filenode2.scope = [1, 3]
        fncnode2 = FncNode(directory + "/test2.py", "test")
        fncnode2.parent = filenode2
        fncnode2.scope = [1, 3]
        filenode2.add_child(fncnode2)
        filenode2.parent = dirnode
        dirnode.add_child(filenode2)

        gold = dirnode
        output = pyrser(directory)

        self.assertEqual(output, gold)
Пример #3
0
    def test_dir_within_dir(self):
        directory = "/home/kemri/Projects/pyrser/test_files/test_dir5"
        dirnode = DirNode(directory, "test_dir5")
        nested_dir = DirNode(directory + "/test_dir3", "test_dir3")
        nested_dir.parent = dirnode

        filenode = FileNode(directory + "/test_dir3" + "/test1.py", "test1.py")
        filenode.scope = [1, 3]
        fncnode = FncNode(directory + "/test_dir3" + "/test1.py", "test")
        fncnode.parent = filenode
        fncnode.scope = [1, 3]
        filenode.add_child(fncnode)
        filenode.parent = nested_dir
        nested_dir.add_child(filenode)
        dirnode.add_child(nested_dir)

        gold = dirnode
        output = pyrser(directory)

        self.assertEqual(output, gold)
Пример #4
0
    def test_with_calls(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test6.py"

        filenode = FileNode(test_file, "test6.py")
        filenode.scope = [1, 6]

        fnc1 = FncNode(test_file, "say_hi")
        fnc1.scope = [1, 2]

        fnc2 = FncNode(test_file, "use_hi")
        fnc2.scope = [5, 6]
        fnc2.add_call(fnc1)

        filenode.add_child(fnc1)
        filenode.add_child(fnc2)
        gold = filenode

        output = pyrser(test_file)

        self.assertEqual(gold, output)
Пример #5
0
    def test_two_functions(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test2.py"

        filenode = FileNode(test_file, "test2.py")
        filenode.scope = [1, 6]

        test = FncNode(test_file, "test")
        test.scope = [1, 3]
        test.parent = filenode

        test2 = FncNode(test_file, "test2")
        test2.scope = [5, 6]
        test2.parent = filenode

        filenode.add_child(test)
        filenode.add_child(test2)
        gold = filenode

        output = pyrser(test_file)
        
        self.assertEqual(gold, output)
Пример #6
0
    def test_nested_function_with_simple_after(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test4.py"

        filenode = FileNode(test_file, "test4.py")
        filenode.scope = [1, 6]

        test1 = FncNode(test_file, "test1")
        test1.scope = [1, 3]
        test1.parent = filenode

        test1_1 = FncNode(test_file, "test1_1")
        test1_1.scope = [2, 3]
        test1_1.parent = test1

        test2 = FncNode(test_file, "test2")
        test2.scope = [5, 6]
        test2.parent = filenode

        filenode.add_child(test1)
        test1.add_child(test1_1)
        filenode.add_child(test2)
        gold = filenode

        output = pyrser(test_file)

        self.assertEqual(gold, output)
Пример #7
0
    def test_nested_function_at_end(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test3.py"

        filenode = FileNode(test_file, "test3.py")
        filenode.scope = [1, 7]

        test = FncNode(test_file, "test")
        test.scope = [1, 3]
        test.parent = filenode

        test2 = FncNode(test_file, "test2")
        test2.scope = [5, 7]
        test2.parent = filenode

        test2_1 = FncNode(test_file, "test2_1")
        test2_1.scope = [6, 7]
        test2_1.parent = test2

        filenode.add_child(test)
        test2.add_child(test2_1)
        filenode.add_child(test2)
        gold = filenode

        output = pyrser(test_file)
        
        self.assertEqual(gold, output)
Пример #8
0
    def test_mixed_classes_and_functions(self):
        test_file = "/home/kemri/Projects/pyrser/test_files/test5.py"

        filenode = FileNode(test_file, "test5.py")
        filenode.scope = [1, 16]

        fnc1 = FncNode(test_file, "fnc1")
        fnc1.scope = [1, 3]
        inner = FncNode(test_file, "inner")
        inner.scope = [2, 3]
        fnc1.add_child(inner)

        cls1 = ClsNode(test_file, "cls1")
        cls1.scope = [6, 8]

        cls2 = ClsNode(test_file, "cls2")
        cls2.scope = [11, 12]

        fnc2 = FncNode(test_file, "fnc2")
        fnc2.scope = [15, 16]

        filenode.add_child(fnc1)
        filenode.add_child(cls1)
        filenode.add_child(cls2)
        filenode.add_child(fnc2)
        gold = filenode

        output = pyrser(test_file)

        self.assertEqual(gold, output)