def test_event_mask_defaults_to_input_and_error():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1)
        ev1.signal()
        
        selector.wait(timeout=0)
        assert selector.ready == ev1
        assert selector.has_input == True
def test_can_use_a_different_value_to_identify_the_event_source():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT, identifier=999)
        
        ev1.signal()
        
        selector.wait()
        assert selector.ready == 999
Esempio n. 3
0
def test_event_mask_defaults_to_input_and_error():
    with Selector() as selector:
        ev1 = Semaphore(blocking=False)

        selector.add(ev1)
        ev1.signal()

        selector.wait(timeout=0)
        assert selector.ready == ev1
        assert selector.has_input == True
Esempio n. 4
0
def test_can_use_a_different_value_to_identify_the_event_source():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT, identifier=999)

        ev1.signal()

        selector.wait()
        assert selector.ready == 999
def test_can_remove_source_from_selector():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT)
        
        ev1.signal()
        
        selector.wait(timeout=0)
        assert selector.ready == ev1
        
        selector.remove(ev1)
        
        selector.wait(timeout=0)
        assert selector.ready == None
def test_selector_is_a_convenient_api_to_epoll():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT)
        
        ev1.signal()
        
        selector.wait()
        assert selector.ready == ev1
        assert selector.has_input == True
        assert selector.has_output == False
        assert selector.has_error == False
        assert selector.has_hangup == False
        assert selector.has_priority_input == False
Esempio n. 7
0
def test_can_remove_source_from_selector():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT)

        ev1.signal()

        selector.wait(timeout=0)
        assert selector.ready == ev1

        selector.remove(ev1)

        selector.wait(timeout=0)
        assert selector.ready == None
Esempio n. 8
0
def test_selector_is_a_convenient_api_to_epoll():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    with selector, ev1:
        selector.add(ev1, INPUT)

        ev1.signal()

        selector.wait()
        assert selector.ready == ev1
        assert selector.has_input == True
        assert selector.has_output == False
        assert selector.has_error == False
        assert selector.has_hangup == False
        assert selector.has_priority_input == False
def test_selecting_from_multiple_event_sources():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    ev2 = Semaphore(blocking=False)
    with selector, ev1, ev2:
        selector.add(ev1, INPUT)
        selector.add(ev2, INPUT)
        
        ev1.signal()
        ev2.signal()
        
        selector.wait()
        first = selector.ready
        first.wait()
        
        selector.wait()
        second = selector.ready
        second.wait()
        
        assert first in (ev1, ev2)
        assert second in (ev1, ev2)
        assert first is not second
Esempio n. 10
0
def test_selecting_from_multiple_event_sources():
    selector = Selector()
    ev1 = Semaphore(blocking=False)
    ev2 = Semaphore(blocking=False)
    with selector, ev1, ev2:
        selector.add(ev1, INPUT)
        selector.add(ev2, INPUT)

        ev1.signal()
        ev2.signal()

        selector.wait()
        first = selector.ready
        first.wait()

        selector.wait()
        second = selector.ready
        second.wait()

        assert first in (ev1, ev2)
        assert second in (ev1, ev2)
        assert first is not second