Skip to content

Ohjelmistotuotanto-kurssin esimerkkisovellus web-pohjaiselle Python-sovellukselle

License

Notifications You must be signed in to change notification settings

ohjelmistotuotanto-hy/todo-web

Repository files navigation

todo-web

Build

Ohjelmistotuotanto-kurssin esimerkkisovellus web-pohjaiselle Python-sovellukselle. Sovelluksen web-palvelin on toteutettu Flask-kirjaston avulla. Tietokantana on PostgreSQL, jota käytetään SQLAlchemy-kirjaston avulla.

Asennus

  1. Asenna PostgreSQL. Tässä voit hyödyntää esimerkiksi Tietokantasovellus-kurssin ohjetta, tai PostgreSQL:n oman dokumentaation ohjetta.
  2. Asenna riippuvuudet komennolla poetry install
  3. Luo projektin juurihakemistoon tiedosto .env ja kopioi siihen .env.template-tiedoston sisältö. Aseta DATABASE_URL-ympäristömuuttujan arvo siten, että se on muotoa DATABASE_URL=postgresql://.... Kokeile ennen tätä, että yhteyden muodostus onnistuu terminaalissa komennolla psql <url>, jossa <url> on tietokantayhteyden URL
  4. Alusta tietokanta komennolla poetry run python3 src/initialize_database.py
  5. Käynnistä sovellus komennolla poetry run python3 src/run.py

Tietokantaskeeman ylläpitäminen

Tietokannan taulut alustetaan src/initialize_database.py-tiedostossa. Jos haluat tehdä muutoksia tietokantaskeemaan, tee muutokset kyseisessä tiedostossa ja suorita muutosten jälkeen komento poetry run python3 src/initialize_database.py.

Huomaa, että SQL-tietokannan skeemaa ylläpidetään yleensä tietokantamigraatioiden avulla. Tähän sopiva kirjasto on esimerkiksi Alembic.

Testaaminen

Testejä varten kannattaa luoda oma tietokanta, koska testien suorittaminen alustaa tietokannan uudelleen. Ota yhteys tietokantaan psql-komennon avulla ja suorita siellä seuraava komento:

CREATE DATABASE todotest

Korvaa tietokannan nimi haluamallasi nimellä.

Luo seuraavaksi projektin juurihakemistoon tiedosto .env.test ja kopioi siihen .env.template-tiedoston sisältö. Aseta DATABASE_URL-ympäristömuuttujan arvo siten, että yhteys muodostetaan testitietokantaan. Esimerkiksi, jos kehitystietokannan URL on postgresql://localhost/tododev, on testitietokannan URL postgresql://localhost/todotest.

Yksikkötestit

Yksikkötestit suoritetaan pytestin avulla. Testit sijaitsevat src/tests-hakemistossa. Testien suorituksessa käytettävät ympäristömuuttujat ladataan .env.test-tiedostosta pytest.ini-tiedoston konfiguraation mukaisesti. Jokainen testiajo alustaa tietokannan uudelleen src/tests/conftest.py-tiedoston mukaisesti.

Testien suorittaminen onnistuu komennolla poetry run pytest src.

Hyväksymistestit

Hyväksymistestit suoritetaan Robot Frameworkin avulla. Testit sijaitsevat src/tests/robot-hakemistossa.

Käynnistä ensin Flask-palvelin yhdessä terminaali-ikkunassa komennolla poetry run dotenv -f .env.test run -- python3 src/run.py. Tämän jälkeen voit suorittaa hyväksymistestit toisessa terminaali-ikkunassa komennolla poetry run robot src/tests/robot. Palvelin käynnistetään siten, että ympäristömuuttujat ladataan .env.test-tiedostosta.

Tuotantoonvienti

You are on your own... good luck! Ennen tuotantoonvientiä Herokuun, tulee requirements.txt-tiedosto muodostaa riippuvuuksien perusteella. Tämä onnistuu komennolla poetry export -f requirements.txt --output requirements.txt.

Huomaa, että jokainen tuotantoonvienti alustaa tietokannan uudelleen, jotta tuotantotietokannan skeema olisi aina ajantasalla. Jos tämä ei ole toivottua, poista tämä rivi Procfile-tiedostosta.

About

Ohjelmistotuotanto-kurssin esimerkkisovellus web-pohjaiselle Python-sovellukselle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published