Beispiel #1
0
    def test_listen(self):
        values = []
        heard = threading.Event()

        def listener(x):
            values.append(x)
            heard.set()

        q = Queue(0)
        q.listen(listener)
        heard.clear()
        q.put(1)
        heard.wait()
        assert values[-1] == 1
        heard.clear()
        q.put(2)
        heard.wait()
        assert values[-1] == 2

        q.listen(None)
        q.put(3)
        assert q.get(3) == 3
        q.listen(listener)

        heard.clear()
        q.put(4)
        heard.wait()
        assert values[-1] == 4
Beispiel #2
0
 def test_close(self):
     q = Queue(0)
     q.put(1)
     q.put(2)
     q.put(3)
     q.close()
     assert q.get() == 1
     assert q.get() == 2
     assert q.get() == 3
     for i in range(10):
         try:
             q.get()
             raise AssertionError("expected Closed")
         except Closed:
             pass
    def setUp(self):
        self.queue = Queue()
        self.running = True
        started = Event()

        def run():
            ts = TestServer(self.queue)
            for s in listen("0.0.0.0", PORT, lambda: self.running,
                            lambda: started.set()):
                conn = Connection(s, delegate=ts.connection)
                try:
                    conn.start(5)
                except Closed:
                    pass

        self.server = Thread(target=run)
        self.server.setDaemon(True)
        self.server.start()

        started.wait(3)
        assert started.isSet()