    def test_forced_update(self):
        """
        Check that forcing an update works as expected.
        """
        def internal_checks(screen):
            # First check that Effects are always drawn at Scene start
            test_effect = MockEffect(count=101, stop_frame=101, frame_rate=100)
            screen.set_scenes([Scene([test_effect], 0)])
            screen.draw_next_frame()
            self.assertTrue(test_effect.update_called)

            # Now check that the Screen honours the long frame rate...
            test_effect.update_called = False
            for _ in range(90):
                screen.draw_next_frame()
            self.assertFalse(test_effect.update_called)

            # Now check that the forced update works as expected.
            screen.force_update()
            screen.draw_next_frame()
            self.assertTrue(test_effect.update_called)

            # Now check that a full refresh works.
            self.assertEqual(len(list(screen._buffer.deltas(0, 100))), 0)
            screen.force_update(full_refresh=True)
            self.assertGreater(len(list(screen._buffer.deltas(0, 100))), 0)

        Screen.wrapper(internal_checks, height=15)
Check that forcing an update works as expected.
tests/test_screen.py