Skip to content

PCS-Poli-USP/USPolis-DB-Migration

Repository files navigation

USPolis Back Refactor

Setup

This codebase was written for Python 3.11 and above. Don't forget about a venv as well. The python commands below assume you're pointing to your desired Python3 target.

First we'll need to install our requirements.

python -m pip install -e .

There are other settings in config.py and the included .env file. Assuming you've changed the SALT value, everything should run as-is if there is a local MongoDB instance running (see below for a Docker solution). Any email links will be printed to the console by default.

Run

This sample uses uvicorn as our ASGI web server. This allows us to run our server code in a much more robust and configurable environment than the development server. For example, ASGI servers let you run multiple workers that recycle themselves after a set amount of time or number of requests.

uvicorn server.main:app --reload --port 8080

You're API should now be available at http://localhost:8080

Develop

This codebase is uses mypy for type checking and ruff for everything else. Install both with the dev tag.

python -m pip install -e .[dev]

To run the type checker:

mypy server

To run the linter and code formatter:

ruff check server
ruff format server

Test

The sample app also comes with a test suite to get you started.

Make sure to install the requirements found in the test folder before trying to run the tests.

python -m pip install -e .[test]

The tests need access to a MongoDB store that is emptied at the end of each test. The easiest way to do this is to run a Mongo container in the background.

docker run -d -p 27017:27017 mongo:7

You can also connect to a remote server if you're running tests in a CI/CD pipeline. Just set the TEST_MONGO_URI in the environment. This value defaults to localhost and is only checked in the test suite. It should never use your MONGO_URI.

Then just run the test suite.

pytest

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •