MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_basic_sanity

Method test_basic_sanity

test/base/test_utils.py:2162–2227  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2160 )
2161
2162 def test_basic_sanity(self):
2163 IdentitySet = util.IdentitySet
2164
2165 o1, o2, o3 = self.obj_type(), self.obj_type(), self.obj_type()
2166 ids = IdentitySet([o1])
2167 ids.discard(o1)
2168 ids.discard(o1)
2169 ids.add(o1)
2170 ids.remove(o1)
2171 assert_raises(KeyError, ids.remove, o1)
2172
2173 eq_(ids.copy(), ids)
2174
2175 # explicit __eq__ and __ne__ tests
2176 assert ids != None # noqa
2177 assert not (ids == None) # noqa
2178
2179 ne_(ids, IdentitySet([o1, o2, o3]))
2180 ids.clear()
2181 assert o1 not in ids
2182 ids.add(o2)
2183 assert o2 in ids
2184 eq_(ids.pop(), o2)
2185 ids.add(o1)
2186 eq_(len(ids), 1)
2187
2188 isuper = IdentitySet([o1, o2])
2189 assert ids < isuper
2190 assert ids.issubset(isuper)
2191 assert isuper.issuperset(ids)
2192 assert isuper > ids
2193
2194 eq_(ids.union(isuper), isuper)
2195 eq_(ids | isuper, isuper)
2196 eq_(isuper - ids, IdentitySet([o2]))
2197 eq_(isuper.difference(ids), IdentitySet([o2]))
2198 eq_(ids.intersection(isuper), IdentitySet([o1]))
2199 eq_(ids & isuper, IdentitySet([o1]))
2200 eq_(ids.symmetric_difference(isuper), IdentitySet([o2]))
2201 eq_(ids ^ isuper, IdentitySet([o2]))
2202
2203 ids.update(isuper)
2204 ids |= isuper
2205 ids.difference_update(isuper)
2206 ids -= isuper
2207 ids.intersection_update(isuper)
2208 ids &= isuper
2209 ids.symmetric_difference_update(isuper)
2210 ids ^= isuper
2211
2212 ids.update("foobar")
2213 try:
2214 ids |= "foobar"
2215 assert False
2216 except TypeError:
2217 assert True
2218
2219 try:

Callers

nothing calls this directly

Calls 15

discardMethod · 0.95
addMethod · 0.95
removeMethod · 0.95
copyMethod · 0.95
clearMethod · 0.95
popMethod · 0.95
issubsetMethod · 0.95
issupersetMethod · 0.95
unionMethod · 0.95
differenceMethod · 0.95
intersectionMethod · 0.95
symmetric_differenceMethod · 0.95

Tested by

no test coverage detected