mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
* PostgreSQL driver and general drivers cleanup Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Make tests pass Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Add black --target-version flag in make.bat Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Rewrite postgres driver Most of the logic is now in PL/pgSQL. This completely avoids the use of Python f-strings to format identifiers into queries. Although an SQL-injection attack would have been impossible anyway (only the owner would have ever had the ability to do that), using PostgreSQL's format() is more reliable for unusual identifiers. Performance-wise, I'm not sure whether this is an improvement, but I highly doubt that it's worse. Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Reformat Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix PostgresDriver.delete_all_data() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Clean up PL/pgSQL code Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * More PL/pgSQL cleanup Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * PL/pgSQL function optimisations Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Ensure compatibility with PostgreSQL 10 and below Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * More/better docstrings for PG functions Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix typo in docstring Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Return correct value on toggle() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Use composite type for PG function parameters Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix JSON driver's Config.clear_all() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Correct description for Mongo tox recipe Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix linting errors Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Update dep specification after merging bumpdeps Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Add towncrier entries Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Update from merge Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Mention [postgres] extra in install docs Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Support more connection options and use better defaults Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Actually pass PG env vars in tox Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Replace event trigger with manual DELETE queries Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
88 lines
2.2 KiB
INI
88 lines
2.2 KiB
INI
# tox (https://tox.readthedocs.io/) is a tool for running tests
|
|
# in multiple virtualenvs. This configuration file will run the
|
|
# test suite on all supported python versions. To use it, "pip install tox"
|
|
# and then run "tox" from this directory.
|
|
|
|
[tox]
|
|
envlist =
|
|
py37
|
|
docs
|
|
style
|
|
skip_missing_interpreters = True
|
|
|
|
[testenv]
|
|
description = Run tests and basic automatic issue checking.
|
|
whitelist_externals =
|
|
pytest
|
|
pylint
|
|
extras = voice, test
|
|
commands =
|
|
python -m compileall ./redbot/cogs
|
|
pytest
|
|
pylint ./redbot
|
|
|
|
[testenv:postgres]
|
|
description = Run pytest with PostgreSQL backend
|
|
whitelist_externals =
|
|
pytest
|
|
extras = voice, test, postgres
|
|
setenv =
|
|
RED_STORAGE_TYPE=postgres
|
|
passenv =
|
|
# Use the following env vars for connection options, or other default options described here:
|
|
# https://magicstack.github.io/asyncpg/current/index.html#asyncpg.connection.connect
|
|
PGHOST
|
|
PGPORT
|
|
PGUSER
|
|
PGPASSWORD
|
|
PGDATABASE
|
|
commands =
|
|
pytest
|
|
|
|
[testenv:mongo]
|
|
description = Run pytest with MongoDB backend
|
|
whitelist_externals =
|
|
pytest
|
|
extras = voice, test, mongo
|
|
setenv =
|
|
RED_STORAGE_TYPE=mongo
|
|
passenv =
|
|
RED_MONGO_URI
|
|
RED_MONGO_HOST
|
|
RED_MONGO_PORT
|
|
RED_MONGO_USER
|
|
RED_MONGO_PASSWORD
|
|
RED_MONGO_DATABASE
|
|
commands =
|
|
pytest
|
|
|
|
[testenv:docs]
|
|
description = Attempt to build docs with sphinx-build
|
|
whitelist_externals =
|
|
sphinx-build
|
|
make
|
|
setenv =
|
|
# This is just for Windows
|
|
# Prioritise make.bat over any make.exe which might be on PATH
|
|
PATHEXT=.BAT;.EXE
|
|
basepython = python3.7
|
|
extras = docs, mongo
|
|
commands =
|
|
sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out/html" -W -bhtml
|
|
sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out/linkcheck" -W -blinkcheck
|
|
sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out/doctest" -W -bdoctest
|
|
make checkchangelog
|
|
|
|
[testenv:style]
|
|
description = Stylecheck the code with black to see if anything needs changes.
|
|
whitelist_externals =
|
|
make
|
|
setenv =
|
|
# This is just for Windows
|
|
# Prioritise make.bat over any make.exe which might be on PATH
|
|
PATHEXT=.BAT;.EXE
|
|
basepython = python3.7
|
|
extras = style
|
|
commands =
|
|
make stylecheck
|