def test_remove_required(self): kcd = util.KeyConstraintDict(valid_keys=("foo", "bar"), required_keys=("foo", )) kcd["foo"] = None assert kcd.missing() == set() del kcd["foo"] assert kcd.missing() == {"foo"}
def test_completeness(self): kcd = util.KeyConstraintDict(valid_keys=("foo", "bar"), required_keys=("foo", )) kcd["foo"] = False for x in kcd: pass assert kcd.missing() == set()
def test_set_twice(self): kcd = util.KeyConstraintDict(valid_keys=("foo", "bar"), required_keys=("foo", )) kcd["foo"] = 1 kcd["foo"] = 2 assert kcd.missing() == set() del kcd["foo"] assert kcd.missing() == {"foo"}
def test_keyconstraintdict_missing(valid, required, feed, missing): kcd = util.KeyConstraintDict(valid_keys=valid, required_keys=required) kcd.update(dict.fromkeys(feed)) assert kcd.missing() == set(missing)
def test_incomplete_iteration(self): kcd = util.KeyConstraintDict(valid_keys=("foo", "bar"), required_keys=("foo", )) with self.assertRaises(util.KeyConstraintDict.MissingKeys): for x in kcd: pass
def test_invalid_2(self): kcd = util.KeyConstraintDict(valid_keys=("foo", "bar"), required_keys=tuple()) with self.assertRaises(KeyError): kcd["invalid"] = True