Coverage for app/tests/delivery_fee/model/test_delivery_fee.py: 100%
91 statements
« prev ^ index » next coverage.py v7.4.1, created at 2024-11-27 09:26 +0000
« prev ^ index » next coverage.py v7.4.1, created at 2024-11-27 09:26 +0000
1import pytest
2from app.delivery_fee.models import DeliveryFee
5edge_cases_for_numeric_fields = [None,
6 [1, 2, 3], [], {}, {"a": 1, "b": 2}, "invalid"]
9# Test __add__
10def test_delivery_fee__add__with_valid_data():
11 # Try with valid data
12 fee = DeliveryFee(delivery_fee=100)
13 fee = fee + 100
14 assert fee.delivery_fee == 200
17@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
18def test_delivery_fee__add__with_invalid_data(delivery_fee):
19 # Try with invalid data
20 with pytest.raises(TypeError):
21 DeliveryFee(0) + delivery_fee
24# Test __sub__
25def test_delivery_fee__sub__with_valid_data():
26 # Try with valid data
27 fee = DeliveryFee(delivery_fee=100)
28 fee = fee - 100
29 assert fee == 0
32@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
33def test_delivery_fee__sub__with_invalid_data(delivery_fee):
34 # Try with invalid data
35 fee = DeliveryFee(delivery_fee=100)
36 with pytest.raises(TypeError):
37 fee = delivery_fee - delivery_fee
40# Test __mul__
41def test_delivery_fee__mul__with_valid_data():
42 # Try with valid data
43 fee = DeliveryFee(delivery_fee=100)
44 fee = fee * 100
45 assert fee == 10000
48@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
49def test_delivery_fee__mul__with_invalid_data(delivery_fee):
50 # Try with invalid data
51 fee = DeliveryFee(delivery_fee=100)
52 with pytest.raises(TypeError):
53 fee = fee * delivery_fee
56# Test __div__
57def test_delivery_fee__div__with_valid_data():
58 # Try with valid data
59 fee = DeliveryFee(delivery_fee=100)
60 fee = fee / 100
61 assert fee == 1
64@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
65def test_delivery_fee__div__with_invalid_data(delivery_fee):
66 # Try with invalid data
67 fee = DeliveryFee(delivery_fee=100)
68 with pytest.raises(TypeError):
69 fee = fee / delivery_fee
72# Test __gt__
73def test_delivery_fee__gt__with_valid_data():
74 # Try with valid data
75 fee = DeliveryFee(delivery_fee=100)
76 assert fee > 50
77 assert not (fee > 100)
80@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
81def test_delivery_fee__gt__with_invalid_data(delivery_fee):
82 # Try with invalid data
83 fee = DeliveryFee(delivery_fee=100)
84 with pytest.raises(TypeError):
85 fee > delivery_fee
88# Test __ge__
89def test_delivery_fee__ge__with_valid_data():
90 # Try with valid data
91 fee = DeliveryFee(delivery_fee=100)
92 assert fee >= 100
95@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
96def test_delivery_fee__ge__with_invalid_data(delivery_fee):
97 # Try with invalid data
98 fee = DeliveryFee(delivery_fee=100)
99 with pytest.raises(TypeError):
100 fee >= delivery_fee
103# Test __lt__
104def test_delivery_fee__lt__with_valid_data():
105 # Try with valid data
106 fee = DeliveryFee(delivery_fee=100)
107 assert fee < 200
108 assert not (fee < 99)
111@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
112def test_delivery_fee__lt__with_invalid_data(delivery_fee):
113 # Try with invalid data
114 fee = DeliveryFee(delivery_fee=100)
115 with pytest.raises(TypeError):
116 fee < delivery_fee
119# Test __le__
120def test_delivery_fee__le__with_valid_data():
121 # Try with valid data
122 fee = DeliveryFee(delivery_fee=100)
123 assert fee <= 100
126@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
127def test_delivery_fee__le__with_invalid_data(delivery_fee):
128 # Try with invalid data
129 fee = DeliveryFee(delivery_fee=100)
130 with pytest.raises(TypeError):
131 fee <= delivery_fee
134# Test __eq__
135def test_delivery_fee__eq__with_valid_data():
136 # Try with valid data
137 fee = DeliveryFee(delivery_fee=100)
138 assert fee == 100
139 assert not (fee == 101)
140 assert not (fee == 99)
143@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
144def test_delivery_fee__eq__with_invalid_data(delivery_fee):
145 # Try with invalid data
146 fee = DeliveryFee(delivery_fee=100)
147 with pytest.raises(TypeError):
148 fee == delivery_fee
151# Test __ne__
152def test_delivery_fee__ne__with_valid_data():
153 # Try with valid data
154 fee = DeliveryFee(delivery_fee=100)
155 assert fee != 200
156 assert not (fee != 100)
159@pytest.mark.parametrize("delivery_fee", edge_cases_for_numeric_fields)
160def test_delivery_fee__ne__with_invalid_data(delivery_fee):
161 # Try with invalid data
162 fee = DeliveryFee(delivery_fee=100)
163 with pytest.raises(TypeError):
164 fee != delivery_fee