# mitigate heap fragmentation issues by pre-loading major libraries
import gc
+
gc.collect()
import unittest
+
gc.collect()
+
def yes_no(q, default=True):
a = input(q + " (Y/n)?" if default else " (y/N)?")
- a=a.lower()
- if a == '':
+ a = a.lower()
+ if a == "":
return default
elif a == "n":
a = False
a = True
return a
+
def multi_choice(q, choices, defaultPos=None):
if defaultPos is not None:
print("{} [{}]?".format(q, defaultPos))
for pos, choice in enumerate(choices):
print("{}) {}".format(pos, choice))
a = input()
- a=a.lower()
+ a = a.lower()
try:
- if a == '':
+ if a == "":
a = defaultPos
else:
a = int(a)
print(e)
return None
+
def await_true(name, fun, interval=0, patience=60):
from adafruit_blinka.agnostic.time import sleep, monotonic
+
print("Waiting {} sec until {} (CTRL+C give up)".format(patience, name))
- deadline = monotonic() + patience
+ deadline = monotonic() + patience
try:
while deadline - monotonic() > 0:
if fun():
def test_module(module, runner=None):
import unittest
+
if runner is None:
runner = unittest.TestRunner()
suite = unittest.TestSuite()
pass
return runner.run(suite)
+
def test_module_name(absolute, runner=None):
try:
print("Suite begin: {}".format(absolute))
- module=__import__(absolute)
+ module = __import__(absolute)
relatives = absolute.split(".")
if len(relatives) > 1:
for relative in relatives[1:]:
finally:
print("Suite end: {}".format(absolute))
+
def test_interactive(*module_names):
for module_name in module_names:
if yes_no("Run suite {}".format(module_name)):
"""
moduleNames = ["testing.implementation.universal.bitbangio"]
- unittest.raiseException = True # terminates with stack information on userspace Exception
- unittest.raiseBaseException = True # terminates with stack information on system Exception
+ unittest.raiseException = (
+ True # terminates with stack information on userspace Exception
+ )
+ unittest.raiseBaseException = (
+ True # terminates with stack information on system Exception
+ )
test_interactive(*moduleNames)
-gc.collect()
\ No newline at end of file
+
+gc.collect()