From 939d067791e5547275b33fcd2f7e10af5f559a4d Mon Sep 17 00:00:00 2001 From: ZuluPro Date: Sat, 14 Jan 2017 01:34:28 -0500 Subject: [PATCH] Add postgresql binary funtional test --- .travis.yml | 37 +++++++++++++++++++++++++++++++- dbbackup/db/postgresql.py | 2 +- dbbackup/tests/settings.py | 3 +++ dbbackup/tests/testapp/models.py | 2 +- requirements-docs.txt | 1 + tox.ini | 8 +++++-- 6 files changed, 48 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index a6f2155e..5aa30308 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,11 @@ python: - "3.3" - "3.4" - "3.5" + - "3.6" + - "3.7" - "pypy" - "pypy3" + - "nightly" services: - mysql @@ -23,6 +26,8 @@ env: - DJANGO=1.8 - DJANGO=1.9 - DJANGO=1.10 + - DJANGO=1.11 + - DJANGO=master install: - TOX_ENV=py${TRAVIS_PYTHON_VERSION}-django${DJANGO} @@ -59,6 +64,7 @@ matrix: - DATABASE_URL=sqlite:////tmp/db.sqlite tox -e functional - DATABASE_URL=mysql://travis:@localhost/test tox -e functional - DATABASE_URL=postgres://postgres:@localhost/test tox -e functional + - CONNECTOR=dbbackup.db.postgresql.PgDumpBinaryConnector DATABASE_URL=postgres://postgres:@localhost/test tox -e functional - python: "3.4" env: TOX_ENV=upgrade install: @@ -74,8 +80,16 @@ matrix: exclude: - python: "3.5" env: DJANGO=1.6 + - python: "nightly" + env: DJANGO=1.6 + - python: "3.6" + env: DJANGO=1.6 - python: "3.5" env: DJANGO=1.7 + - python: "3.6" + env: DJANGO=1.7 + - python: "nightly" + env: DJANGO=1.7 - python: "3.2" env: DJANGO=1.9 - python: "3.3" @@ -94,5 +108,26 @@ matrix: env: DJANGO=1.10 - python: "pypy3" env: DJANGO=1.10 + - python: "3.2" + env: DJANGO=1.11 + - python: "3.3" + env: DJANGO=1.11 + - python: "pypy3" + env: DJANGO=1.11 + - python: "2.7" + env: DJANGO=master + - python: "3.2" + env: DJANGO=master + - python: "3.3" + env: DJANGO=master + - python: "pypy" + env: DJANGO=master + - python: "pypy3" + env: DJANGO=master + - python: "nightly" + env: DJANGO=master allow_failures: - - python: pypy3 + - python: "pypy3" + - python: "nightly" + - python: "3.7" + - env: DJANGO=master diff --git a/dbbackup/db/postgresql.py b/dbbackup/db/postgresql.py index f72c4219..fee776d1 100644 --- a/dbbackup/db/postgresql.py +++ b/dbbackup/db/postgresql.py @@ -106,7 +106,7 @@ def _create_dump(self): return stdout def _restore_dump(self, dump): - cmd = '{} {}'.format(self.restore_cmd, self.settings['NAME']) + cmd = '{} --dbname={}'.format(self.restore_cmd, self.settings['NAME']) if self.settings.get('HOST'): cmd += ' --host={}'.format(self.settings['HOST']) if self.settings.get('PORT'): diff --git a/dbbackup/tests/settings.py b/dbbackup/tests/settings.py index 993d8c44..f836d3b0 100644 --- a/dbbackup/tests/settings.py +++ b/dbbackup/tests/settings.py @@ -28,6 +28,9 @@ DATABASE = dj_database_url.config(default='sqlite:///%s' % tempfile.mktemp()) DATABASES = {'default': DATABASE} +if os.environ.get('CONNECTOR'): + CONNECTOR = {'CONNECTOR': os.environ['CONNECTOR']} + DBBACKUP_CONNECTORS = {'default': CONNECTOR} CACHES = { 'default': { diff --git a/dbbackup/tests/testapp/models.py b/dbbackup/tests/testapp/models.py index 970d3abb..171599e8 100644 --- a/dbbackup/tests/testapp/models.py +++ b/dbbackup/tests/testapp/models.py @@ -12,7 +12,7 @@ class CharModel(models.Model): class ForeignKeyModel(models.Model): - field = models.ForeignKey(CharModel) + field = models.ForeignKey(CharModel, on_delete=models.CASCADE) class ManyToManyModel(models.Model): diff --git a/requirements-docs.txt b/requirements-docs.txt index 00b25f3e..b3840a33 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,3 +1,4 @@ +docutils<0.13.1 Sphinx==1.3.1 sphinx-django-command dj-database-url diff --git a/tox.ini b/tox.ini index 61dae643..6c62c98c 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{2.7,3.2,3.3,3.4,3.5,pypy,pypy3}-django{1.6,1.7,1.8,1.9,1.10},lint,docs,functional +envlist = py{2.7,3.2,3.3,3.4,3.5,3.6,pypy,pypy3}-django{1.6,1.7,1.8,1.9,1.10,1.11,master},lint,docs,functional [testenv] passenv = * @@ -9,15 +9,19 @@ basepython = py3.3: python3.3 py3.4: python3.4 py3.5: python3.5 + py3.6: python3.6 pypypy: pypy pypypy3: pypy3 + pynightly: python deps = -rrequirements-tests.txt django1.6: Django>=1.6,<1.7 django1.7: Django>=1.7,<1.8 django1.8: Django>=1.8,<1.9 django1.9: Django>=1.9,<1.10 - djangomaster: Django>=1.9,<1.10 + django1.10: Django>=1.10,<1.11 + django1.11: Django>=1.11,<1.12 + djangomaster: https://github.com/django/django/archive/master.zip commands = {posargs:coverage run runtests.py} [testenv:lint]