Skip to content

Commit

Permalink
Pick off some missing lines in coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
peterbrittain committed Oct 5, 2023
1 parent a4ac537 commit f1c2697
Showing 1 changed file with 48 additions and 16 deletions.
64 changes: 48 additions & 16 deletions tests/test_widgets.py
Expand Up @@ -213,13 +213,17 @@ def __init__(self, screen):
layout = Layout([1], fill_frame=True)
self.add_layout(layout)
self.date_widget = DatePicker(
label="Date:", name="date", year_range=range(1999, 2020), on_change=self._changed)
label="Date:", name="date", on_change=self._changed)
self.date_widget.value = date(2017, 1, 2)
layout.add_widget(self.date_widget)
self.time_widget = TimePicker(
label="Time:", name="time", seconds=True, on_change=self._changed)
self.time_widget.value = time(12, 0, 59)
layout.add_widget(self.time_widget)
self.time_widget2 = TimePicker(
label="Tim2:", name="time", seconds=False, on_change=self._changed)
self.time_widget2.value = time(11, 2, 58)
layout.add_widget(self.time_widget2)
self.fix()

# State tracking for widgets
Expand Down Expand Up @@ -2255,7 +2259,7 @@ def test_date_picker(self):
"+--------------------------------------+\n" +
"|Date: 02/Jan/2017 |\n" +
"|Time: 12:00:59 O\n" +
"| |\n" +
"|Tim2: 11:02 |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2273,7 +2277,7 @@ def test_date_picker(self):
"+-----|01 2016|--------------------+\n" +
"|Date:|02/Jan/2017| |\n" +
"|Time:|03 Feb 2018| O\n" +
"| +-----------+ |\n" +
"|Tim2:+-----------+ |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2291,7 +2295,7 @@ def test_date_picker(self):
"+-----|30 Jan 2016|--------------------+\n" +
"|Date:|31/Feb/2017| |\n" +
"|Time:| Mar 2018| O\n" +
"| +-----------+ |\n" +
"|Tim2:+-----------+ |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2310,7 +2314,7 @@ def test_date_picker(self):
"+--------------------------------------+\n" +
"|Date: 15/Jun/2017 |\n" +
"|Time: 12:00:59 O\n" +
"| |\n" +
"|Tim2: 11:02 |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2328,7 +2332,7 @@ def test_date_picker(self):
"+-----|14 May 2016|--------------------+\n" +
"|Date:|15/Jun/2017| |\n" +
"|Time:|16 Jul 2018| O\n" +
"| +-----------+ |\n" +
"|Tim2:+-----------+ |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2344,7 +2348,7 @@ def test_date_picker(self):
"+-----|14 Jun 2016|--------------------+\n" +
"|Date:|15/Jul/2017| |\n" +
"|Time:|16 Aug 2018| O\n" +
"| +-----------+ |\n" +
"|Tim2:+-----------+ |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand Down Expand Up @@ -2373,7 +2377,7 @@ def test_time_picker(self):
"+--------------------------------------+\n" +
"|Date: 02/Jan/2017 |\n" +
"|Time: 12:00:59 O\n" +
"| |\n" +
"|Tim2: 11:02 |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2391,7 +2395,7 @@ def test_time_picker(self):
"+-----+--------+-----------------------+\n" +
"|Date:|11 58|17 |\n" +
"|Time:|12:00:59| O\n" +
"| |13 01 | |\n" +
"|Tim2:|13 01 | |\n" +
"| +--------+ |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2412,7 +2416,7 @@ def test_time_picker(self):
"+--------------------------------------+\n" +
"|Date: 02/Jan/2017 |\n" +
"|Time: 11:01:58 O\n" +
"| |\n" +
"|Tim2: 11:02 |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2421,16 +2425,34 @@ def test_time_picker(self):
"+--------------------------------------+\n")
self.assertEqual(form.time_widget.value, time(11, 1, 58))

