Skip to content

Commit

Permalink
More UT coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
peterbrittain committed Oct 11, 2023
1 parent 43b9711 commit f4ff3aa
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 4 deletions.
42 changes: 38 additions & 4 deletions tests/test_effects.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def test_banner(self):
"""
# Check that banner redraws every frame.
screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
canvas = Canvas(screen, 10, 100, 0, 0)
canvas = Canvas(screen, 10, 10, 0, 0)
effect = BannerText(canvas, StaticRenderer(images=["hello"]), 2, 3)
effect.reset()
effect.update(0)
Expand All @@ -129,6 +129,13 @@ def test_banner(self):
effect.update(1)
self.assertEqual(canvas.get_from(canvas.width - 1, 2),
(ord("e"), 3, 0, 0))
my_buffer = [[(32, 7, 0, 0) for _ in range(10)] for _ in range(10)]
for i in range(2, 12):
effect.update(i)
self.assertTrue(self.check_canvas(
canvas,
my_buffer,
lambda value: self.assertIn(chr(value[0]), " helo")))

# Check there is some stop frame - will vary according to screen width
self.assertGreater(effect.stop_frame, 0)
Expand Down Expand Up @@ -165,6 +172,29 @@ def test_print(self):
event = object()
self.assertEqual(event, effect.process_event(event))

def test_print_clear(self):
"""
Check that clear option works on Print.
"""
# Check that Stars randomly updates the Screen every frame.
screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
canvas = Canvas(screen, 10, 40, 0, 0)
effect = Print(canvas, StaticRenderer(images=["hello"]), 2, 1, clear=True, stop_frame=20)
effect.reset()
self.assert_blank(canvas)
my_buffer = [[(32, 7, 0, 0) for _ in range(40)] for _ in range(10)]

# Should only update on first iteration
for i in range(20):
effect.update(i)
self.assertEqual(self.check_canvas(
canvas,
my_buffer,
lambda value: self.assertIn(chr(value[0]), " helo")), i in (0,19), f"Stopped on {i}")

# Should be clear by now.
self.assert_blank(canvas)

def test_mirage(self):
"""
Check that Mirage works.
Expand Down Expand Up @@ -270,7 +300,7 @@ def test_snow(self):
effect.reset()
self.assert_blank(canvas)
my_buffer = [[(32, 7, 0, 0) for _ in range(40)] for _ in range(10)]
for i in range(10):
for i in range(60):
effect.update(i)
self.assertEqual(self.check_canvas(
canvas,
Expand Down Expand Up @@ -493,12 +523,16 @@ def test_noise(self):
# Check that RandomNoise updates every frame.
screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
canvas = Canvas(screen, 10, 40, 0, 0)
effect = RandomNoise(canvas)
effect = RandomNoise(canvas, signal=StaticRenderer(images=["hello world!"]))
effect.reset()
effect._step = 0.1
effect2 = RandomNoise(canvas)
effect2.reset()
self.assert_blank(canvas)
my_buffer = [[(32, 7, 0, 0) for _ in range(40)] for _ in range(10)]
for i in range(20):
for i in range(30):
effect.update(i)
effect2.update(i)
self.assertEqual(self.check_canvas(
canvas,
my_buffer,
Expand Down
17 changes: 17 additions & 0 deletions tests/test_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -830,6 +830,23 @@ def test_frame_focus_widget_property(self):
form._focus = 9999
self.assertIsNone(form.focussed_widget)

# Refixing frame resets focus when needed.
form._focus = 0
old_focus = form.focussed_widget
self.assertIsNotNone(old_focus)
form._layouts[0].clear_widgets()
form.fix()
self.assertNotEqual(form.focussed_widget, old_focus)

# Moving focus to undefined widget has no effect.
old_focus = form.focussed_widget
form.switch_focus(None, 0, 0)
self.assertEqual(form.focussed_widget, old_focus)

# Blurring removes focus.
form.blur()
self.assertIsNone(form.focussed_widget)

def test_frame_focus_widget_property_when_frame_focussed(self):
"""
check the frame exposes nothing when frame is foccused
Expand Down

0 comments on commit f4ff3aa

Please sign in to comment.