1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
import copy
import gc
from asdf._block.key import Key
# a blank class for testing
class Foo:
pass
def test_unique_per_object():
seen = set()
for _i in range(10):
bk = Key(Foo())
assert bk not in seen
seen.add(bk)
def test_unique_same_object():
seen = set()
f = Foo()
for _i in range(10):
bk = Key(f)
assert bk not in seen
seen.add(bk)
def test_matches_obj():
f = Foo()
bk = Key(f)
assert bk._matches_object(f)
def test_undefined_no_match():
bk = Key()
assert not bk._matches_object(Foo())
def test_is_valid():
f = Foo()
bk = Key(f)
assert bk._is_valid()
del f
gc.collect(2)
assert not bk._is_valid()
def test_same_class():
f = Foo()
bk = Key(f)
del f
gc.collect(2)
f2 = Foo()
assert not bk._is_valid()
assert not bk._matches_object(f2)
def test_undefined():
k = Key()
assert not k._is_valid()
def test_equal():
key_value = 42
f = Foo()
k1 = Key(f, key_value)
k2 = Key(f, key_value)
assert k1 == k2
def test_key_mismatch_not_equal():
f = Foo()
k1 = Key(f)
k2 = Key(f)
assert k1 != k2
def test_obj_not_equal():
f = Foo()
k = Key(f)
assert k != f
def test_undefined_not_equal():
key_value = 42
k1 = Key(_key=key_value)
k2 = Key(_key=key_value)
assert k1 != k2
def test_deleted_object_not_equal():
key_value = 42
f = Foo()
k1 = Key(f, key_value)
k2 = Key(f, key_value)
del f
gc.collect(2)
assert k1 != k2
def test_copy():
f = Foo()
k1 = Key(f)
k2 = copy.copy(k1)
assert k1 == k2
def test_copy_undefined_not_equal():
k1 = Key()
k2 = copy.copy(k1)
assert k1 != k2
def test_copy_deleted_object_not_equal():
f = Foo()
k1 = Key(f)
k2 = copy.copy(k1)
del f
gc.collect(2)
assert k1 != k2
|