def test_title_prefix(self): conn = connections.MigrationMiddleware(MockConnection()) def add(doc): conn.conn.docs[doc['key']] = doc def get(key): json = conn.request("openlibrary.org", "/get", data={"key": key}) return simplejson.loads(json) add({ "key": "/books/OL1M", "type": { "key": "/type/edition" }, "title_prefix": "The", "title": "Book" }) assert get("/books/OL1M") == { "key": "/books/OL1M", "type": { "key": "/type/edition" }, "title": "The Book" } add({ "key": "/books/OL2M", "type": { "key": "/type/edition" }, "title_prefix": "The ", "title": "Book" }) assert get("/books/OL2M") == { "key": "/books/OL2M", "type": { "key": "/type/edition" }, "title": "The Book" } add({ "key": "/books/OL3M", "type": { "key": "/type/edition" }, "title_prefix": "The Book", }) assert get("/books/OL3M") == { "key": "/books/OL3M", "type": { "key": "/type/edition" }, "title": "The Book" }
def test_authors(self): conn = connections.MigrationMiddleware(MockConnection()) def add(doc): conn.conn.docs[doc['key']] = doc def get(key): json_data = conn.request("openlibrary.org", "/get", data={"key": key}) return json.loads(json_data) def get_many(keys): data = dict(keys=json.dumps(keys)) json_data = conn.request("openlibrary.org", "/get_many", data=data) return json.loads(json_data) add({ "key": "/works/OL1W", "type": { "key": "/type/work" }, "authors": [{ "type": { "key": "/type/author_role" } }], }) assert get("/works/OL1W") == { "key": "/works/OL1W", "type": { "key": "/type/work" }, "authors": [], } assert get_many(["/works/OL1W"]) == { "/works/OL1W": { "key": "/works/OL1W", "type": { "key": "/type/work" }, "authors": [], } } OL2W = { "key": "/works/OL2W", "type": { "key": "/type/work" }, "authors": [{ "type": { "key": "/type/author_role" }, "author": { "key": "/authors/OL2A" }, }], } add(OL2W) assert get("/works/OL2W") == OL2W