Beispiel #1
0
 def create():
     return xs.pipe(
         ops.join(
             ys,
             lambda x: duration_x,
             lambda y: duration_y,
         ), )
Beispiel #2
0
        def create():
            def mapper(xy):
                x, y = xy
                return "{}{}".format(x.value, y.value)

            return xs.pipe(
                ops.join(
                    ys,
                    lambda x: reactivex.timer(x.interval),
                    lambda y: reactivex.timer(y.interval),
                ),
                ops.map(mapper),
            )
Beispiel #3
0
        def create():
            def mapper(xy):
                x, y = xy
                return "{}{}".format(x.value, y.value)

            return xs.pipe(
                ops.join(
                    ys,
                    lambda x: reactivex.timer(x.interval),
                    lambda y: reactivex.timer(y.interval).pipe(
                        ops.flat_map(
                            reactivex.throw(ex)
                            if y.value == "tin" else reactivex.empty())),
                ),
                ops.map(mapper),
            )
Beispiel #4
0
        def create():
            def right_duration_mapper(y):
                if len(y.value) >= 0:
                    raise Exception(ex)
                else:
                    return reactivex.empty()

            def mapper(xy):
                x, y = xy
                return "{}{}".format(x.value, y.value)

            return xs.pipe(
                ops.join(
                    ys,
                    lambda x: reactivex.timer(x.interval),
                    right_duration_mapper,
                ),
                ops.map(mapper),
            )
Beispiel #5
0
    def test_join_op_forward_scheduler_None(self):

        subscribe_schedulers = {
            "x": "unknown",
            "y": "unknown",
            "duration_x": "unknown",
            "duration_y": "unknown",
        }

        def subscribe_x(observer, scheduler="not_set"):
            subscribe_schedulers["x"] = scheduler
            # need to push one element to trigger duration mapper
            observer.on_next("foo")

        def subscribe_y(observer, scheduler="not_set"):
            subscribe_schedulers["y"] = scheduler
            # need to push one element to trigger duration mapper
            observer.on_next("bar")

        def subscribe_duration_x(observer, scheduler="not_set"):
            subscribe_schedulers["duration_x"] = scheduler

        def subscribe_duration_y(observer, scheduler="not_set"):
            subscribe_schedulers["duration_y"] = scheduler

        xs = reactivex.create(subscribe_x)
        ys = reactivex.create(subscribe_y)
        duration_x = reactivex.create(subscribe_duration_x)
        duration_y = reactivex.create(subscribe_duration_y)

        stream = xs.pipe(
            ops.join(
                ys,
                lambda x: duration_x,
                lambda y: duration_y,
            ), )

        stream.subscribe()
        assert subscribe_schedulers["x"] is None
        assert subscribe_schedulers["y"] is None
        assert subscribe_schedulers["duration_x"] is None
        assert subscribe_schedulers["duration_y"] is None