test_mypy.py 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. # This file doesn't use test parametrization because mypy doesn't nothing about it.
  2. # Concrete types are required
  3. import multidict
  4. def test_classes_not_abstract() -> None:
  5. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  6. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  7. multidict.MultiDictProxy(d1)
  8. multidict.CIMultiDictProxy(d2)
  9. def test_getitem() -> None:
  10. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  11. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  12. d3 = multidict.MultiDictProxy(d1)
  13. d4 = multidict.CIMultiDictProxy(d2)
  14. key = multidict.istr("a")
  15. assert d1["a"] == "b"
  16. assert d2["a"] == "b"
  17. assert d3["a"] == "b"
  18. assert d4["a"] == "b"
  19. assert d1[key] == "b"
  20. assert d2[key] == "b"
  21. assert d3[key] == "b"
  22. assert d4[key] == "b"
  23. def test_get() -> None:
  24. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  25. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  26. d3 = multidict.MultiDictProxy(d1)
  27. d4 = multidict.CIMultiDictProxy(d2)
  28. key = multidict.istr("a")
  29. assert d1.get("a") == "b"
  30. assert d2.get("a") == "b"
  31. assert d3.get("a") == "b"
  32. assert d4.get("a") == "b"
  33. assert d1.get(key) == "b"
  34. assert d2.get(key) == "b"
  35. assert d3.get(key) == "b"
  36. assert d4.get(key) == "b"
  37. def test_get_default() -> None:
  38. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  39. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  40. d3 = multidict.MultiDictProxy(d1)
  41. d4 = multidict.CIMultiDictProxy(d2)
  42. key = multidict.istr("b")
  43. assert d1.get("b", "d") == "d"
  44. assert d2.get("b", "d") == "d"
  45. assert d3.get("b", "d") == "d"
  46. assert d4.get("b", "d") == "d"
  47. assert d1.get(key, "d") == "d"
  48. assert d2.get(key, "d") == "d"
  49. assert d3.get(key, "d") == "d"
  50. assert d4.get(key, "d") == "d"
  51. def test_getone() -> None:
  52. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  53. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  54. d3 = multidict.MultiDictProxy(d1)
  55. d4 = multidict.CIMultiDictProxy(d2)
  56. key = multidict.istr("a")
  57. assert d1.getone("a") == "b"
  58. assert d2.getone("a") == "b"
  59. assert d3.getone("a") == "b"
  60. assert d4.getone("a") == "b"
  61. assert d1.getone(key) == "b"
  62. assert d2.getone(key) == "b"
  63. assert d3.getone(key) == "b"
  64. assert d4.getone(key) == "b"
  65. def test_getone_default() -> None:
  66. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  67. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  68. d3 = multidict.MultiDictProxy(d1)
  69. d4 = multidict.CIMultiDictProxy(d2)
  70. key = multidict.istr("b")
  71. assert d1.getone("b", 1) == 1
  72. assert d2.getone("b", 1) == 1
  73. assert d3.getone("b", 1) == 1
  74. assert d4.getone("b", 1) == 1
  75. assert d1.getone(key, 1) == 1
  76. assert d2.getone(key, 1) == 1
  77. assert d3.getone(key, 1) == 1
  78. assert d4.getone(key, 1) == 1
  79. def test_getall() -> None:
  80. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  81. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  82. d3 = multidict.MultiDictProxy(d1)
  83. d4 = multidict.CIMultiDictProxy(d2)
  84. key = multidict.istr("a")
  85. assert d1.getall("a") == ["b"]
  86. assert d2.getall("a") == ["b"]
  87. assert d3.getall("a") == ["b"]
  88. assert d4.getall("a") == ["b"]
  89. assert d1.getall(key) == ["b"]
  90. assert d2.getall(key) == ["b"]
  91. assert d3.getall(key) == ["b"]
  92. assert d4.getall(key) == ["b"]
  93. def test_getall_default() -> None:
  94. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  95. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  96. d3 = multidict.MultiDictProxy(d1)
  97. d4 = multidict.CIMultiDictProxy(d2)
  98. key = multidict.istr("b")
  99. assert d1.getall("b", 1) == 1
  100. assert d2.getall("b", 1) == 1
  101. assert d3.getall("b", 1) == 1
  102. assert d4.getall("b", 1) == 1
  103. assert d1.getall(key, 1) == 1
  104. assert d2.getall(key, 1) == 1
  105. assert d3.getall(key, 1) == 1
  106. assert d4.getall(key, 1) == 1
  107. def test_copy() -> None:
  108. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  109. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  110. d3 = multidict.MultiDictProxy(d1)
  111. d4 = multidict.CIMultiDictProxy(d2)
  112. assert d1.copy() == d1
  113. assert d2.copy() == d2
  114. assert d3.copy() == d1
  115. assert d4.copy() == d2
  116. def test_iter() -> None:
  117. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  118. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  119. d3 = multidict.MultiDictProxy(d1)
  120. d4 = multidict.CIMultiDictProxy(d2)
  121. for i in d1:
  122. i.lower() # str-specific class
  123. for i in d2:
  124. i.lower() # str-specific class
  125. for i in d3:
  126. i.lower() # str-specific class
  127. for i in d4:
  128. i.lower() # str-specific class
  129. def test_setitem() -> None:
  130. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  131. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  132. key = multidict.istr("a")
  133. d1["a"] = "b"
  134. d2["a"] = "b"
  135. d1[key] = "b"
  136. d2[key] = "b"
  137. def test_delitem() -> None:
  138. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  139. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  140. del d1["a"]
  141. del d2["a"]
  142. key = multidict.istr("a")
  143. d3: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  144. d4: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  145. del d3[key]
  146. del d4[key]
  147. def test_additem() -> None:
  148. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  149. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  150. key = multidict.istr("a")
  151. d1.add("a", "b")
  152. d2.add("a", "b")
  153. d1.add(key, "b")
  154. d2.add(key, "b")
  155. def test_extend_mapping() -> None:
  156. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  157. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  158. key = multidict.istr("a")
  159. d1.extend({"a": "b"})
  160. d2.extend({"a": "b"})
  161. d1.extend({key: "b"})
  162. d2.extend({key: "b"})
  163. def test_update_mapping() -> None:
  164. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  165. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  166. key = multidict.istr("a")
  167. d1.update({"a": "b"})
  168. d2.update({"a": "b"})
  169. d1.update({key: "b"})
  170. d2.update({key: "b"})
  171. def test_popone() -> None:
  172. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  173. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  174. assert d1.popone("a") == "b"
  175. assert d2.popone("a") == "b"
  176. key = multidict.istr("a")
  177. d1 = multidict.MultiDict({"a": "b"})
  178. d2 = multidict.CIMultiDict({"a": "b"})
  179. assert d1.popone(key) == "b"
  180. assert d2.popone(key) == "b"
  181. def test_popall() -> None:
  182. d1: multidict.MultiDict[str] = multidict.MultiDict({"a": "b"})
  183. d2: multidict.CIMultiDict[str] = multidict.CIMultiDict({"a": "b"})
  184. assert d1.popall("a") == ["b"]
  185. assert d2.popall("a") == ["b"]
  186. key = multidict.istr("a")
  187. d1 = multidict.MultiDict({"a": "b"})
  188. d2 = multidict.CIMultiDict({"a": "b"})
  189. assert d1.popall(key) == ["b"]
  190. assert d2.popall(key) == ["b"]