#!/bin/sh

# Simple test that we can use a memory database

set -e

WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR

cat << EOF > testdb.py
import sys

from sqlobject import SQLObject, connectionForURI, IntCol, sqlhub, SQLObjectNotFound


class TestCol(SQLObject):

    number = IntCol()


def run():
    sqlhub.processConnection = connectionForURI('sqlite:///:memory:')

    TestCol.createTable()

    entry1 = TestCol(number=1)
    entry2 = TestCol(number=2)
    entry3 = TestCol(number=3)

    # Check we have the right number of entries
    if TestCol.select().count() != 3:
        sys.exit(1)

    # check we can select by number
    entry = TestCol.selectBy(number=1).getOne()
    if entry != entry1:
        return False

    # Check select fails correctly
    try:
        TestCol.selectBy(number=4).getOne()
    except SQLObjectNotFound:
       return True
    return False

if __name__ == "__main__":
   if not run():
       sys.exit(1)
EOF

python testdb.py
python3 testdb.py
