def test_uses_cache(self, query, lektor_pad, query_expr): record = lektor_pad.root id_ = serialize_query(query) query_results = resolve_virtual_path(record, [id_]) assert query_results._id == id_ # NB: the following is not always true (only noticed in py35, depending # on PYTHONHASHSEED) # # assert serialize_query(query_results.query) == id_ assert resolve_virtual_path(record, [id_]) is query_results # try with new pad other_pad = lektor_pad.env.new_pad() other_query_results = resolve_virtual_path(other_pad.root, [id_]) assert other_query_results is not query_results assert_queries_equal(query, other_query_results.query)
def test_deserialize_query(self, query, query_expr, lektor_env): new_pad = lektor_env.new_pad() query_clone = deserialize_query(new_pad, serialize_query(query)) assert [record.path for record in query_clone] \ == [record.path for record in query]
def test_serialize_query_is_deterministic(query, query_expr, lektor_env): serialized = serialize_query(query) for n in range(10): new_pad = lektor_env.new_pad() q2 = deserialize_query(new_pad, serialized) assert serialize_query(q2) == serialized
def test_serialize_query(query, query_expr, lektor_env): serialized = serialize_query(query) assert isinstance(serialized, str) assert len(serialized) < 1024 print("query {!r} => serialized to length {:d}" .format(query_expr, len(serialized)))
def test_extra_pieces(self, query, lektor_pad): record = lektor_pad.root id_ = serialize_query(query) assert resolve_virtual_path(record, [id_, 'extra']) is None
def test_only_resolves_on_root(self, query, lektor_pad): record = lektor_pad.get('/about') id_ = serialize_query(query) assert resolve_virtual_path(record, [id_]) is None
def test_resolves(self, query, lektor_pad): record = lektor_pad.root id_ = serialize_query(query) query_results = resolve_virtual_path(record, [id_]) assert_queries_equal(query, query_results.query)