diff --git a/test/completion/basic.py b/test/completion/basic.py index 9336649e..5b4f9091 100644 --- a/test/completion/basic.py +++ b/test/completion/basic.py @@ -19,17 +19,6 @@ str.. #? [] a(0):. -# ----------------- -# _ separators (for older versions than 3.6, a = 1_2_3 will just be 1, the rest -# gets ignored.) -# ----------------- -#? int() -1_2_3 -#? int() -123_345_345 -#? int() -0x3_4 - # ----------------- # if/else/elif # ----------------- diff --git a/test/test_evaluate/test_literals.py b/test/test_evaluate/test_literals.py index 88f4671d..2cd242e8 100644 --- a/test/test_evaluate/test_literals.py +++ b/test/test_evaluate/test_literals.py @@ -6,7 +6,7 @@ from jedi._compatibility import py_version def _eval_literal(value): def_, = jedi.Script(value).goto_definitions() - return def_._name._context + return def_._name._context.obj @pytest.mark.skipif('sys.version_info[:2] < (3, 6)') @@ -15,23 +15,27 @@ def test_f_strings(): f literals are not really supported in Jedi. They just get ignored and an empty string is returned. """ - context = _eval_literal('f"asdf"') - assert context.obj == '' - context = _eval_literal('f"{asdf}"') - assert context.obj == '' - context = _eval_literal('F"{asdf}"') - assert context.obj == '' - context = _eval_literal('rF"{asdf}"') - assert context.obj == '' + assert _eval_literal('f"asdf"') == '' + assert _eval_literal('f"{asdf}"') == '' + assert _eval_literal('F"{asdf}"') == '' + assert _eval_literal('rF"{asdf}"') == '' def test_rb_strings(): - context = _eval_literal('br"asdf"') - assert context.obj == b'asdf' - context = _eval_literal('rb"asdf"') + assert _eval_literal('br"asdf"') == b'asdf' + obj = _eval_literal('rb"asdf"') if py_version < 33: # Before Python 3.3 there was a more strict definition in which order # you could define literals. - assert context.obj == '' + assert obj == '' else: - assert context.obj == b'asdf' + assert obj == b'asdf' + + +@pytest.mark.skipif('sys.version_info[:2] < (3, 6)') +def test_thousand_separators(): + assert _eval_literal('1_2_3') == 123 + assert _eval_literal('123_456_789') == 123456789 + assert _eval_literal('0x3_4') == 52 + assert _eval_literal('0b1_0') == 2 + assert _eval_literal('0o1_0') == 8