1. diana clarke
  2. sqlalchemy-1418


sqlalchemy-1418 / README.unittests

To run unit tests (assuming unix-style commandline, adjust as needed for windows):

Python 2.4 or greater is required since the unit tests use decorators.

cd into the SQLAlchemy distribution directory.

Set up the PYTHONPATH:

    export PYTHONPATH=./test/

The unittest framework will automatically prepend './lib/' to sys.path.  this forces the local 
version to run, bypassing any setuptools-installed installations (a PYTHONPATH setting, referencing
a local directory of python scripts, does not override setuptools-installed eggs anymore, unfortunately.
refer comments on this to distutils-SIG).

To run all tests:

    python test/alltests.py

Help is available via:

    python test/alltests.py --help

    usage: alltests.py [options] files...
      -h, --help            show this help message and exit
      --dburi=DBURI         database uri (overrides --db)
      --db=DB               prefab database uri (sqlite, sqlite_file, postgres,
    			mysql, oracle, oracle8, mssql)
      --mockpool            use mock pool
      --verbose             full debug echoing
      --log-info=LOG_INFO   turn on info logging for <LOG> (multiple OK)
                            turn on debug logging for <LOG> (multiple OK)
      --quiet               be totally quiet
      --nothreadlocal       dont use thread-local mod
    			engine strategy (plain or threadlocal, defaults to SA

Any unittest module can be run directly from the module file (same commandline options):

    python test/orm/mapper.py

Additionally, to run a speciic test within the module, specify it as ClassName.methodname:

    python test/orm/mapper.py MapperTest.testget

Logging is now available via Python's logging package.  Any area of SQLAlchemy can be logged 
through the unittest interface, such as:

Log mapper configuration, connection pool checkouts, and SQL statement execution:

    python test/orm/unitofwork.py --log-info=sqlalchemy.orm.mapper --log-debug=sqlalchemy.pool --log-info=sqlalchemy.engine