diff --git a/.travis.yml b/.travis.yml index 0895be4f..620c1657 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,4 @@ python: install: echo "No external requirements" script: - cd test - - python run.py + - test.sh diff --git a/test/regression.py b/test/regression.py new file mode 100755 index 00000000..9069f62e --- /dev/null +++ b/test/regression.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +import os +import sys +import unittest + +os.chdir(os.path.dirname(os.path.abspath(__file__)) + '/..') +sys.path.append('.') + +import functions +#functions.set_debug_function(functions.debug.print_to_stdout) + + +class TestRegression(unittest.TestCase): + def get_def(self, src, pos): + return functions.get_definition(src, pos[0], pos[1], '') + + def test_get_definition_cursor(self): + + s = ("class A():\n" + " def _something(self):\n" + " return\n" + " def different_line(self,\n" + " b):\n" + " return\n" + "A._something\n" + "A.different_line" + ) + + + in_name = 2, 9 + under_score = 2, 8 + cls = 2, 7 + should1 = 7, 10 + diff_line = 4, 10 + should2 = 8, 10 + + get_def = lambda pos: [d.description for d in self.get_def(s, pos)] + in_name = get_def(in_name) + under_score = get_def(under_score) + should1 = get_def(should1) + should2 = get_def(should2) + + diff_line = get_def(diff_line) + + assert should1 == in_name + assert should1 == under_score + + #print should2, diff_line + assert should2 == diff_line + + self.assertRaises(functions.NotFoundError, get_def, cls) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test.sh b/test/test.sh new file mode 100755 index 00000000..9c6582a8 --- /dev/null +++ b/test/test.sh @@ -0,0 +1,4 @@ +set -e + +python regression.py +python run.py