From f84448ffea09339903e2b2273b13fb8b2fede2e9 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 27 Sep 2012 03:06:40 -0400 Subject: [PATCH] - add a runner module - make "default" the default dialect. --- lib/sqlalchemy/testing/plugin/config.py | 2 +- lib/sqlalchemy/testing/plugin/noseplugin.py | 2 +- lib/sqlalchemy/testing/runner.py | 31 +++++++++++++++++++++ setup.cfg | 1 + 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 lib/sqlalchemy/testing/runner.py diff --git a/lib/sqlalchemy/testing/plugin/config.py b/lib/sqlalchemy/testing/plugin/config.py index a29c515a18..785b69acea 100644 --- a/lib/sqlalchemy/testing/plugin/config.py +++ b/lib/sqlalchemy/testing/plugin/config.py @@ -59,7 +59,7 @@ pre_configure.append(_monkeypatch_cdecimal) def _engine_uri(options, file_config): global db_label, db_url - db_label = 'sqlite' + if options.dburi: db_url = options.dburi db_label = db_url[:db_url.index(':')] diff --git a/lib/sqlalchemy/testing/plugin/noseplugin.py b/lib/sqlalchemy/testing/plugin/noseplugin.py index 8411748345..31430c8d07 100644 --- a/lib/sqlalchemy/testing/plugin/noseplugin.py +++ b/lib/sqlalchemy/testing/plugin/noseplugin.py @@ -49,7 +49,7 @@ class NoseSQLAlchemy(Plugin): help="turn on debug logging for (multiple OK)") opt("--require", action="append", dest="require", default=[], help="require a particular driver or module version (multiple OK)") - opt("--db", action="store", dest="db", default="sqlite", + opt("--db", action="store", dest="db", default="default", help="Use prefab database uri") opt('--dbs', action='callback', callback=_list_dbs, help="List available prefab dbs") diff --git a/lib/sqlalchemy/testing/runner.py b/lib/sqlalchemy/testing/runner.py new file mode 100644 index 0000000000..0a82a4744b --- /dev/null +++ b/lib/sqlalchemy/testing/runner.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +""" +Nose test runner module. + +This script is a front-end to "nosetests" which +installs SQLAlchemy's testing plugin into the local environment. + +The script is intended to be used by third-party dialects and extensions +that run within SQLAlchemy's testing framework. The runner can +be invoked via:: + + python -m sqlalchemy.testing.runner + +The script is then essentially the same as the "nosetests" script, including +all of the usual Nose options. The test environment requires that a +setup.cfg is locally present including various required options. + +Note that when using this runner, Nose's "coverage" plugin will not be +able to provide coverage for SQLAlchemy itself, since SQLAlchemy is +imported into sys.modules before coverage is started. The special +script sqla_nose.py is provided as a top-level script which loads the +plugin in a special (somewhat hacky) way so that coverage against +SQLAlchemy itself is possible. + +""" + +from sqlalchemy.testing.plugin.noseplugin import NoseSQLAlchemy + +import nose + +nose.main(addplugins=[NoseSQLAlchemy()]) diff --git a/setup.cfg b/setup.cfg index ef1b8dbcc0..f93d4a7b22 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,6 +12,7 @@ requirement_cls=test.requirements:DefaultRequirements profile_file=test/profiles.txt [db] +default=sqlite:///:memory: sqlite=sqlite:///:memory: sqlite_file=sqlite:///querytest.db postgresql=postgresql://scott:tiger@127.0.0.1:5432/test -- 2.47.3