Added take until

This commit is contained in:
2023-04-16 16:52:06 +02:00
parent b7d518022a
commit 39ca803d36
4 changed files with 71 additions and 7 deletions

View File

@@ -1,9 +1,12 @@
import time
import traceback
import unittest
from cpl_core.console import Console
from cpl_reactive_extensions import Subject
from cpl_reactive_extensions.interval import Interval
from cpl_reactive_extensions.operators.take import take
from cpl_reactive_extensions.operators.take_until import take_until
class ObservableOperatorTestCase(unittest.TestCase):
@@ -20,8 +23,45 @@ class ObservableOperatorTestCase(unittest.TestCase):
self._completed = True
def test_take_two(self):
count = 0
def sub(x):
Console.write_line(x)
nonlocal count
count += 1
observable = Interval(0.1)
sub = observable.pipe(take(2)).subscribe(sub)
observable.pipe(take(2)).subscribe(sub)
time.sleep(0.5)
self.assertEqual(count, 2)
def test_take_five(self):
count = 0
def sub(x):
nonlocal count
count += 1
observable = Interval(0.1)
observable.pipe(take(5)).subscribe(sub)
time.sleep(1)
self.assertEqual(count, 5)
def test_take_until(self):
count = 0
unsubscriber = Subject(None)
def sub(x):
nonlocal count
count += 1
observable = Interval(0.1)
observable.pipe(take_until(unsubscriber)).subscribe(sub)
timer = 2
time.sleep(timer)
unsubscriber.next(None)
unsubscriber.complete()
self.assertEqual(count, timer * 10 - 1)