This is the source code of My Message in a Bottle Blacklist microservice, project of Advanced Software Engineering course of the MSc in Computer Science, University of Pisa.
Mark with bold the person(s) that has developed this microservice.
Name and Surname | |
---|---|
Laura Norato | l.norato@studenti.unipi.it |
Emanuele Albertosi | 20783727@studenti.unipi.it |
Michele Zoncheddu | m.zoncheddu@studenti.unipi.it |
Alessio Russo | a.russo65@studenti.unipi.it |
Matteo Pinna | m.pinna10@studenti.unipi.it |
This microservice implements the Blacklist logic, user-related backend features allowing users to block/unblock another user, and maintains the corresponding database. This microservice was specifically implemented since one of the project requirements was to split the monolith in at least three microservices. Its services are available to the mib-api-gateway through APIs, you can test the APIs by running the microservice and then by accessing the Swagger interface with /ui. In addition, you can find the APIs specifications in the corresponding settings file mib/specifications/.yml.
The available environments are:
- debug
- development
- testing
- production
If you want to run the appliction with development environment, or you are developing the application and you want to have the debug tools, you can start the application locally (without docker-compose
) by executing bash run.sh
.
Note: if you use docker-compose up
you are going to startup a production ready microservice, hence postgres will be used as default database and gunicorn will serve your application.
You can run the entire application by following the instructions on the main repository mib-main. However, if you would like to separately run the User microservice take a look at the steps below.
First, you need to setup create a virtual environment and to install all requirements. Run these commands inside mib-blacklist root:
- Create a virtual environment with
virtualenv venv
. - Activate it with
source venv/bin/activate
orsource venv/scripts/activate
. - Install all requirements needed with
pip install -r requirements.dev.txt
.
You can now run the project running the following commands:
- Run the microservice with
bash run.sh
(environment is automatically set to development).
In order to execute the tests you need, if you haven't already, to install the requirements by following the steps mentioned above. When you're done, you can run the tests:
- Set Flask environment to testing with
export FLASK_ENV=testing
- Run the tests with
pytest
The tests are set to file when the coverage is below 90%.
You can also specify one or more specific test files, in order to run only those specific tests. In case you also want to see the overall coverage of the tests, execute the following command:
python -m pytest --cov=mib
In order to know what are the lines of codes which are not covered by the tests, execute the command:
python -m pytest --cov-report term-missing