diff --git a/.travis.yml b/.travis.yml index 49c047f..71f5959 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,16 @@ python: - '3.3' - '2.7' - '2.6' +env: +- DATABASE_URL=sqlite:///:memory: +- DATABASE_URL=postgresql+psycopg2://postgres@127.0.0.1/dataset +- DATABASE_URL=mysql+pymysql://travis@127.0.0.1/dataset?charset=utf8 install: -- pip install flake8 +- pip install flake8 psycopg2 pymysql +before_script: +- sh -c "if [ '$DATABASE_URL' = 'postgresql+psycopg2://postgres@127.0.0.1/dataset' ]; then psql -c 'DROP DATABASE IF EXISTS dataset;' -U postgres; fi" +- sh -c "if [ '$DATABASE_URL' = 'postgresql+psycopg2://postgres@127.0.0.1/dataset' ]; then psql -c 'create database dataset;' -U postgres; fi" +- sh -c "if [ '$DATABASE_URL' = 'mysql+pymysql://travis@127.0.0.1/dataset?charset=utf8' ]; then mysql -e 'create database IF NOT EXISTS dataset DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;'; fi" script: - flake8 --ignore=E501,E123,E124,E126,E127,E128 dataset test - python setup.py test diff --git a/test/test_persistence.py b/test/test_persistence.py index ca52c03..f0792bb 100644 --- a/test/test_persistence.py +++ b/test/test_persistence.py @@ -13,20 +13,12 @@ from .sample_data import TEST_DATA, TEST_CITY_1 class DatabaseTestCase(unittest.TestCase): def setUp(self): - self.old_db_url = os.environ.get('DATABASE_URL') - os.environ['DATABASE_URL'] = 'sqlite:///:memory:' - self.db = connect('sqlite:///:memory:') + os.environ.setdefault('DATABASE_URL', 'sqlite:///:memory:') + self.db = connect(os.environ['DATABASE_URL']) self.tbl = self.db['weather'] for row in TEST_DATA: self.tbl.insert(row) - def tearDown(self): - # ensure env variable was unset - if self.old_db_url is None: - del os.environ['DATABASE_URL'] - else: - os.environ['DATABASE_URL'] = self.old_db_url - def test_valid_database_url(self): assert self.db.url, os.environ['DATABASE_URL']