Пример #1
0
def test_cannot_index_non_fields(attr, nonattr):
    assume(attr != nonattr)
    r = make_record('Rec', [attr])()
    with pytest.raises(KeyError):
        r[nonattr] = 42
    with pytest.raises(KeyError):
        r[nonattr]
Пример #2
0
def test_cannot_delete_fields(attr):
    r = make_record('Rec', [attr])()
    with pytest.raises(KeyError):
        del r[attr]
Пример #3
0
def test_cannot_update_non_fields(attr, nonattr):
    assume(attr != nonattr)
    r = make_record('Rec', [attr])()
    with pytest.raises(KeyError):
        r.update({nonattr: 42})
Пример #4
0
def test_can_update_fields(attr):
    r = make_record('Rec', [attr])()
    r.update({attr: 42})
    assert r[attr] == 42
Пример #5
0
def test_can_index_fields(attr):
    r = make_record('Rec', [attr])()
    r[attr] = 42
    assert r[attr] == 42
Пример #6
0
def test_can_assign_to_field_attributes(attr, value):
    r = make_record('Rec', [attr])()
    setattr(r, attr, value)
    assert getattr(r, attr) == value
Пример #7
0
def test_cannot_assign_to_non_field_attributes(attr, nonattr):
    assume(attr != nonattr)
    r = make_record('Rec', [attr])()
    with pytest.raises(AttributeError):
        setattr(r, nonattr, 'llama')
Пример #8
0
def test_default_attr_value_is_none(attrs):
    r = make_record('Rec', attrs)()
    for attr in attrs:
        assert getattr(r, attr) is None
    assert len(r) == len(attrs)
Пример #9
0
def test_empty_constructor_has_no_keys():
    r = make_record('Rec')()
    assert len(r) == 0
Пример #10
0
def test_empty_constructor_has_no_attributes(attr):
    assume(attr not in EXPECTED_RECORD_ATTRIBUTES)

    r = make_record('Rec')()
    with pytest.raises(AttributeError):
        getattr(r, attr)
Пример #11
0
def test_cannot_construct_from_dict_with_non_fields(attr, nonattr):
    assume(attr != nonattr)
    R = make_record('Rec', [attr])
    with pytest.raises(KeyError):
        R({nonattr: 3})
Пример #12
0
def test_can_construct_from_dict(attrs):
    make_record('Rec', attrs)({a: 42 for a in attrs})