[tox]
skipsdist = True
usedevelop = True

envlist = py{34,35,36}-dj{111,20}-{sqlite,postgres,mysql,mssql}-{elasticsearch6,elasticsearch5,elasticsearch2,noelasticsearch},

[flake8]
# D100: Missing docstring in public module
# D101: Missing docstring in public class
# D102: Missing docstring in public method
# D103: Missing docstring in public function
# D105: Missing docstring in magic method
# D200: One-line docstring should fit on one line with quotes
# D202: No blank lines allowed after function docstring
# D204: 1 blank line required after docstring
# D205: 1 blank line required between summary line and description
# D209: Multi-line docstring cloasing quotes should be on a separate line
# D400: First line should end with a period
# D401: First line should be in imperative mood
# E303: Too many blank lines
# E501: Line too long
# N805: First argument of a method should be named 'self'
# N806: Variable in function should be lowercase
ignore = D100,D101,D102,D103,D105,D200,D202,D204,D205,D209,D400,D401,E303,E501,N805,N806

[testenv]
install_command = pip install -e ".[testing]" -U {opts} {packages}
commands =
    elasticsearch2: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch2
    elasticsearch5: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch5
    elasticsearch6: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch6
    noelasticsearch: coverage run runtests.py

basepython =
    py34: python3.4
    py35: python3.5
    py36: python3.6

deps =
    django-sendfile==0.3.6
    Embedly

    dj111: Django>=1.11b1,<2.0
    dj111-mssql: django-pyodbc-azure==1.11.0.0
    dj20: Django>=2.0,<2.1
    postgres: psycopg2>=2.6
    mysql: mysqlclient==1.3.6
    elasticsearch2: elasticsearch>=2,<3
    elasticsearch5: elasticsearch>=5,<6
    elasticsearch5: certifi
    elasticsearch6: elasticsearch>=6,<7
    elasticsearch6: certifi

setenv =
    postgres: DATABASE_ENGINE=django.db.backends.postgresql

    mysql: DATABASE_ENGINE=django.db.backends.mysql
    mysql: DATABASE_HOST=localhost
    mysql: DATABASE_USER=root

    # Specific for Appveyor, see:
    # https://www.appveyor.com/docs/services-databases/#sql-server-2016
    mssql: DATABASE_ENGINE=sql_server.pyodbc
    mssql: DATABASE_HOST=(local)\SQL2016
    mssql: DATABASE_NAME=master
    mssql: DATABASE_USER=sa
    mssql: DATABASE_PASS=Password12!

[testenv:flake8]
basepython=python3.4
deps=flake8>=2.2.0
commands=flake8 wagtail
