You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
When using e.g. operators.retry(3) the operator will stop the emission after 3 repeats even though no error had been raised.
To Reproduce
I feel that the below test should pass, but it fails as mentioned in the comments
deftest_retry_with_count_when_complete():
scheduler=TestScheduler()
xs=scheduler.create_cold_observable(
on_next(90, 42), on_completed(200)
)
result=scheduler.start(
lambda: xs.pipe(
operators.retry(2), # <-- expecting this to only react when an error is thrownoperators.repeat() # <-- when it reaches this, retry has done its job and resub-ing to source via repeat should reset the counter
)
)
assertresult.messages== [
on_next(290, 42),
on_next(490, 42),
on_next(690, 42), # <-- expecting this and next line, but in current state, ...on_next(890, 42), # <-- ... these two will never be emitted as retry(2) stops source from repeating
]
Expected behavior retry should not interact with the sequence unless an error is emitted. Currently it limits the number of calls to n regardless of the source observable behavior.
I understand that it may be my understanding of retry(n) which is flawed, but it seems to me like a bug. Logically retry(3) should look at the on_completed as (quoting docs):
or until it successfully terminates
So when src completes, retry(3) has done its job, and it's only when we resubscribe via repeat() that it should reset to try 3 times imo.
Code or Screenshots
See reproduction test above
Additional context
RxPY version: 4.0.4
Python version : 3.11
The text was updated successfully, but these errors were encountered:
Describe the bug
When using e.g.
operators.retry(3)
the operator will stop the emission after 3 repeats even though no error had been raised.To Reproduce
I feel that the below test should pass, but it fails as mentioned in the comments
Expected behavior
retry
should not interact with the sequence unless an error is emitted. Currently it limits the number of calls ton
regardless of the source observable behavior.I understand that it may be my understanding of
retry(n)
which is flawed, but it seems to me like a bug. Logicallyretry(3)
should look at theon_completed
as (quoting docs):So when src completes,
retry(3)
has done its job, and it's only when we resubscribe viarepeat()
that it should reset totry 3 times
imo.Code or Screenshots
See reproduction test above
Additional context
The text was updated successfully, but these errors were encountered: