moved from simulator
This commit is contained in:
parent
c65656eb56
commit
71a6e1e5e8
83
shared/sim_display.py
Normal file
83
shared/sim_display.py
Normal file
@ -0,0 +1,83 @@
|
||||
# (c) Copyright 2018 by Coinkite Inc. This file is covered by license found in COPYING-CC.
|
||||
#
|
||||
# DEBUG ONLY -- only installed for debug builds
|
||||
# Hack to monitor screen contents, as text.
|
||||
# Import this file to install the hacks.
|
||||
import ux
|
||||
|
||||
global contents, full_contents, story
|
||||
|
||||
# dictionary, where key is the line number on screen, and rest is text line
|
||||
contents = {}
|
||||
|
||||
# text string of screen, using newlines
|
||||
full_contents = ''
|
||||
|
||||
# copy of the story being shown
|
||||
story = None
|
||||
|
||||
|
||||
from display import Display
|
||||
|
||||
orig_text = Display.text
|
||||
orig_clear = Display.clear
|
||||
orig_show = Display.show
|
||||
|
||||
Display.text = lambda *a, **kw: hack_text(*a, **kw)
|
||||
Display.clear = lambda *a, **kw: hack_clear(*a, **kw)
|
||||
Display.show = lambda *a, **kw: hack_show(*a, **kw)
|
||||
|
||||
def hack_text(themself, *a, **kw):
|
||||
#print('of=%r ts=%r a=%r kw=%r' % (orig_func, themself, a, kw))
|
||||
|
||||
x, y, msg = a[0:3]
|
||||
|
||||
global contents
|
||||
contents[y] = msg
|
||||
|
||||
#print('text (%s, %s): %s' % (x,y, msg))
|
||||
|
||||
return orig_text(themself, *a, **kw)
|
||||
|
||||
def hack_clear(themself, *a, **kw):
|
||||
global contents
|
||||
contents = {}
|
||||
return orig_clear(themself, *a, **kw)
|
||||
|
||||
def hack_show(themself, *a, **kw):
|
||||
global contents, full_contents
|
||||
scr = '\n'.join(contents[y] for y in sorted(contents))
|
||||
|
||||
#print("\n---\n%s\n---\n" % scr)
|
||||
full_contents = scr
|
||||
|
||||
return orig_show(themself, *a, **kw)
|
||||
|
||||
|
||||
# Also monitor "UX stories"
|
||||
|
||||
orig_show_story = ux.ux_show_story
|
||||
|
||||
async def hack_story(msg, title=None, **kw):
|
||||
global story
|
||||
|
||||
if hasattr(msg, 'readline'):
|
||||
story = (title or 'NO-TITLE', msg.getvalue())
|
||||
else:
|
||||
story = (title or 'NO-TITLE', msg)
|
||||
|
||||
#print("Story: %s: %s" % (title, msg))
|
||||
|
||||
rv = await orig_show_story(msg, title, **kw)
|
||||
|
||||
story = None
|
||||
|
||||
return rv
|
||||
ux.ux_show_story = hack_story
|
||||
|
||||
# remove pauses that lengthen test case times...
|
||||
async def no_drama(msg, seconds):
|
||||
print("Pause (%ds): %s" % (seconds, msg))
|
||||
ux.ux_dramatic_pause = no_drama
|
||||
|
||||
# EOF
|
||||
Loading…
Reference in New Issue
Block a user