diff --git a/ftest.py b/ftest.py index 10fef9d8..3ded0335 100755 --- a/ftest.py +++ b/ftest.py @@ -8,6 +8,7 @@ functions.debug.ignored_modules = ['parsing', 'builtin'] functions.modules.module_find_path.insert(0, '.') f_name = 'parsetest.py' +#f_name = 'test/completion/classes.py' import os path = os.path.join(os.getcwd(), f_name) @@ -15,6 +16,7 @@ f = open(path) code = f.read() for i in range(1): completions = functions.complete(code, 160, 200, path) + #completions = functions.complete(code, 42, 200, path) print '\n', ', '.join(sorted(str(c) for c in completions)) #print [n.name for n in completions] diff --git a/test/completion/classes.py b/test/completion/classes.py index 6acf8f9d..2d1a02a0 100644 --- a/test/completion/classes.py +++ b/test/completion/classes.py @@ -1,19 +1,27 @@ +# set variables, which should not be included, because they don't belong to the +# class +second = 1 +second = "" class TestClass(object): var_class = TestClass(1) def __init__(self2, first_param, second_param): - self2.var_inst = first_aparam + self2.var_inst = first_param self2.second = second_param + self2.first = first_param - def get_var_inst(self): + def var_func(self): + return 1 + + def get_first(self): # traversal self.second_new = self.second return self.var_inst def values(self): self.var_local = 3 - #? ['var_class', 'var_inst', 'var_local'] + #? ['var_class', 'var_func', 'var_inst', 'var_local'] self.var_ def ret(self, a1): @@ -21,10 +29,10 @@ class TestClass(object): inst = TestClass(1) -#? ['var_class', 'var_inst', 'var_local'] +#? ['var_class', 'var_func', 'var_inst', 'var_local'] inst.var -#? ['var_class'] +#? ['var_class', 'var_func'] TestClass.var #? ['real'] @@ -39,10 +47,39 @@ inst.ret(1).real myclass = TestClass(1, '') #? ['real'] -TestClass(1).var_inst. +myclass.get_first().real +#? [] +myclass.get_first().upper +#? [] +myclass.get_first.real + +# too many params #? ['real'] -myclass.get_var_inst().real +TestClass(1,1,1).var_inst.real + +# too few params +#? ['real'] +TestClass(1).first.real #? [] -myclass.get_var_inst().upper +TestClass(1).second.real + +# complicated variable settings in class +#? ['upper'] +myclass.second.upper #? [] -myclass.get_var_inst.real +myclass.second.real +#? ['upper'] +myclass.second_new.upper +#? [] +myclass.second_new.real + +# multiple classes / ordering +ints = TestClass(1, 1.0) +strs = TestClass("", '') +#? ['real'] +ints.second.real +#? ['upper'] +strs.second.upper + +#? ['var_class'] +TestClass.var_class.var_class.var_class.var_class