Files
micropython/tests/cmdline/repl_paste.py.exp
T
Dan Halbert 6b97759d25 tests: Protect trailing spaces with "\$".
Makes it easier to see the trailing spaces in an editor, and to know that
they are intentional.

Signed-off-by: Dan Halbert <halbert@halwitz.org>
2026-04-30 23:22:17 +10:00

134 lines
2.9 KiB
Plaintext

MicroPython \.\+ version
Type "help()" for more information.
>>> # Test REPL paste mode functionality
>>> \$
>>> # Basic paste mode with a simple function
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== def hello():
=== print('Hello from paste mode!')
=== hello()
=== \$
Hello from paste mode!
>>> \$
>>> # Paste mode with multiple indentation levels
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== def calculate(n):
=== if n > 0:
=== for i in range(n):
=== if i % 2 == 0:
=== print(f'Even: {i}')
=== else:
=== print(f'Odd: {i}')
=== else:
=== print('n must be positive')
=== \$
=== calculate(5)
=== \$
Even: 0
Odd: 1
Even: 2
Odd: 3
Even: 4
>>> \$
>>> # Paste mode with blank lines
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== def function_with_blanks():
=== print('First line')
=== \$
=== print('After blank line')
=== \$
=== \$
=== print('After two blank lines')
=== \$
=== function_with_blanks()
=== \$
First line
After blank line
After two blank lines
>>> \$
>>> # Paste mode with class definition and multiple methods
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== class TestClass:
=== def __init__(self, value):
=== self.value = value
=== \$
=== def display(self):
=== print(f'Value is: {self.value}')
=== \$
=== def double(self):
=== self.value *= 2
=== return self.value
=== \$
=== obj = TestClass(21)
=== obj.display()
=== print(f'Doubled: {obj.double()}')
=== obj.display()
=== \$
Value is: 21
Doubled: 42
Value is: 42
>>> \$
>>> # Paste mode with exception handling
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== try:
=== x = 1 / 0
=== except ZeroDivisionError:
=== print('Caught division by zero')
=== finally:
=== print('Finally block executed')
=== \$
Caught division by zero
Finally block executed
>>> \$
>>> # Cancel paste mode with Ctrl-C
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== print('This should not execute')
=== \$
>>> \$
>>> \$
>>> # Normal REPL still works after cancelled paste
>>> print('Back to normal REPL')
Back to normal REPL
>>> \$
>>> # Paste mode with syntax error
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== def bad_syntax(:
=== print('Missing parameter')
=== \$
Traceback (most recent call last):
File "<stdin>", line 2
SyntaxError: invalid syntax
>>> \$
>>> # Paste mode with runtime error
>>> \$
paste mode; Ctrl-C to cancel, Ctrl-D to finish
=== \$
=== def will_error():
=== undefined_variable
=== \$
=== will_error()
=== \$
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "<stdin>", line 3, in will_error
NameError: name 'undefined_variable' isn't defined
>>> \$
>>> # Final test to show REPL is still functioning
>>> 1 + 2 + 3
6
>>> \$