--- a/test/lib_event.py Mon Aug 31 21:36:15 2009 +0300
+++ b/test/lib_event.py Mon Aug 31 22:10:46 2009 +0300
@@ -42,7 +42,91 @@
self.assertFalse(self.ev_base.loop(nonblock=True))
-
+class TestEvent (unittest.TestCase) :
+ """
+ Simple event bits.
+ """
+
+ def setUp (self) :
+ self.ev_base = event_base()
+ self.ev = event(self.ev_base, 0, EV_READ)
+
+ def test_add (self) :
+ """
+ .add() works.
+ """
+
+ self.assertFalse(self.ev.pending(EV_READ))
+
+ self.ev.add()
+
+ self.assertTrue(self.ev.pending(EV_READ))
+
+ def test_add_timeout (self) :
+ """
+ .add() with timeout works
+ """
+
+ self.ev.add(1.1)
+ self.assertTrue(self.ev.pending())
+
+ def test_add_del (self) :
+ """
+ .add() and then .delete() works
+ """
+
+ self.assertFalse(self.ev.pending())
+
+ # add it in
+ self.ev.add()
+
+ self.assertTrue(self.ev.pending())
+
+ # ensure that the ev_base is indeed not empty
+ self.assertTrue(self.ev_base.loop(nonblock=True))
+
+
+ # remove it again
+ self.ev.delete()
+
+ self.assertFalse(self.ev.pending())
+
+ # ensure that the ev_base is indeed empty
+ self.assertFalse(self.ev_base.loop(nonblock=True))
+
+ def test_invalid_base (self) :
+ """
+ Building an event with invalid base (None) fails
+ """
+
+ # XXX: this doesn't actually seem to check against None, just the type..?
+ self.assertRaises(TypeError, event, None, 0, EV_READ)
+
+ def test_illegal_fd (self) :
+ """
+ Building an event with an illegal fd (-1) fails
+ """
+
+ self.assertRaises(ValueError, event, self.ev_base, -1, EV_READ)
+
+ def test_invalid_fd (self) :
+ """
+ Building an event with an invalid fd (>= 0) fails when calling .add()
+ """
+
+ ev = event(self.ev_base, 666, EV_READ)
+
+ # XXX: be more specific about Exception
+ self.assertRaises(Exception, ev.add)
+
+ def test_invalid_mask_zero (self) :
+ """
+ Building an event with an invalid mask (0)... XXX: works?
+ """
+
+ ev = event(self.ev_base, 0, 0)
+ ev.add()
+
class TestEventPipe (unittest.TestCase) :
"""
Test basic event stuff using a pipe.
@@ -103,6 +187,6 @@
# test
self.assertEquals(ev.ev_out, None)
-
+
if __name__ == '__main__' :
unittest.main()