From a5cb308d1fc5e5e7165c12906176817f8e1e2d27 Mon Sep 17 00:00:00 2001 From: David Halter Date: Thu, 6 Sep 2012 02:14:04 +0200 Subject: [PATCH] further regression tests --- functions.py | 6 ++++-- test/regression.py | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/functions.py b/functions.py index 61ec0cc4..6767dcf6 100644 --- a/functions.py +++ b/functions.py @@ -62,6 +62,9 @@ class Completion(object): def get_type(self): return type(self.name.parent()) + def __repr__(self): + return '<%s: %s>' % (self.__class__.__name__, self.name) + class Definition(object): def __init__(self, definition): @@ -249,14 +252,13 @@ def get_definition(source, line, column, source_path): scopes = set([f.parser.user_scope]) elif not goto_path: op = f.get_operator_under_cursor() - scopes = set([keywords.get_operator(op)]) + scopes = set([keywords.get_operator(op)] if op else []) else: scopes = _prepare_goto(source, pos, source_path, f, goto_path) # add keywords scopes |= keywords.get_keywords(string=goto_path) - d = set([Definition(s) for s in scopes]) _clear_caches() return d diff --git a/test/regression.py b/test/regression.py index 54344e49..7a81b83f 100755 --- a/test/regression.py +++ b/test/regression.py @@ -14,6 +14,9 @@ class TestRegression(unittest.TestCase): def get_def(self, src, pos): return functions.get_definition(src, pos[0], pos[1], '') + def complete(self, src, pos): + return functions.complete(src, pos[0], pos[1], '') + def test_get_definition_cursor(self): s = ("class A():\n" @@ -65,8 +68,18 @@ class TestRegression(unittest.TestCase): def test_get_definition_at_zero(self): assert self.get_def("a", (1,1)) == set() - ##assert self.get_def("", (1,0)) == set() + s = self.get_def("str", (1,1)) + assert len(s) == 1 + assert list(s)[0].description == 'class str' + assert self.get_def("", (1,0)) == set() + def test_complete_at_zero(self): + s = self.complete("str", (1,3)) + assert len(s) == 1 + assert list(s)[0].word == 'str' + + s = self.complete("", (1,0)) + assert len(s) > 0 if __name__ == '__main__':