From 8c3c9c3394d60fc48de6c77def638189e5759697 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Tue, 1 Jun 2021 21:04:35 +0300 Subject: [PATCH] Update README.md --- test_runner/Pipfile | 1 + test_runner/Pipfile.lock | 33 ++++++++++++++++++++++++++++++++- test_runner/README.md | 18 ++++++++++++++++-- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/test_runner/Pipfile b/test_runner/Pipfile index 39831c1dbb..7f33320c13 100644 --- a/test_runner/Pipfile +++ b/test_runner/Pipfile @@ -9,6 +9,7 @@ psycopg2 = "*" [dev-packages] yapf = "*" +flake8 = "*" [requires] # we need at least 3.6, but pipenv doesn't allow to say this directly diff --git a/test_runner/Pipfile.lock b/test_runner/Pipfile.lock index e1a6b5918a..3ecb23fbef 100644 --- a/test_runner/Pipfile.lock +++ b/test_runner/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "f3f49fa53282f9ee1e7c7b1ea5f928a25ad716fc4212c12aa803450938613016" + "sha256": "c0de1f00310b584a272dda58386939d53098e49d14db518804a9e56269bfec1d" }, "pipfile-spec": 6, "requires": { @@ -102,6 +102,37 @@ } }, "develop": { + "flake8": { + "hashes": [ + "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b", + "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907" + ], + "index": "pypi", + "version": "==3.9.2" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "pycodestyle": { + "hashes": [ + "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068", + "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.7.0" + }, + "pyflakes": { + "hashes": [ + "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3", + "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.3.1" + }, "yapf": { "hashes": [ "sha256:408fb9a2b254c302f49db83c59f9aa0b4b0fd0ec25be3a5c51181327922ff63d", diff --git a/test_runner/README.md b/test_runner/README.md index 48f4644984..8309900271 100644 --- a/test_runner/README.md +++ b/test_runner/README.md @@ -69,7 +69,8 @@ The tests make heavy use of pytest fixtures. You can read about how they work he Essentially, this means that each time you see a fixture named as an input parameter, the function with that name will be run and passed as a parameter to the function. So this code: -``` + +```python def test_something(zenith_cli, pg_bin): pass ``` @@ -77,9 +78,11 @@ def test_something(zenith_cli, pg_bin): ... will run the fixtures called `zenith_cli` and `pg_bin` and deliver those results to the test function. Fixtures can't be imported using the normal python syntax. Instead, use this: -``` + +```python pytest_plugins = ("fixtures.something") ``` + That will make all the fixtures in the `fixtures/something.py` file available. Anything that's likely to be used in multiple tests should be built into a fixture. @@ -87,3 +90,14 @@ Anything that's likely to be used in multiple tests should be built into a fixtu Note that fixtures can clean up after themselves if they use the `yield` syntax. Cleanup will happen even if the test fails (raises an unhandled exception). Python destructors, e.g. `__del__()` aren't recommended for cleanup. + + +### Code quality + +Before submitting a patch, please consider: + +* Writing a couple of docstrings to clarify the reasoning behind a new test. +* Running `flake8` (or a linter of your choice, e.g. `pycodestyle`) and fixing possible defects, if any. +* Formatting the code with `yapf -r -i .` (TODO: implement an opt-in pre-commit hook for that). + +The tools can be installed with `pipenv install --dev`.