def METHOD_NAME(self, classes):
    Table1 = self.classes.Table1
    sess = fixture_session()
    # create objects in a linked list
    count = 1
    obj = None
    for c in classes:
        if isinstance(c, type):
            newobj = c("item %d" % count)
            count += 1
        else:
            newobj = c
        if obj is not None:
            obj.nxt = newobj
        else:
            t = newobj
        obj = newobj
    # save to DB
    sess.add(t)
    sess.flush()
    # string version of the saved list
    assertlist = []
    node = t
    while node:
        assertlist.append(node)
        n = node.nxt
        if n is not None:
            assert n.prev is node
        node = n
    original = repr(assertlist)
    # clear and query forwards
    sess.expunge_all()
    node = (
        sess.query(Table1)
        .order_by(Table1.id)
        .filter(Table1.id == t.id)
        .first()
    )
    assertlist = []
    while node:
        assertlist.append(node)
        n = node.nxt
        if n is not None:
            assert n.prev is node
        node = n
    forwards = repr(assertlist)
    # clear and query backwards
    sess.expunge_all()
    node = (
        sess.query(Table1)
        .order_by(Table1.id)
        .filter(Table1.id == obj.id)
        .first()
    )
    assertlist = []
    while node:
        assertlist.insert(0, node)
        n = node.prev
        if n is not None:
            assert n.nxt is node
        node = n
    backwards = repr(assertlist)
    # everything should match !
    assert original == forwards == backwards