1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
"""
This module tests contrib-specific functionality
"""
import urwid
from six.moves import StringIO, reload_module # type: ignore
import lookatme.config
import lookatme.contrib
import lookatme.contrib.file_loader
import lookatme.contrib.terminal
import lookatme.pres
import lookatme.render.markdown_block
import lookatme.render.markdown_inline
import lookatme.tui
def setup_contrib(fake_mod):
lookatme.contrib.CONTRIB_MODULES = [
lookatme.contrib.terminal,
lookatme.contrib.file_loader,
fake_mod
]
reload_module(lookatme.render.markdown_block)
reload_module(lookatme.render.markdown_inline)
reload_module(lookatme.tui)
def test_overridable_root(mocker):
"""Ensure that the root urwid component is overridable
"""
lookatme.config.LOG = mocker.Mock()
class Wrapper(urwid.WidgetWrap):
pass
class FakeMod:
@staticmethod
def root_urwid_widget(to_wrap):
return Wrapper(to_wrap)
setup_contrib(FakeMod)
input_stream = StringIO("test")
pres = lookatme.pres.Presentation(input_stream, "dark")
tui = lookatme.tui.MarkdownTui(pres)
assert isinstance(tui.loop.widget, Wrapper)
|