Spaces:
Sleeping
Sleeping
import string | |
import time | |
from typing import Any, Callable | |
import pytest | |
from ...base import random_token, translate_dict_func, default_func, ControllableService | |
class TestInteractionBaseCommon: | |
def test_random_token(self): | |
assert len(random_token()) == 64 | |
assert len(random_token(32)) == 32 | |
assert set(random_token()) - set(string.hexdigits) == set() | |
def test_translate_dict_func(self): | |
assert translate_dict_func({ | |
'a': lambda: 2, | |
'b': lambda: 3, | |
'sum': lambda: 5, | |
})() == { | |
'a': 2, | |
'b': 3, | |
'sum': 5 | |
} | |
assert translate_dict_func( | |
{ | |
'a': lambda ax, bx: 2 + ax, | |
'b': lambda ax, bx: 3 + bx, | |
'sum': lambda ax, bx: 5 + ax + bx, | |
} | |
)(4, 5) == { | |
'a': 6, | |
'b': 8, | |
'sum': 14 | |
} | |
def test_default_func(self): | |
def _calculate(a: int, b: int, callback: Callable[..., Any] = None): | |
return default_func(233)(callback)(a, b) | |
assert _calculate(1, 2) == 233 | |
assert _calculate(1, 2, lambda a, b: a + b) == 3 | |
assert _calculate(1, 2, lambda a, b: a * b) == 2 | |
class TestInteractionBaseControllableService: | |
def test_it(self): | |
_start, _shutdown, _finished = False, False, False | |
class _Service(ControllableService): | |
def start(self): | |
nonlocal _start | |
_start = True | |
def shutdown(self): | |
nonlocal _shutdown | |
_shutdown = True | |
def join(self): | |
time.sleep(1.0) | |
nonlocal _finished | |
_finished = True | |
assert (_start, _shutdown, _finished) == (False, False, False) | |
with _Service(): | |
assert (_start, _shutdown, _finished) == (True, False, False) | |
assert (_start, _shutdown, _finished) == (True, True, True) | |