Skip to content

Commit

Permalink
Add BackgroundLoopMixin happ path test
Browse files Browse the repository at this point in the history
  • Loading branch information
lucekdudek committed Jul 25, 2023
1 parent 8523334 commit 1e812b6
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
3 changes: 2 additions & 1 deletion golem/managers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
RandomScore,
ScoredAheadOfTimeAgreementManager,
)
from golem.managers.base import RejectProposal, WorkContext, WorkResult
from golem.managers.base import Manager, RejectProposal, WorkContext, WorkResult
from golem.managers.demand import AutoDemandManager
from golem.managers.mixins import BackgroundLoopMixin
from golem.managers.negotiation import (
Expand All @@ -33,6 +33,7 @@
"PropertyValueLerpScore",
"RandomScore",
"ScoredAheadOfTimeAgreementManager",
"Manager",
"RejectProposal",
"WorkContext",
"WorkResult",
Expand Down
33 changes: 33 additions & 0 deletions tests/unit/test_managers_mixins.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import asyncio
import random
from typing import Optional

from golem.managers import BackgroundLoopMixin, Manager


class FooBarBackgroundLoopManager(BackgroundLoopMixin, Manager):
def __init__(self, foo: int, *args, **kwargs) -> None:
self.foo: int = foo
self.bar: Optional[int] = None

super().__init__(*args, **kwargs)

async def _background_loop(self) -> None:
self.bar = self.foo
while True:
# await to switch out of the loop
await asyncio.sleep(1)


async def test_background_loop_mixin_ok():
given_bar = random.randint(0, 10)
manager = FooBarBackgroundLoopManager(given_bar)
assert not manager.is_started()
assert manager.bar is None
async with manager:
# await to switch to `FooBarBackgroundLoopManager._background_loop`
await asyncio.sleep(0.1)
assert manager.is_started()
assert manager.bar == given_bar
assert not manager.is_started()
assert manager.bar == given_bar

0 comments on commit 1e812b6

Please sign in to comment.