File: test_key.py

package info (click to toggle)
python-asdf 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,032 kB
  • sloc: python: 24,068; makefile: 123
file content (121 lines) | stat: -rw-r--r-- 1,906 bytes parent folder | download | duplicates (2)
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