Esempio n. 1
0
    def test_default_indices(self):

        help = create_signature_help({"signatures": [signature]})

        self.assertIsNotNone(help)
        if help:
            self.assertEqual(help._active_signature_index, 0)
            self.assertEqual(help._active_parameter_index, -1)
Esempio n. 2
0
 def test_no_parameters(self):
     sig = create_signature("foobar()")
     help = create_signature_help(dict(signatures=[sig]))
     if help:
         label = render_signature_label(renderer, help.active_signature(),
                                        0)
         self.assertEqual(
             label,
             "\n<entity.name.function>foobar()</entity.name.function>")
Esempio n. 3
0
    def test_params_are_substrings_before_comma(self):
        sig = create_signature("f(x: str, t)", "x", "t")
        help = create_signature_help(dict(signatures=[sig]))
        if help:
            label = render_signature_label(renderer, help.active_signature(),
                                           0)
            self.assertEqual(
                label, """
<entity.name.function>f
<punctuation>(</punctuation>\
\n<variable.parameter emphasize>x</variable.parameter>: str,\
 \n<variable.parameter>t</variable.parameter>
<punctuation>)</punctuation></entity.name.function>""")
Esempio n. 4
0
    def test_params_no_parens(self):
        # note: will not work without ranges: first "foo" param will match "foobar"
        sig = create_signature("foobar foo foo", [7, 10], [11, 14],
                               activeParameter=1)
        help = create_signature_help(dict(signatures=[sig]))
        if help:
            label = render_signature_label(renderer, help.active_signature(),
                                           1)
            self.assertEqual(
                label, """
<entity.name.function>foobar\
 \n<variable.parameter>foo</variable.parameter>\
 \n<variable.parameter emphasize>foo</variable.parameter></entity.name.function>"""
            )
Esempio n. 5
0
    def test_params_with_range(self):
        sig = create_signature("foobar(foo, foo)", [7, 10], [12, 15],
                               activeParameter=1)
        help = create_signature_help(dict(signatures=[sig]))
        if help:
            label = render_signature_label(renderer, help.active_signature(),
                                           1)
            self.assertEqual(
                label, """
<entity.name.function>foobar
<punctuation>(</punctuation>
<variable.parameter>foo</variable.parameter>,\
 \n<variable.parameter emphasize>foo</variable.parameter>
<punctuation>)</punctuation></entity.name.function>""")
Esempio n. 6
0
    def test_params_are_substrings(self):
        sig = create_signature("foobar(self, foo: str, foo: i32)",
                               "foo",
                               "foo",
                               activeParameter=1)
        help = create_signature_help(dict(signatures=[sig]))
        if help:
            label = render_signature_label(renderer, help.active_signature(),
                                           1)
            self.assertEqual(
                label, """
<entity.name.function>foobar
<punctuation>(</punctuation>self,\
 \n<variable.parameter>foo</variable.parameter>: str,\
 \n<variable.parameter emphasize>foo</variable.parameter>: i32
<punctuation>)</punctuation></entity.name.function>""")
Esempio n. 7
0
    def test_long_signature(self):
        # self.maxDiff = None
        sig = create_signature(
            """do_the_foo_bar_if_correct_with_optional_bar_and_uppercase_option(takes_a_mandatory_foo: int, \
bar_if_needed: Optional[str], in_uppercase: Optional[bool]) -> Optional[str]""",
            "takes_a_mandatory_foo",
            "bar_if_needed",
            "in_uppercase",
            activeParameter=1)
        help = create_signature_help(dict(signatures=[sig]))
        if help:
            label = render_signature_label(renderer, help.active_signature(),
                                           1)
            self.assertEqual(
                label, """
<entity.name.function>do_the_foo_bar_if_correct_with_optional_bar_and_uppercase_option
<punctuation>(</punctuation>
<variable.parameter>takes_a_mandatory_foo</variable.parameter>: int,\
 <br>&nbsp;&nbsp;&nbsp;&nbsp;\n<variable.parameter emphasize>bar_if_needed</variable.parameter>: Optional[str],\
 <br>&nbsp;&nbsp;&nbsp;&nbsp;\n<variable.parameter>in_uppercase</variable.parameter>: Optional[bool]
<punctuation>)</punctuation> -&gt; Optional[str]</entity.name.function>""")
Esempio n. 8
0
 def test_empty(self):
     self.assertIsNone(create_signature_help({}))
Esempio n. 9
0
 def test_none(self):
     self.assertIsNone(create_signature_help(None))