aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Add Pipfile script and docs for building dev venv imageGravatar MarkKoz2019-08-04-1/+28
| | | | | | | | The builddev script will build just the dev venv image. The testb script will build the dev venv image, clean up dangling images, and then run tests. * Give the coverage commands their own header in the README
* Use IDs for user and group in nsjpy aliasGravatar MarkKoz2019-08-04-2/+2
| | | | Reflects the changes in 7a7eca52019bf21d21cdffcf03cd9c5eacd8363b
* Rewrite README and clean up Pipfile scriptsGravatar MarkKoz2019-08-04-68/+98
| | | | | | * Make the report script do the normal coverage report instead of HTML * Remove Docker image push scripts * Add image build script for the venv image
* Pin pydocstyle to unbreak flake8-docstringsGravatar sco12019-07-10-12/+14
| | | Relock
* Merge pull request #31 from python-discord/testingGravatar Chris Goes2019-06-29-191/+364
|\ | | | | NsJail Tests
| * Use write_text() and fix codec namesGravatar MarkKoz2019-06-29-5/+3
| |
| * Test that the file system is mounted as read onlyGravatar MarkKoz2019-06-27-0/+10
| |
| * Disable swap memoryGravatar MarkKoz2019-06-27-3/+7
| |
| * Fix error when setting swap limit on a system that has it disabledGravatar MarkKoz2019-06-27-3/+9
| | | | | | | | | | The error happens when either CONFIG_MEMCG_SWAP or CONFIG_MEMCG_SWAP_ENABLED is disabled in the kernel.
| * Disable memory swapping and add a memory limit testGravatar MarkKoz2019-06-26-8/+34
| | | | | | | | | | | | | | | | | | If memory swapping was enabled locally, the memory test would fail. Explicitly disabling swapping also removes reliance on the assumption that it'll be disabled in production. * Add a constant for the maximum memory * Simplify the timeout test; it'd otherwise first run out of memory now
| * Don't generate an HTML report because Azure already does itGravatar MarkKoz2019-06-22-2/+1
| | | | | | | | See microsoft/azure-pipelines-tasks#9704
| * Remove -it options from docker execGravatar MarkKoz2019-06-22-3/+3
| |
| * Add missing steps keyGravatar MarkKoz2019-06-22-0/+1
| |
| * Run linting & tests in a containerGravatar MarkKoz2019-06-22-14/+28
| |
| * Fix syntax errors in azure-pipelines.ymlGravatar MarkKoz2019-06-22-6/+7
| | | | | | | | | | * Add succeededOrFailed condition to code coverage publish task * Rename test publish task for unit tests
| * Add CI steps for running & publishing testsGravatar MarkKoz2019-06-22-17/+49
| |
| * Fix venv being included in coverage when testing in a containerGravatar MarkKoz2019-06-22-4/+7
| | | | | | | | * Exclude DEBUG checks from coverage reports
| * Add a NsJail log parser testGravatar MarkKoz2019-06-22-3/+33
| | | | | | | | | | * Add support for debug level to log regex * Change type annotation of log_parse to Iterable
| * Rewrite NsJail testsGravatar MarkKoz2019-06-22-58/+80
| | | | | | | | | | | | * Fix SIGSEGV test * Add embedded null byte test * Return None for stderr when there's a ValueError
| * Capture NsJail logs from stdout if NsJail fails to parse cmd argsGravatar MarkKoz2019-06-22-3/+9
| | | | | | | | Fixes #30
| * Use IDs for user and group for consistency across distrosGravatar MarkKoz2019-06-22-2/+2
| |
| * Fix coverage not finding sourcesGravatar MarkKoz2019-06-22-8/+17
| | | | | | | | | | | | * Mount volume to the same path as the source directory on the host * Keep the container up in the background so it doesn't have to be restarted or the ownership fix
| * Fix ownership of coverage fileGravatar MarkKoz2019-06-22-1/+10
| | | | | | | | | | | | When coverage runs in a container, it is ran under root so the resulting coverage file is owned by root. chown is used to change ownership to be the same as the folder it is in.
| * Use dev.sh script for running tests and coverageGravatar MarkKoz2019-06-22-94/+20
| | | | | | | | * Use unittest and directly use coverage.py instead of pytest
| * Create shell script for building a dev image and running a shellGravatar MarkKoz2019-06-22-23/+46
| | | | | | | | * Put scripts in a new scripts folder
| * Add NsJail alias and switch to ashGravatar MarkKoz2019-06-22-1/+28
| |
| * Add support for development to Docker imagesGravatar MarkKoz2019-06-22-7/+34
| | | | | | | | | | | | | | * Venv image can sync dev dependencies * Copy tests to image * Add a Pipenv script for running a development shell in a container * Add Pipenv scripts for building dev images
* | Merge pull request #29 from python-discord/api-adjustmentsGravatar Leon Sandøy2019-06-22-22/+29
|\| | | | | API Adjustments
| * Use a custom Gunicorn access log formatGravatar MarkKoz2019-06-15-4/+18
| | | | | | | | | | | | | | | | The handler now shares formats with the rest of the handlers. The message is formatted to show the request method, URL + query, response code, response size in bytes, and the request time in seconds. * Use the default ISO 8601 date format for all handlers
| * Use system site instead of relying on virtual environment activationGravatar MarkKoz2019-06-15-14/+4
| | | | | | | | | | | | | | * Remove -S option from Python to re-enable importing of site module * Add environment variable NSJAIL_PATH * Remove environment variables that were passed to NsJail subprocess * Add type annotations to NsJail.__init__()
| * Merge stdout and stderrGravatar MarkKoz2019-06-15-5/+8
|/ | | | | | Removes the need for redirecting stderr using contextlib in the input. Furthermore, it captures errors which don't directly come from the input, such as SyntaxErrors.
* Merge pull request #24 from python-discord/refactor/nsjailGravatar Leon Sandøy2019-06-09-148/+254
|\ | | | | Improve NsJail
| * Respond to eval with stdout, stderr, and the return codeGravatar MarkKoz2019-06-05-32/+37
| | | | | | | | | | | | | | | | | | The previous implementation limited the client's flexibility in presenting the results of the process. A process can write to both stdout and stderr and do so even when the return code is not 0 or 1. * Return a CompletedProcess from NsJail * Don't check the return code; this should be done client-side now
| * Revert "Add basic logger for responses"Gravatar MarkKoz2019-06-05-16/+1
| | | | | | | | | | Gunicorn's access logger makes the middleware redundant. This reverts commit c1c854e0ad4deb5c4fa8eb2a35b43a042f15255c.
| * Add logging for NsJailGravatar MarkKoz2019-06-05-28/+90
| | | | | | | | | | | | | | | | | | | | | | NsJail's is configured to log to a temporary file rather than stderr. The contents of the file are parsed using regex after the process exits. When not debugging, some blacklisted messages and most info-level messages are skipped. * Add a snekbox logger * Log the Python code being executed if debugging * Use nested single quotes in a test to fix a linter error
| * Merge remote-tracking branch 'origin/revitalisation' into refactor/nsjailGravatar MarkKoz2019-06-05-136/+257
| |\ | |/ |/|
* | Merge pull request #23 from python-discord/falconGravatar Leon Sandøy2019-06-02-163/+278
|\ \ | | | | | | Replace Flask with Falcon
| * | Revise docstrings for SnekAPI & EvalResourceGravatar MarkKoz2019-05-29-9/+9
| | |
| * | Add basic logger for responsesGravatar MarkKoz2019-05-29-1/+16
| | |
| * | Document the APIGravatar MarkKoz2019-05-29-0/+50
| | |
| * | Move SnekAPI import back to top of moduleGravatar MarkKoz2019-05-29-1/+2
| | |
| * | Enable branch coverage & disable app.py coverageGravatar MarkKoz2019-05-29-9/+5
| | |
| * | Add API tests for eval resourceGravatar MarkKoz2019-05-29-1/+65
| | |
| * | Separate application instance from definitionGravatar MarkKoz2019-05-29-6/+16
| | | | | | | | | | | | | | | This way, it is easier for tests to use the application because they can instead create their own instances after patching.
| * | Validate request's inputGravatar MarkKoz2019-05-28-2/+46
| | |
| * | Create falcon APIGravatar MarkKoz2019-05-28-59/+36
| | |
| * | Replace flask dependency with falconGravatar MarkKoz2019-05-28-99/+57
|/ /
| * Configure gunicorn loggingGravatar MarkKoz2019-06-04-10/+24
| |
| * Lint testsGravatar MarkKoz2019-05-30-6/+4
| | | | | | | | | | * Ignore D1xx for tests because they shouldn't require docstrings * Update pre-commit-hooks repo to v2.2.3
| * Revert "Run flake8 via pre-commit for the pipenv lint script"Gravatar MarkKoz2019-05-30-7/+1
| | | | | | | | This reverts commit c2416eb672afc80476fe2da1b364af5d018a16b0.