Ejemplo n.º 1
0
def testJoin():
    j = orm.join(s.book | I | s.book_author)
    expected_repr = '''\
<Select [all joinset]
SELECT book.code, book.title, book.score, book_author.code, book_author.author_id FROM book
INNER JOIN book_author
ON book_author.code=book.code>'''
    assert_equal(repr(j), expected_repr)
    scratch = core.ScratchDB('sqlite3:///:memory:', _util.createbook)
    with scratch:
        populate(scratch.conn)
Ejemplo n.º 2
0
        with core.ScratchDB(uri, _util.createbook, autocommit=True) as scratch:
            manager = orm.Manager(scratch.conn)
            manager.insert(s.book('0002', 'book2', 1))
            books = [s.book('0001', 'book1', 1), s.book('0002', 'book2', 1),
                     s.book('0003', 'book3', 1)]
            try:
                s.book._insert.many(scratch.conn, books)
            except:
                pass
            yield check, manager

####################### books schema ##########################

I, O, L, R = orm.joiners

s.book.get_score = orm.join(sql.read(s.book) | I | s.score, 'one', as_=s.score)

s.book.get_authors = orm.join(
    sql.read(s.book) | I | s.book_author | I | s.author, as_=s.author)

s.author.get_books = orm.join(
    sql.read(s.author) | I | s.book_author | I | s.book, as_=s.book)

s.score.get_books = orm.join(sql.read(s.score) | I | s.book, as_=s.book)


def testQuery():
    from sqlplain import sql
    templ = 'SELECT {} FROM book'.format(s.book._columns)
    assert_equal(str(sql.Query(templ, 'all', as_=s.book)),
                 'SELECT code, title, score FROM book')