def test_unicode_in_defn(self): self.doc.buffer, self.positions = unmark_text(dedent(u""" #Ůɳíčóďé<3> my $pCnt = 0;<1> # Some filler text to make sure we do not accidentally find the # previous definition $p<2>Cnt++; """).strip()) self.assertGreater(self.positions[3], len("#Unicode"), "Unicode positions are character positions " "instead of byte positions") spinner = AsyncSpinner(self, callback=partial(setattr, self, "trg")) with spinner: self.buf.defn_trg_from_pos(self.positions[2], spinner) self.assertIsNotNone(self.trg) self.assertEqual(self.trg.form, TRG_FORM_DEFN) handler = UIHandler(spinner) with spinner: spinner.callback = None self.buf.async_eval_at_trg(self.trg, handler, Ci.koICodeIntelBuffer.EVAL_SILENT) self.assertEqual(len(handler.defns), 1) self.assertEqual(handler.defns[0].lang, "Perl") self.assertEqual(handler.defns[0].name, "$pCnt") self.assertEqual([handler.defns[0].line], lines_from_pos(self.doc.buffer, [self.positions[1]])) self.assertEqual(handler.defns[0].ilk, "variable")
def test_def_decl_trailing_comma(self): """Test having a trailing comma in a function definition; this needs to be invalid in Python 2 but valid in Python 3.""" test_dir = join(self.test_dir, "def_decl_trailing_comma") content, pos = unmark_text(dedent("""\ def foo<1>(arg:int,): arg<2> """)) path = join(test_dir, "def_decl_trailing_comma.py") writefile(path, content) buf = self.mgr.buf_from_path(path, lang=self.lang) lines = lines_from_pos(content, pos) self.assertDefnMatches2(buf, pos[2], line=lines[1], ilk="argument", name="arg", path=path)
def test_defn(self): spinner = AsyncSpinner(self, callback=partial(setattr, self, "trg")) with spinner: self.buf.defn_trg_from_pos(self.positions[3], spinner) self.assertIsNotNone(self.trg) self.assertEqual(self.trg.form, TRG_FORM_DEFN) handler = UIHandler(spinner) with spinner: spinner.callback = None self.buf.async_eval_at_trg(self.trg, handler, Ci.koICodeIntelBuffer.EVAL_SILENT) self.assertEqual(len(handler.defns), 1) self.assertEqual(handler.defns[0].lang, "Python") self.assertEqual(handler.defns[0].name, "indent") self.assertEqual([handler.defns[0].line], lines_from_pos(self.doc.buffer, [self.positions[5]])) self.assertEqual(handler.defns[0].ilk, "variable")
def test_def_decl_trailing_comma(self): """Test having a trailing comma in a function definition; this needs to be invalid in Python 2 but valid in Python 3.""" test_dir = join(self.test_dir, "def_decl_trailing_comma") content, pos = unmark_text( dedent("""\ def foo<1>(arg:int,): arg<2> """)) path = join(test_dir, "def_decl_trailing_comma.py") writefile(path, content) buf = self.mgr.buf_from_path(path, lang=self.lang) lines = lines_from_pos(content, pos) self.assertDefnMatches2(buf, pos[2], line=lines[1], ilk="argument", name="arg", path=path)