# Check the mouse works too - pass mouse events to top-level effect
self.process_mouse(scene.effects[-1], [(7, 2, MouseEvent.LEFT_CLICK)])
# Check that small time pops correctly.
self.process_keys(scene, [Screen.KEY_TAB, Screen.ctrl('m')])
for effect in scene.effects:
effect.update(3)
self.assert_canvas_equals(
canvas,
"+--------------------------------------+\n" +
"|Date:+-----+/2017 |\n" +
"|Time:|10 01|58 O\n" +
"|Tim2:|11:02| |\n" +
"| |12 03| |\n" +
"| +-----+ |\n" +
"| |\n" +
"| |\n" +
"| |\n" +
"+--------------------------------------+\n")

# Check the mouse works too
self.process_mouse(scene,
[(30, 3, MouseEvent.LEFT_CLICK), (7, 2, MouseEvent.LEFT_CLICK)])
for effect in scene.effects:
effect.update(4)
self.assert_canvas_equals(
canvas,
"+-----+--------+-----------------------+\n" +
"|Date:|10 00 57|17 |\n" +
"|Time:|11:01:58| O\n" +
"| |12 02 59| |\n" +
"|Tim2:|12 02 59| |\n" +
"| +--------+ |\n" +
"| |\n" +
"| |\n" +
Expand All @@ -2440,13 +2462,13 @@ def test_time_picker(self):

self.process_mouse(scene.effects[-1], [(7, 1, MouseEvent.LEFT_CLICK)])
for effect in scene.effects:
effect.update(4)
effect.update(5)
self.assert_canvas_equals(
canvas,
"+-----+--------+-----------------------+\n" +
"|Date:|09 00 57|17 |\n" +
"|Time:|10:01:58| O\n" +
"| |11 02 59| |\n" +
"|Tim2:|11 02 59| |\n" +
"| +--------+ |\n" +
"| |\n" +
"| |\n" +
Expand Down Expand Up @@ -2481,17 +2503,21 @@ def test_dropdown_list(self):
"""
Check DropdownList widget works as expected.
"""
def _click():
self._clicked = True

# Now set up the Frame ready for testing
screen = MagicMock(spec=Screen, colours=8, unicode_aware=False)
scene = Scene([], duration=-1)
canvas = Canvas(screen, 10, 40, 0, 0)
form = Frame(canvas, canvas.height, canvas.width)
layout = Layout([100], fill_frame=True)
form.add_layout(layout)
layout.add_widget(DropdownList([("Item 1", 1), ("Item 2", 3), ("Item 3", 5)]))
layout.add_widget(DropdownList([("Item 1", 1), ("Item 2", 3), ("Item 3", 5)], on_change=_click))
form.fix()
scene.add_effect(form)
scene.reset()
self._clicked = False

# Check that the Frame is rendered correctly.
for effect in scene.effects:
Expand Down Expand Up @@ -2542,6 +2568,7 @@ def test_dropdown_list(self):
"| |\n" +
"| |\n" +
"+--------------------------------------+\n")
self.assertFalse(self._clicked)

# Check key selection works as expected
self.process_keys(scene, [" ", Screen.KEY_DOWN])
Expand Down Expand Up @@ -2576,6 +2603,7 @@ def test_dropdown_list(self):
"| |\n" +
"| |\n" +
"+--------------------------------------+\n")
self.assertTrue(self._clicked)

def test_dropdown_list_options(self):
"""
Expand Down Expand Up @@ -3376,6 +3404,10 @@ def click():
self.process_mouse(form, [(15, 2, MouseEvent.LEFT_CLICK)])
self.assertTrue(self.clicked)

# Check that pressing space on a button works
self.clicked = False
self.process_keys(form, [" "])
self.assertTrue(self.clicked)

def test_button_name1(self):
"""
Expand Down

0 comments on commit f1c2697

Please sign in to comment.