Repository navigation
Expand file tree
/
Copy pathtest_sync_client.py
More file actions
85 lines (61 loc) · 2.85 KB
/
Copy pathtest_sync_client.py
File metadata and controls
85 lines (61 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from unittest.mock import AsyncMock
from regexsolver import Integer, RegexSolverClient, Term
def test_sync_client_get_cardinality():
with RegexSolverClient(api_token="test-token") as client:
# Mock the underlying async client's method
client._aio.get_cardinality = AsyncMock(return_value=Integer(42))
term = Term.regex("abc")
result = client.get_cardinality(term)
assert isinstance(result, Integer)
assert result.value == 42
client._aio.get_cardinality.assert_called_once_with(term, None)
def test_sync_client_is_empty():
with RegexSolverClient(api_token="test-token") as client:
client._aio.is_empty = AsyncMock(return_value=False)
term = Term.regex("abc")
result = client.is_empty(term)
assert result is False
client._aio.is_empty.assert_called_once_with(term, None)
def test_sync_client_union():
with RegexSolverClient(api_token="test-token") as client:
mock_result_term = Term.regex("a|b")
client._aio.union = AsyncMock(return_value=mock_result_term)
term1 = Term.regex("a")
term2 = Term.regex("b")
result = client.union(term1, term2)
assert result == mock_result_term
client._aio.union.assert_called_once_with(
term1, term2, response_format=None, deterministic=None, execution_timeout=None
)
def test_sync_client_complement():
with RegexSolverClient(api_token="test-token") as client:
mock_result_term = Term.regex("[^a].*")
client._aio.complement = AsyncMock(return_value=mock_result_term)
term = Term.regex(".*a.*")
result = client.complement(term)
assert result == mock_result_term
client._aio.complement.assert_called_once_with(
term, response_format=None, deterministic=None, execution_timeout=None
)
def test_sync_client_get_length():
with RegexSolverClient(api_token="test-token") as client:
from regexsolver.models.length import Length
client._aio.get_length = AsyncMock(return_value=Length(1, 4))
term = Term.regex("(abc)?d")
result = client.get_length(term)
assert result.min == 1
assert result.max == 4
def test_sync_client_intersection():
with RegexSolverClient(api_token="test-token") as client:
mock_result_term = Term.regex("a")
client._aio.intersection = AsyncMock(return_value=mock_result_term)
t1 = Term.regex("a")
t2 = Term.regex("ab")
result = client.intersection(t1, t2)
assert result == mock_result_term
def test_sync_client_generate_strings():
with RegexSolverClient(api_token="test-token") as client:
client._aio.generate_strings = AsyncMock(return_value=["", "a", "aa"])
term = Term.regex("a*")
result = client.generate_strings(term, 3, 0)
assert result == ["", "a", "aa"]