| 75 | |
| 76 | |
| 77 | def test_includes(): |
| 78 | # type: () -> None |
| 79 | |
| 80 | assert includes("", "") |
| 81 | assert includes("", "==1") |
| 82 | assert includes("", ">1") |
| 83 | assert includes("", ">=1") |
| 84 | assert includes("", "<1") |
| 85 | assert includes("", "<=1") |
| 86 | assert includes("", "==1.*") |
| 87 | assert includes("", "!=1.*") |
| 88 | assert includes("", "~=1.2") |
| 89 | |
| 90 | assert not includes("", "===bob") |
| 91 | |
| 92 | # Arbitrary equality: versions treated as strings and must match exactly. |
| 93 | assert includes("===bob", "===bob") |
| 94 | assert not includes("===fred", "===bob") |
| 95 | assert includes("===1", "===1") |
| 96 | assert not includes("===1.0", "===1") |
| 97 | assert not includes("===1", "===1.0") |
| 98 | |
| 99 | # Compatible X.Y: should be equivalent to >=X.Y,==X.* or, equivalently >=X.Y,<X+1. |
| 100 | assert includes("~=1.2", ">=1.2,==1.*") |
| 101 | assert includes("~=1.2", ">=1.2,<2") |
| 102 | assert includes("~=1.2", ">=1.3,<2") |
| 103 | assert includes("~=1.2", ">=1.2,<1.9") |
| 104 | assert includes("~=1.2", "==1.2.*") |
| 105 | assert includes("~=1.2", "==1.3.*") |
| 106 | assert includes("~=1.2", "==1.3") |
| 107 | |
| 108 | assert not includes("~=1.2", "==1.1") |
| 109 | assert not includes("~=1.2", "==2") |
| 110 | assert not includes("~=1.2", "==1.*") |
| 111 | assert not includes("~=1.2", "") |
| 112 | |
| 113 | assert includes("~=1.2.3", ">=1.2.3,==1.2.*") |
| 114 | assert includes("~=1.2.3", ">=1.2.3,<1.3") |
| 115 | assert includes("~=1.2.3", "==1.2.3") |
| 116 | assert includes("~=1.2.3", "==1.2.13") |
| 117 | |
| 118 | assert not includes("~=1.2.3", "==1.3") |
| 119 | assert not includes("~=1.2.3", "==1.2.2") |
| 120 | |
| 121 | # Equality: missing components should be 0-filled for comparison. |
| 122 | assert includes("==1", "==1") |
| 123 | assert includes("==1.0", "==1") |
| 124 | assert includes("==1", "==1.0") |
| 125 | |
| 126 | assert not includes("==1", "==1.0.1") |
| 127 | assert not includes("==1", "==0.9") |
| 128 | assert not includes("==1", "==1.*") |
| 129 | |
| 130 | assert includes("!=2", "==1") |
| 131 | assert includes("!=2", "==3") |
| 132 | assert includes("!=2", "==2.1") |
| 133 | assert includes("!=2", "<2") |
| 134 | assert includes("!=2", ">2") |