Skip to content

Commit 1f8c22b

Browse files
committed
test: add test_result_error_handling
1 parent 8c1e089 commit 1f8c22b

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

tests/test_basic.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,25 @@ def test_err_initialization():
2525
assert result1 == result2
2626

2727

28+
def test_result_error_handling():
29+
"""Test detailed error handling and propagation."""
30+
result = Result.as_Err("Failure")
31+
32+
# Error message check
33+
assert result.Err_msg_contains("Failure")
34+
35+
# Add message
36+
result.add_Err_msg("Another failure")
37+
assert result.Err_msg_contains("Another failure")
38+
39+
# Expect error
40+
with pytest.raises(ResultErr):
41+
result.expect()
42+
43+
with pytest.raises(ResultErr):
44+
result.raises()
45+
46+
2847
# Test for adding Ok values
2948
def test_ok_addition():
3049
result1 = Ok(5)
@@ -288,3 +307,27 @@ def test_err_initialization_with_large_dict():
288307
result = Err(large_dict)
289308
assert result.is_Err
290309
assert result.unwrap().msg == [str(large_dict)]
310+
311+
312+
def test_operator_overloading():
313+
result1 = Ok(10)
314+
result2 = Ok(5)
315+
316+
# Arithmetic
317+
result_sum = result1 + result2
318+
assert result_sum == 15
319+
assert result_sum == Ok(15)
320+
assert result_sum.unwrap() == 15
321+
assert result_sum.expect() == 15
322+
323+
result_diff = result1 - result2
324+
assert result_diff == 5
325+
assert result_diff == Ok(5)
326+
assert result_diff.unwrap() == 5
327+
assert result_diff.expect() == 5
328+
329+
# Comparison
330+
assert result1 > result2
331+
assert result1 >= result2
332+
assert result1 != result2
333+
assert result1 == Ok(10)

0 commit comments

Comments
 (0)