def test_sparsedict_set_default(): schema = SparseDict.of( Integer.named(u'x').using(default=123), Integer.named(u'y')) el = schema() el.set_default() assert el.value == {}
def test_sparsedict_set_default(): schema = SparseDict.of(Integer.named(u'x').using(default=123), Integer.named(u'y')) el = schema() el.set_default() assert el.value == {}
def test_sparsedict_from_flat(): schema = SparseDict.of(Integer.named(u'x'), Integer.named(u'y')) el = schema.from_flat([]) assert el.items() == [] el = schema.from_flat([(u'x', u'123')]) assert el.value == {u'x': 123} el = schema.from_flat([(u'x', u'123'), (u'z', u'456')]) assert el.value == {u'x': 123}
def test_sparsedict_required_validation(): schema = SparseDict.of(Integer.named(u'x'), Integer.named(u'y').using(optional=True)).\ using(minimum_fields='required') el = schema() assert not el.validate() el = schema({u'y': 456}) assert not el.validate() el = schema({u'x': 123, u'y': 456}) assert el.validate()
def test_sparsedict_required_from_flat(): schema = SparseDict.of(Integer.named(u'x'), Integer.named(u'y').using(optional=True)).\ using(minimum_fields='required') el = schema.from_flat([]) assert el.value == {u'x': None} el = schema.from_flat([(u'x', u'123')]) assert el.value == {u'x': 123} el = schema.from_flat([(u'y', u'456'), (u'z', u'789')]) assert el.value == {u'x': None, u'y': 456}
def test_sparsedict_operations(): schema = SparseDict.of(Integer.named(u'x'), Integer.named(u'y')) el = schema() el[u'x'] = 123 del el[u'x'] assert_raises(KeyError, el.__delitem__, u'x') assert el.setdefault(u'x', 123) == 123 assert el.setdefault(u'x', 456) == 123 assert el.setdefault(u'y', 123) == 123 assert el.setdefault(u'y', 456) == 123 assert schema().is_empty assert not schema().validate() opt_schema = schema.using(optional=True) assert opt_schema().validate()
def test_sparsedict_required_key_mutability(): schema = SparseDict.of(Integer.named(u'x').using(optional=True), Integer.named(u'y')).\ using(minimum_fields='required') el = schema() ok, required, bogus = u'x', u'y', u'z' assert ok not in el assert required in el assert bogus not in el el[ok] = 123 assert el[ok].value == 123 el[required] = 456 assert el[required].value == 456 assert_raises(TypeError, el.__setitem__, bogus, 123) del el[ok] assert ok not in el assert_raises(TypeError, el.__delitem__, required) assert_raises(TypeError, el.__delitem__, bogus) assert el.setdefault(ok, 456) assert el.setdefault(required, 789) assert_raises(TypeError, el.setdefault, bogus, 456) el[ok] = 123 assert el.pop(ok) el[required] = 456 assert_raises(TypeError, el.pop, required) assert_raises(KeyError, el.pop, bogus) assert_raises(NotImplementedError, el.popitem) el.clear() assert el.keys() == [required]
def test_sparsedict_key_mutability(): schema = SparseDict.of(Integer.named(u'x'), Integer.named(u'y')) el = schema() ok, bogus = u'x', u'z' el[ok] = 123 assert el[ok].value == 123 assert_raises(TypeError, el.__setitem__, bogus, 123) del el[ok] assert ok not in el assert_raises(TypeError, el.__delitem__, bogus) assert el.setdefault(ok, 456) assert_raises(TypeError, el.setdefault, bogus, 456) el[ok] = 123 assert el.pop(ok) assert_raises(KeyError, el.pop, bogus) assert_raises(NotImplementedError, el.popitem) el.clear() assert not el