Beispiel #1
0
 def melkweg_observer(self, observer: Observer, _) -> Observer:
     parser = MelkwegParser()
     data = fetch(self.scrape_url)
     observer.on_next(
         parser.parse(ParsingContext(venue=self.venue, content=data)))
     observer.on_completed()
     return observer
Beispiel #2
0
def test_create_on_next_throw_close1():
    ex = 'ex'
    next = [True]
    error = [False]
    completed = [False]

    def on_next(x):
        assert 42 == x
        next[0] = True

    def on_error(e):
        assert ex == e
        error[0] = True

    def on_completed():
        completed[0] = True

    res = Observer(on_next, on_error, on_completed)

    res.on_next(42)

    assert next[0]
    assert not error[0]
    assert not completed[0]

    res.on_completed()

    assert completed[0]
    assert not error[0]
Beispiel #3
0
    def simplon_observer(self, observer: Observer, _) -> Disposable:
        parser = SimplonParser()
        data = fetch(self.scrape_url)
        events = parser.parse(ParsingContext(venue=self.venue, content=data))

        observer.on_next(events)
        observer.on_completed()
        return observer
 def rx_loop(observer: Observer, scheduler: typing.Scheduler):
     print("Looping urls")
     loop = asyncio.get_event_loop()
     try:
         loop.run_until_complete(async_sender(urls, observer))
     except Exception as e:
         observer.on_error(e)
     finally:
         loop.close()
         observer.on_completed()
Beispiel #5
0
 def observe(observer: Observer, _: Optional[Scheduler]) -> None:
     assert device is not None
     self._should_monitor_evdev_events = True
     for event in device.read_loop():
         if not self._should_monitor_evdev_events:
             break
         if event.type == ecodes.EV_KEY or \
                 (event.type == ecodes.EV_ABS and self.should_send_ev_abs_events):
             observer.on_next(event)
     device.close()
     observer.on_completed()
Beispiel #6
0
    def vera_observer(self, observer: Observer, _) -> Disposable:
        vera_parser = VeraParser()

        items_per_page = 20
        page_index = 0
        done = False
        while not done:
            page_index += 1
            url = self.scrape_url.format(page_index, items_per_page)
            data = fetch(url)
            new_events = vera_parser.parse(ParsingContext(venue=self.venue, content=data))
            observer.on_next(new_events)
            done = len(new_events) < items_per_page
        observer.on_completed()
        return observer
Beispiel #7
0
    def _subscribe_core(self,
                        observer: Observer,
                        scheduler: Scheduler = None) -> Disposable:
        with self.lock:
            self.check_disposed()
            if not self.is_stopped:
                self.observers.append(observer)
                return InnerSubscription(self, observer)

            if self.exception:
                observer.on_error(self.exception)
                return Disposable.empty()

            observer.on_completed()
            return Disposable.empty()
Beispiel #8
0
def test_create_on_next():
    next = [False]

    def on_next(x):
        assert 42 == x
        next[0] = True

    res = Observer(on_next)

    res.on_next(42)
    assert next[0]
    return res.on_completed()
Beispiel #9
0
def test_create_on_next_on_completed():
    next = [False]
    completed = [False]

    def on_next(x):
        assert 42 == x
        next[0] = True
        return next[0]

    def on_completed():
        completed[0] = True
        return completed[0]

    res = Observer(on_next, None, on_completed)

    res.on_next(42)

    assert next[0]
    assert not completed[0]

    res.on_completed()

    assert completed[0]