diff --git a/.travis.yml b/.travis.yml index 45cc69a0..c2c715c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,13 +30,15 @@ matrix: env: TOXENV=py35 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest?charset=utf8mb4' - python: "3.6" env: TOXENV=py36 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest?charset=utf8mb4' + - python: "3.7" + env: TOXENV=py37 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest?charset=utf8mb4' - python: "2.7" env: TOXENV=acceptance27 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest27?charset=utf8mb4' - - python: "3.6" - env: TOXENV=acceptance36 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest36?charset=utf8mb4' - - python: "3.6" + - python: "3.7" + env: TOXENV=acceptance37 DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/budgettest36?charset=utf8mb4' + - python: "3.7" env: TOXENV=migrations MYSQL_USER='root' MYSQL_HOST='127.0.0.1' MYSQL_DBNAME_LEFT='alembicLeft' MYSQL_DBNAME_RIGHT='alembicRight' DB_CONNSTRING='mysql+pymysql://root@127.0.0.1:3306/alembicLeft?charset=utf8mb4' - - python: "3.6" + - python: "3.7" env: TOXENV=docs install: diff --git a/CHANGES.rst b/CHANGES.rst index fd708138..da99e429 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,7 @@ Changelog Unreleased Changes ------------------ +* Add testing for Python 3.7, and make 3.7 the default for tests and tox environments. * `Issue #198 `_ - Fix broken method of retrieving current US Prime Rate. Previously we used marketwatch.com for this but they've introduced javascript-based bot protection on their site (which is ironic since we were reading a value from the page's ``meta`` tags, which are specifically intended to be read by machines). Switch to using wsj.com instead and (ugh) parsing a HTML table. This *will* break when the format of the table changes. As previously, we cache this value in the DB for 48 hours in order to be a good citizen. * `Issue #197 `_ - Add notification for case where balance of all budget-funding accounts is *more* than sum of standing budgets, current payperiod remaining, and unreconciled. This is the opposite of the similar notification that already exists, intended to detect if there is money in accounts not accounted for in the budgets. * `Issue #196 `_ - Don't include inactive budgets in Budget select elements on Transaction Modal form, unless it's an existing Transaction using that budget. diff --git a/README.rst b/README.rst index 6848f11b..1c67397c 100644 --- a/README.rst +++ b/README.rst @@ -82,7 +82,7 @@ Requirements Using the dockerized version will eliminate all of these dependencies aside from MySQL (which you can run in another container) and Vault (if you choose to take advantage of the OFX downloading), which you can also run in another container. -* Python 2.7 or 3.4+ (currently tested with 2.7, 3.4, 3.5, 3.6 and developed with 3.6) +* Python 2.7 or 3.4+ (currently tested with 2.7, 3.4, 3.5, 3.6, 3.7 and developed with 3.7) * Python `VirtualEnv `_ and ``pip`` (recommended installation method; your OS/distribution should have packages for these) * MySQL, or a compatible database (e.g. `MariaDB `_). biweeklybudget uses `SQLAlchemy `_ for database abstraction, but currently specifies some MySQL-specific options, and is only tested with MySQL. * To use the automated OFX transaction downloading functionality: diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index e23dc54d..3d747162 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -12,7 +12,7 @@ Requirements Using the dockerized version will eliminate all of these dependencies aside from MySQL and Vault (the latter only if you choose to take advantage of the OFX downloading), both of which you can also run in containers. -* Python 2.7 or 3.4+ (currently tested with 2.7, 3.4, 3.5, 3.6 and developed with 3.6) +* Python 2.7 or 3.4+ (currently tested with 2.7, 3.4, 3.5, 3.6, 3.7 and developed with 3.7) * Python `VirtualEnv `_ and ``pip`` (recommended installation method; your OS/distribution should have packages for these) * MySQL, or a compatible database (e.g. `MariaDB `_ ). biweeklybudget uses `SQLAlchemy `_ for database abstraction, but currently specifies some MySQL-specific options, and is only tested with MySQL. * To use the automated OFX transaction downloading functionality: @@ -27,7 +27,7 @@ It's recommended that you install into a virtual environment (virtualenv / venv). See the `virtualenv usage documentation `_ for information on how to create a venv. -This app is developed against Python 3.6, but should work back to 2.7. It does +This app is developed against Python 3.7, but should work back to 2.7. It does not support Python3 < 3.4. .. code-block:: bash diff --git a/setup.py b/setup.py index ce6f387b..f677dc90 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Topic :: Office/Business :: Financial' ] diff --git a/tox.ini b/tox.ini index 1431ca96..96737b2b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py27,py34,py35,py36,docs,jsdoc,screenshots,acceptance27,acceptance36,docker,migrations +envlist = py27,py34,py35,py36,py37,docs,jsdoc,screenshots,acceptance27,acceptance37,docker,migrations [testenv] deps = @@ -54,7 +54,7 @@ deps = pygments sphinx==1.5.5 sphinx_rtd_theme -basepython = python3.6 +basepython = python3.7 commands = python --version virtualenv --version @@ -80,7 +80,7 @@ deps = sphinx sphinx_rtd_theme sphinx-js==1.5.2 -basepython = python3.6 +basepython = python3.7 commands = python --version virtualenv --version @@ -96,7 +96,7 @@ deps = Pillow==4.1.1 passenv = {[testenv]passenv} setenv = {[testenv]setenv} -basepython = python3.6 +basepython = python3.7 sitepackages = False whitelist_externals = env test commands = @@ -113,7 +113,7 @@ deps = docker==2.2.1 passenv = {[testenv]passenv} DOCKER_TEST_TAG DOCKER_BUILD_VER setenv = {[testenv]setenv} -basepython = python3.6 +basepython = python3.7 sitepackages = False whitelist_externals = env test commands = @@ -152,11 +152,11 @@ commands = pip freeze py.test -rxs -vv --durations=50 --durations-file=results/test_durations.json --driver Chrome --html=results/acceptance.html -m "acceptance" biweeklybudget -[testenv:acceptance36] +[testenv:acceptance37] deps = {[testenv:acceptance27]deps} passenv = {[testenv]passenv} setenv = {[testenv]setenv} -basepython = python3.6 +basepython = python3.7 sitepackages = False whitelist_externals = env test commands = {[testenv:acceptance27]commands} @@ -175,7 +175,7 @@ deps = retrying passenv=CI TRAVIS* CONTINUOUS_INTEGRATION NO_REFRESH_DB DB_CONNSTRING NO_CLASS_REFRESH_DB MYSQL_* setenv = {[testenv]setenv} -basepython = python3.6 +basepython = python3.7 sitepackages = False whitelist_externals = env test commands =