mysteriumnetwork / api

Licence: other
No description, website, or topics provided.

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
shell
77523 projects
Mako
254 projects
Dockerfile
14818 projects

Mysterium Network API

Build Status pyVersion36

API for Node & Client

Setup

  • Start docker containers in background:
docker-compose up -d --build
  • Wait ~10s for database to setup.

  • Run database migrations:

docker-compose exec api bin/db-upgrade

Development

Pre-requisites

Follow Google cloud guide to setup python development environment.

Testing

Install the requirements using pip

$ pip install -r requirements.txt

To execute tests in docker container:

  • Run:
tests/run_tests

(Optional)

After that test database will be kept running in the background, so you can execute. To do that, you need to do additional steps:

  • Ensure that python 3.6+ is installed globally (python --version)
  • Add ENV variables:
DB_HOST=localhost:33062
DB_NAME=myst_api
DB_USER=myst_api
DB_PASSWORD=myst_api
  • Run tests from IDE or bash:
bin/test

Linter

To run linter:

bin/lint

Database schema changes

To change database schema:

  • Change schema in models.py (i.e. add new table, column or change existing schema)
  • Run bin/db-migrate to create migration script
  • Check created script manually to ensure it is correct. It sometimes fail, so you might need to modify it.
  • Run bin/db-upgrade to apply migration

That's it! As a bonus point, you can try running bin/db-migrate again. It should not create a new migration file - if it does, that means previous migration is incorrect and should be fixed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].