56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import pulser
|
|
from gi.repository import Gtk, GLib
|
|
import lib
|
|
import threading
|
|
import unittest
|
|
|
|
class TestThread:
|
|
def __init__(self): pass
|
|
def running(self): return False
|
|
|
|
|
|
class TestUIPulser(unittest.TestCase):
|
|
def setUp(self):
|
|
pulser.reset()
|
|
pulser.initialize()
|
|
pulser.reset()
|
|
|
|
def test_pulser_init(self):
|
|
self.assertIsInstance(pulser.Bar, Gtk.ProgressBar)
|
|
self.assertIsInstance(pulser.Box, Gtk.Box)
|
|
self.assertIsInstance(pulser.Lock, type(threading.Lock()))
|
|
self.assertIsNone(pulser.Timeout)
|
|
|
|
self.assertTrue(pulser.Bar.get_hexpand())
|
|
self.assertFalse(pulser.Bar.get_visible())
|
|
self.assertEqual(pulser.Threads, [ ])
|
|
self.assertEqual(pulser.Bar.get_valign(), Gtk.Align.CENTER)
|
|
|
|
self.assertIn(pulser.Bar, pulser.Box)
|
|
self.assertIn(pulser.start_pulsing, lib.thread.Start.subscribers)
|
|
self.assertIn(pulser.start_pulsing, lib.bus.Start.subscribers)
|
|
|
|
def test_pulser_pulse(self):
|
|
t1 = TestThread()
|
|
t2 = TestThread()
|
|
|
|
pulser.start_pulsing(t1)
|
|
self.assertEqual(pulser.Threads, [ t1 ])
|
|
tid = pulser.Timeout
|
|
self.assertIsNotNone(tid)
|
|
self.assertTrue(pulser.Bar.get_visible())
|
|
|
|
pulser.start_pulsing(t2)
|
|
self.assertEqual(pulser.Threads, [ t1, t2 ])
|
|
self.assertEqual(pulser.Timeout, tid)
|
|
|
|
pulser.do_pulses()
|
|
self.assertEqual(pulser.Threads, [ t2 ])
|
|
pulser.do_pulses()
|
|
self.assertEqual(pulser.Threads, [ ])
|
|
self.assertIsNone(pulser.Timeout)
|
|
self.assertFalse(pulser.Bar.get_visible())
|
|
|
|
GLib.source_remove(tid)
|