diff options
Diffstat (limited to 'tests/basics')
| -rw-r--r-- | tests/basics/bytes.py | 8 | ||||
| -rw-r--r-- | tests/basics/lexer.py | 40 | ||||
| -rw-r--r-- | tests/basics/string1.py | 14 | ||||
| -rw-r--r-- | tests/basics/syntaxerror.py | 19 |
4 files changed, 79 insertions, 2 deletions
diff --git a/tests/basics/bytes.py b/tests/basics/bytes.py index 2dafad49b..d3da15c8e 100644 --- a/tests/basics/bytes.py +++ b/tests/basics/bytes.py @@ -1,4 +1,12 @@ +# literals +print(b'123') +print(br'123') +print(rb'123') +print(b'\u1234') + +# construction print(bytes()) +print(bytes(b'abc')) a = b"123" print(a) diff --git a/tests/basics/lexer.py b/tests/basics/lexer.py new file mode 100644 index 000000000..1057c3961 --- /dev/null +++ b/tests/basics/lexer.py @@ -0,0 +1,40 @@ +# test the lexer + +# __debug__ is a special symbol +print(type(__debug__)) + +# short input +exec("") +exec("\n") +exec("\n\n") +exec("\r") +exec("\r\r") +print(eval("1")) +print(eval("12")) +print(eval("123")) +print(eval("1\n")) +print(eval("12\n")) +print(eval("123\n")) +print(eval("1\r")) +print(eval("12\r")) +print(eval("123\r")) + +# lots of indentation +def a(x): + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + if x: + print(x) +a(1) diff --git a/tests/basics/string1.py b/tests/basics/string1.py index f58fcd401..8d5f4618d 100644 --- a/tests/basics/string1.py +++ b/tests/basics/string1.py @@ -1,17 +1,27 @@ # basic strings +# literals +print('abc') +print(r'abc') +print(u'abc') +print(repr('\a\b\t\n\v\f\r')) +print('\z') # unrecognised escape char + +# construction print(str()) +print(str('abc')) +# inplace addition x = 'abc' print(x) - x += 'def' print(x) +# binary ops print('123' + "456") - print('123' * 5) +# subscription print('abc'[1]) print('abc'[-1]) try: diff --git a/tests/basics/syntaxerror.py b/tests/basics/syntaxerror.py index f53b2c41d..fc8b92d39 100644 --- a/tests/basics/syntaxerror.py +++ b/tests/basics/syntaxerror.py @@ -4,9 +4,28 @@ def test_syntax(code): try: exec(code) print("no SyntaxError") + except IndentationError: + print("IndentationError") except SyntaxError: print("SyntaxError") +# non-newline after line-continuation character (lexer error) +test_syntax("a \\a\n") + +# dedent mismatch (lexer error) +test_syntax("def f():\n a\n a\n") + +# unclosed string (lexer error) +test_syntax("'abc") + +# invalid (lexer error) +test_syntax("!") +test_syntax("$") +test_syntax("`") + +# bad indentation (lexer error) +test_syntax(" a\n") + # can't assign to literals test_syntax("1 = 2") test_syntax("'' = 1") |
