%PDF- %PDF-
Direktori : /lib/python3/dist-packages/twisted/conch/test/ |
Current File : //lib/python3/dist-packages/twisted/conch/test/test_window.py |
""" Tests for the insults windowing module, L{twisted.conch.insults.window}. """ from __future__ import annotations from typing import Callable from twisted.conch.insults.window import ScrolledArea, TextOutput, TopWindow from twisted.trial.unittest import TestCase class TopWindowTests(TestCase): """ Tests for L{TopWindow}, the root window container class. """ def test_paintScheduling(self) -> None: """ Verify that L{TopWindow.repaint} schedules an actual paint to occur using the scheduling object passed to its initializer. """ paints: list[None] = [] scheduled: list[Callable[[], object]] = [] root = TopWindow(lambda: paints.append(None), scheduled.append) # Nothing should have happened yet. self.assertEqual(paints, []) self.assertEqual(scheduled, []) # Cause a paint to be scheduled. root.repaint() self.assertEqual(paints, []) self.assertEqual(len(scheduled), 1) # Do another one to verify nothing else happens as long as the previous # one is still pending. root.repaint() self.assertEqual(paints, []) self.assertEqual(len(scheduled), 1) # Run the actual paint call. scheduled.pop()() self.assertEqual(len(paints), 1) self.assertEqual(scheduled, []) # Do one more to verify that now that the previous one is finished # future paints will succeed. root.repaint() self.assertEqual(len(paints), 1) self.assertEqual(len(scheduled), 1) class ScrolledAreaTests(TestCase): """ Tests for L{ScrolledArea}, a widget which creates a viewport containing another widget and can reposition that viewport using scrollbars. """ def test_parent(self) -> None: """ The parent of the widget passed to L{ScrolledArea} is set to a new L{Viewport} created by the L{ScrolledArea} which itself has the L{ScrolledArea} instance as its parent. """ widget = TextOutput() scrolled = ScrolledArea(widget) self.assertIs(widget.parent, scrolled._viewport) self.assertIs(scrolled._viewport.parent, scrolled)