def test_completer(self): class completer1(Completer): def get_completions(self, document, complete_event): yield Completion('before-%s-after' % document.text, -len(document.text)) yield Completion('before-%s-after-B' % document.text, -len(document.text)) class completer2(Completer): def get_completions(self, document, complete_event): yield Completion('before2-%s-after2' % document.text, -len(document.text)) yield Completion('before2-%s-after2-B' % document.text, -len(document.text)) # Create grammar. "var1" + "whitespace" + "var2" g = compile(r'(?P<var1>[a-z]*) \s+ (?P<var2>[a-z]*)') # Test 'get_completions()' completer = GrammarCompleter(g, { 'var1': completer1(), 'var2': completer2() }) completions = list( completer.get_completions(Document('abc def', len('abc def')), CompleteEvent())) self.assertEqual(len(completions), 2) self.assertEqual(completions[0].text, 'before2-def-after2') self.assertEqual(completions[0].start_position, -3) self.assertEqual(completions[1].text, 'before2-def-after2-B') self.assertEqual(completions[1].start_position, -3)
def test_completer(): class completer1(Completer): def get_completions(self, document, complete_event): yield Completion("before-%s-after" % document.text, -len(document.text)) yield Completion("before-%s-after-B" % document.text, -len(document.text)) class completer2(Completer): def get_completions(self, document, complete_event): yield Completion("before2-%s-after2" % document.text, -len(document.text)) yield Completion("before2-%s-after2-B" % document.text, -len(document.text)) # Create grammar. "var1" + "whitespace" + "var2" g = compile(r"(?P<var1>[a-z]*) \s+ (?P<var2>[a-z]*)") # Test 'get_completions()' completer = GrammarCompleter(g, {"var1": completer1(), "var2": completer2()}) completions = list( completer.get_completions(Document("abc def", len("abc def")), CompleteEvent()) ) assert len(completions) == 2 assert completions[0].text == "before2-def-after2" assert completions[0].start_position == -3 assert completions[1].text == "before2-def-after2-B" assert completions[1].start_position == -3
def test_newbie_mode_complete_without_meta_dict(): fake_document = MagicMock() fake_document.text_before_cursor = "GEOR" completer = GrammarCompleter(command_grammar, get_completer_mapping()) completions = list(completer.get_completions(fake_document, None)) assert [word.text for word in completions] == ["GEORADIUS", "GEORADIUSBYMEMBER"]
def test_completer(self): class completer1(Completer): def get_completions(self, document, complete_event): yield Completion('before-%s-after' % document.text, -len(document.text)) yield Completion('before-%s-after-B' % document.text, -len(document.text)) class completer2(Completer): def get_completions(self, document, complete_event): yield Completion('before2-%s-after2' % document.text, -len(document.text)) yield Completion('before2-%s-after2-B' % document.text, -len(document.text)) # Create grammar. "var1" + "whitespace" + "var2" g = compile(r'(?P<var1>[a-z]*) \s+ (?P<var2>[a-z]*)') # Test 'get_completions()' completer = GrammarCompleter(g, {'var1': completer1(), 'var2': completer2()}) completions = list(completer.get_completions( Document('abc def', len('abc def')), CompleteEvent())) self.assertEqual(len(completions), 2) self.assertEqual(completions[0].text, 'before2-def-after2') self.assertEqual(completions[0].start_position, -3) self.assertEqual(completions[1].text, 'before2-def-after2-B') self.assertEqual(completions[1].start_position, -3)
def test_newbie_mode_complete_with_meta_dict(): fake_document = MagicMock() fake_document.text_before_cursor = "GEOR" completer = GrammarCompleter(command_grammar, get_completer_mapping()) completions = list(completer.get_completions(fake_document, None)) assert sorted([completion.display_meta for completion in completions]) == [ FormattedText([( "", "Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member", # noqa )]), FormattedText([( "", "Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point", # noqa )]), ]