Пример #1
0
    def test_EventHandler(self):
        self.assertRaises(TypeError, events.EventHandler)
        self.assertIsInstance(events.EventHandler(None), events.EventHandler)
        self.assertIsInstance(events.EventHandler(132), events.EventHandler)
        self.assertIsInstance(events.EventHandler("Test"), events.EventHandler)

        ev = events.EventHandler(None)
        self.assertEqual(ev.sender, None)
        ev = events.EventHandler("Test")
        self.assertEqual(ev.sender, "Test")
        self.assertEqual(len(ev), 0)
        self.assertEqual(len(ev.callbacks), 0)
Пример #2
0
    def test_EventHandler_remove__isub__(self):
        ev = events.EventHandler(None)

        def doremove(ev, cb):
            ev -= cb

        def callback():
            pass

        for x in range(10):
            ev += callback
        self.assertEqual(len(ev), 10)

        self.assertRaises(TypeError, ev.remove)
        for invval in ("Test", None, 1234, self.assertEqual):
            self.assertRaises(ValueError, ev.remove, invval)
            self.assertRaises(ValueError, doremove, ev, invval)
        self.assertEqual(len(ev), 10)
        ev.remove(callback)
        self.assertEqual(len(ev), 9)
        ev -= callback
        self.assertEqual(len(ev), 8)
        for x in range(3):
            ev.remove(callback)
            ev -= callback
        self.assertEqual(len(ev), 2)
Пример #3
0
    def test_EventHandler_add__iadd__(self):
        ev = events.EventHandler(None)

        def doadd(ev, cb):
            ev += cb

        def callback():
            pass

        self.assertRaises(TypeError, doadd, ev, None)
        self.assertRaises(TypeError, doadd, ev, "Test")
        self.assertRaises(TypeError, doadd, ev, 1234)

        self.assertEqual(len(ev), 0)
        ev += callback
        self.assertEqual(len(ev), 1)
        for x in range(4):
            ev += callback
        self.assertEqual(len(ev), 5)

        self.assertRaises(TypeError, ev.add, None)
        self.assertRaises(TypeError, ev.add, "Test")
        self.assertRaises(TypeError, ev.add, 1234)

        self.assertEqual(len(ev), 5)
        ev.add(callback)
        self.assertEqual(len(ev), 6)
        for x in range(4):
            ev.add(callback)
        self.assertEqual(len(ev), 10)
Пример #4
0
    def test_EventHandler_remove__isub__(self):
        ev = events.EventHandler(None)

        def doremove(ev, cb):
            ev -= cb

        def callback():
            pass

        for x in range(10):
            ev += callback
        assert len(ev) == 10

        with pytest.raises(TypeError):
            ev.remove()
        for invval in ("Test", None, 1234):
            with pytest.raises(ValueError):
                ev.remove(invval)
            with pytest.raises(ValueError):
                doremove(ev, invval)
        assert len(ev) == 10
        ev.remove(callback)
        assert len(ev) == 9
        ev -= callback
        assert len(ev) == 8
        for x in range(3):
            ev.remove(callback)
            ev -= callback
        assert len(ev) == 2
Пример #5
0
    def test_EventHandler__call__(self):
        ev = events.EventHandler("Test")
        testsum = []

        def callback(sender, sumval):
            self.assertEqual(sender, "Test")
            sumval.append(1)

        for x in range(10):
            ev += callback
        self.assertEqual(len(ev), 10)
        results = ev(testsum)
        self.assertEqual(len(testsum), 10)
        for v in testsum:
            self.assertEqual(v, 1)
        self.assertEqual(len(results), 10)
        for v in results:
            self.assertIsNone(v)
Пример #6
0
    def test_EventHandler__call__(self):
        ev = events.EventHandler("Test")
        testsum = []

        def callback(sender, sumval):
            assert sender == "Test"
            sumval.append(1)

        for x in range(10):
            ev += callback
        assert len(ev) == 10
        results = ev(testsum)
        assert len(testsum) == 10
        for v in testsum:
            assert v == 1
        assert len(results) == 10
        for v in results:
            assert v is None
Пример #7
0
    def test_EventHandler(self):
        with pytest.raises(TypeError):
            events.EventHandler()
        assert isinstance(events.EventHandler(None), events.EventHandler)
        assert isinstance(events.EventHandler(132), events.EventHandler)
        assert isinstance(events.EventHandler("Test"), events.EventHandler)

        ev = events.EventHandler(None)
        assert ev.sender == None
        ev = events.EventHandler("Test")
        assert ev.sender == "Test"
        assert len(ev) == 0
        assert len(ev.callbacks) == 0
Пример #8
0
    def test_EventHandler_add__iadd__(self):
        ev = events.EventHandler(None)

        def doadd(ev, cb):
            ev += cb

        def callback():
            pass

        with pytest.raises(TypeError):
            doadd(ev, None)
        with pytest.raises(TypeError):
            doadd(ev, "Test")
        with pytest.raises(TypeError):
            doadd(ev, 1234)

        assert len(ev) == 0
        ev += callback
        assert len(ev) == 1
        for x in range(4):
            ev += callback
        assert len(ev) == 5

        with pytest.raises(TypeError):
            ev.add(None)
        with pytest.raises(TypeError):
            ev.add("Test")
        with pytest.raises(TypeError):
            ev.add(1234)

        assert len(ev) == 5
        ev.add(callback)
        assert len(ev) == 6
        for x in range(4):
            ev.add(callback)
        assert len(ev) == 10