83 lines
1.5 KiB
Python
83 lines
1.5 KiB
Python
|
print("Now comes the language constructions tests.")
|
||
|
|
||
|
# function
|
||
|
def test_func():
|
||
|
def test_sub_func():
|
||
|
print("test_function")
|
||
|
|
||
|
test_sub_func()
|
||
|
|
||
|
# closure
|
||
|
def test_closure(msg):
|
||
|
|
||
|
def make_closure():
|
||
|
print(msg)
|
||
|
|
||
|
return make_closure
|
||
|
|
||
|
# exception
|
||
|
def test_exception():
|
||
|
try:
|
||
|
raise Exception("test_exception")
|
||
|
|
||
|
except Exception:
|
||
|
pass
|
||
|
|
||
|
finally:
|
||
|
pass
|
||
|
|
||
|
# listcomp
|
||
|
def test_listcomp():
|
||
|
print("test_listcomp", [x for x in range(3)])
|
||
|
|
||
|
# lambda
|
||
|
def test_lambda():
|
||
|
func_obj_1 = lambda a, b: a + b
|
||
|
print(func_obj_1(10, 20))
|
||
|
|
||
|
# import
|
||
|
def test_import():
|
||
|
from sys_settrace_subdir import trace_importme
|
||
|
trace_importme.dummy()
|
||
|
trace_importme.saysomething()
|
||
|
|
||
|
# class
|
||
|
class TLClass():
|
||
|
def method():
|
||
|
pass
|
||
|
pass
|
||
|
|
||
|
def test_class():
|
||
|
class TestClass:
|
||
|
__anynum = -9
|
||
|
def method(self):
|
||
|
print("test_class_method")
|
||
|
self.__anynum += 1
|
||
|
|
||
|
def prprty_getter(self):
|
||
|
return self.__anynum
|
||
|
|
||
|
def prprty_setter(self, what):
|
||
|
self.__anynum = what
|
||
|
|
||
|
prprty = property(prprty_getter, prprty_setter)
|
||
|
|
||
|
cls = TestClass()
|
||
|
cls.method()
|
||
|
print("test_class_property", cls.prprty)
|
||
|
cls.prprty = 12
|
||
|
print("test_class_property", cls.prprty)
|
||
|
|
||
|
|
||
|
def run_tests():
|
||
|
test_func()
|
||
|
test_closure_inst = test_closure("test_closure")
|
||
|
test_closure_inst()
|
||
|
test_exception()
|
||
|
test_listcomp()
|
||
|
test_lambda()
|
||
|
test_class()
|
||
|
test_import()
|
||
|
|
||
|
print("And it's done!")
|