Beispiel #1
0
def test_popitem():
    # dict.popitem()
    for copymode in -1, +1:
        # -1: b has same structure as a
        # +1: b is a.copy()
        for log2size in range(12):
            size = 2**log2size
            X = meta.Entity.define_subclass(
                'X', {'p' + repr(i): meta.Integer()
                      for i in range(size)})
            a = X()
            b = X()
            for i in range(size):
                a['p' + repr(i)] = i
                if copymode < 0:
                    b['p' + repr(i)] = i
            if copymode > 0:
                b = a.copy()
            for i in range(size):
                ka, va = ta = a.popitem()
                assert va == int(ka[1:])
                kb, vb = tb = b.popitem()
                assert vb == int(kb[1:])
                # assert not (copymode < 0 and ta != tb) ; 이 조건은 보장할 수 없다. 실제로 PyPy 에서는 통과하지 못한다.
            assert not a
            assert not b

    d = meta.Entity()
    with pytest.raises(KeyError):
        d.popitem()
Beispiel #2
0
 class X(meta.Entity):
     a = meta.Integer()
     b = meta.Integer()
     c = meta.Integer()
Beispiel #3
0
 class Y(X):
     A = meta.Integer()
Beispiel #4
0
 class Y(X):
     b = meta.Integer(name='A')
Beispiel #5
0
 class Y(meta.Entity):
     a = meta.Integer(name='A')
     A = meta.Integer()
Beispiel #6
0
 class X(meta.Entity):
     a = meta.Integer(ordered=True)
Beispiel #7
0
 class X(meta.Entity):
     a = meta.Tuple(meta.Integer(), U())
Beispiel #8
0
 class U(meta.Union):
     s = meta.Integer(ordered=True)
     m = meta.String(ordered=True)
Beispiel #9
0
 class X(meta.Entity):
     a = meta.Integer(name='A')
Beispiel #10
0
 class X(meta.Entity):
     a = meta.Integer(required=True)
     b = meta.Integer()
     c = meta.Integer(view='private')
Beispiel #11
0
 class X(meta.Entity):
     a = meta.Integer(required=True)
     b = meta.Integer()
     c = meta.Integer(required=True, default=3)
     d = meta.Integer(default=4)
Beispiel #12
0
 class X(meta.Entity):
     p1 = meta.Integer()
     p2 = meta.Integer()
Beispiel #13
0
 class X(meta.Entity):
     a = meta.Integer(codec='test')
Beispiel #14
0
 class X(meta.Entity):
     p = meta.Tuple(meta.Integer(), meta.String(view='secret'))
Beispiel #15
0
 class X(meta.Entity):
     p = meta.Tuple(meta.Integer(default=lambda: 1))