def test_metadata(self): e = EntryBase(req_()) eq_(e.get_metadata_keys(), []) eq_(e.get_metadata("foo"), None) eq_(e.get_metadata("foo", "bar"), "bar") e.set_metadata("foo", "bar") eq_(e.get_metadata("foo"), "bar")
def test_dictlike(self): e = EntryBase(req_()) e["foo"] = "bar" e["body"] = "entry body" def sortlist(l): l.sort() return l eq_(sortlist(e.keys()), ["body", "foo"]) eq_(e["foo"], "bar") eq_(e.get("foo"), "bar") eq_(e.get("foo", "fickle"), "bar") eq_(e.get_metadata("foo"), "bar") eq_(e.get_metadata("foo", "fickle"), "bar") eq_(e["body"], "entry body", "e[\"body\"]") eq_(e.get("body"), "entry body", "e.get(\"body\")") eq_(e.get_data(), "entry body", "e.getData()") eq_(e.get("missing_key", "default"), "default") eq_(e.get("missing_key"), None) # e.set("faz", "baz") # yield eq_, e.get("faz"), "baz" eq_(e.has_key("foo"), True) eq_(e.has_key("foo2"), False) eq_(e.has_key("body"), True) # FIXME - EntryBase doesn't support "in" operator. # eq_("foo" in e, True) # eq_("foo2" in e, False) # eq_("foo2" not in e, True) # eq_("body" in e, True) e.update({"foo": "bah", "faux": "pearls"}) eq_(e["foo"], "bah") eq_(e["faux"], "pearls") e.update({"body": "new body data"}) eq_(e["body"], "new body data") eq_(e.get_data(), "new body data")