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

1import pytest 

2from app.delivery_fee.models import DeliveryFee 

3 

4 

5edge_cases_for_numeric_fields = [None, 

6 [1, 2, 3], [], {}, {"a": 1, "b": 2}, "invalid"] 

7 

8 

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 

15 

16 

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 

22 

23 

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 

30 

31 

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 

38 

39 

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 

46 

47 

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 

54 

55 

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 

62 

63 

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 

70 

71 

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) 

78 

79 

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 

86 

87 

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 

93 

94 

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 

101 

102 

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) 

109 

110 

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 

117 

118 

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 

124 

125 

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 

132 

133 

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) 

141 

142 

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 

149 

150 

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) 

157 

158 

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