[WIP] Added scheduler
This commit is contained in:
@@ -3,7 +3,9 @@ import traceback
|
||||
import unittest
|
||||
|
||||
from cpl_core.console import Console
|
||||
from cpl_reactive_extensions import Subject
|
||||
from cpl_reactive_extensions.observable import Observable
|
||||
from cpl_reactive_extensions.operators import debounce_time
|
||||
from cpl_reactive_extensions.subject.subject 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
|
||||
@@ -65,3 +67,17 @@ class ObservableOperatorTestCase(unittest.TestCase):
|
||||
unsubscriber.next(None)
|
||||
unsubscriber.complete()
|
||||
self.assertEqual(count, timer * 10 - 1)
|
||||
|
||||
def test_debounce_time(self):
|
||||
def call(x):
|
||||
x.next(1)
|
||||
x.next(2)
|
||||
x.next(3)
|
||||
x.next(4)
|
||||
x.next(5)
|
||||
x.next(6)
|
||||
x.complete()
|
||||
|
||||
observable = Observable(call)
|
||||
|
||||
observable.pipe(debounce_time(600)).subscribe(lambda x: Console.write_line("Hey", x))
|
@@ -5,11 +5,11 @@ from datetime import datetime
|
||||
from threading import Timer
|
||||
|
||||
from cpl_core.console import Console
|
||||
from cpl_reactive_extensions.behavior_subject import BehaviorSubject
|
||||
from cpl_reactive_extensions.subject.behavior_subject import BehaviorSubject
|
||||
from cpl_reactive_extensions.interval import Interval
|
||||
from cpl_reactive_extensions.observable import Observable
|
||||
from cpl_reactive_extensions.subject import Subject
|
||||
from cpl_reactive_extensions.subscriber import Observer
|
||||
from cpl_reactive_extensions.subject.subject import Subject
|
||||
from cpl_reactive_extensions.internal.subscriber import Observer
|
||||
|
||||
|
||||
class ReactiveTestCase(unittest.TestCase):
|
||||
|
@@ -1,7 +1,8 @@
|
||||
import unittest
|
||||
|
||||
from unittests_reactive_extenstions.observable_operator import ObservableOperatorTestCase
|
||||
from unittests_reactive_extenstions.observable_operator_test_case import ObservableOperatorTestCase
|
||||
from unittests_reactive_extenstions.reactive_test_case import ReactiveTestCase
|
||||
from unittests_reactive_extenstions.scheduler_test_case import SchedulerTestCase
|
||||
|
||||
|
||||
class ReactiveTestSuite(unittest.TestSuite):
|
||||
@@ -11,6 +12,7 @@ class ReactiveTestSuite(unittest.TestSuite):
|
||||
loader = unittest.TestLoader()
|
||||
self.addTests(loader.loadTestsFromTestCase(ReactiveTestCase))
|
||||
self.addTests(loader.loadTestsFromTestCase(ObservableOperatorTestCase))
|
||||
self.addTests(loader.loadTestsFromTestCase(SchedulerTestCase))
|
||||
|
||||
def run(self, *args):
|
||||
super().run(*args)
|
||||
|
@@ -0,0 +1,36 @@
|
||||
import time
|
||||
import unittest
|
||||
from datetime import datetime
|
||||
|
||||
from cpl_core.console import Console
|
||||
from cpl_reactive_extensions.scheduler.async_scheduler import async_scheduler
|
||||
from cpl_reactive_extensions.timer import Timer
|
||||
|
||||
|
||||
class SchedulerTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
pass
|
||||
|
||||
def test_timer(self):
|
||||
count = 0
|
||||
|
||||
def task():
|
||||
nonlocal count
|
||||
Console.write_line(datetime.now(), "Hello world")
|
||||
count += 1
|
||||
|
||||
timer = Timer(100, task)
|
||||
time.sleep(0.25)
|
||||
self.assertEqual(count, 2)
|
||||
timer.clear()
|
||||
|
||||
def test_schedule(self):
|
||||
count = 0
|
||||
|
||||
def task():
|
||||
nonlocal count
|
||||
Console.write_line(datetime.now(), "Hello world")
|
||||
count += 1
|
||||
|
||||
async_scheduler.schedule(task, 100)
|
||||
time.sleep(2)
|
21
unittests/unittests_reactive_extenstions/test.py
Normal file
21
unittests/unittests_reactive_extenstions/test.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
from cpl_core.console import Console
|
||||
from cpl_reactive_extensions.timer import Timer
|
||||
|
||||
|
||||
def test_timer():
|
||||
is_working = False
|
||||
|
||||
def task():
|
||||
nonlocal is_working
|
||||
Console.write_line(datetime.now(), "Hello world")
|
||||
is_working = True
|
||||
|
||||
timer = Timer(100, task)
|
||||
time.sleep(0.2)
|
||||
timer.clear()
|
||||
|
||||
|
||||
test_timer()
|
@@ -2,9 +2,9 @@
|
||||
"ProjectSettings": {
|
||||
"Name": "unittests_reactive_extenstions",
|
||||
"Version": {
|
||||
"Major": "0",
|
||||
"Minor": "0",
|
||||
"Micro": "0"
|
||||
"Major": "2023",
|
||||
"Minor": "4",
|
||||
"Micro": "dev170"
|
||||
},
|
||||
"Author": "",
|
||||
"AuthorEmail": "",
|
||||
@@ -16,7 +16,7 @@
|
||||
"LicenseName": "",
|
||||
"LicenseDescription": "",
|
||||
"Dependencies": [
|
||||
"cpl-core>=2023.4.0"
|
||||
"cpl-core>=2023.4.dev170"
|
||||
],
|
||||
"DevDependencies": [
|
||||
"cpl-cli>=2023.4.0"
|
||||
|
Reference in New Issue
Block a user