pytest-flask-sqlalchemy
flask_for_startups
pytest-flask-sqlalchemy | flask_for_startups | |
---|---|---|
1 | 24 | |
250 | 296 | |
- | - | |
0.0 | 3.8 | |
about 1 year ago | 10 months ago | |
Python | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pytest-flask-sqlalchemy
-
Pytest database not creating tables
import flask import pytest import responses import werkzeug from myproject.app import create_app from myproject.ext import db class TestClient(flask.testing.FlaskClient): def __init__(self, *args, user=None, auth_token=None, **kwargs): self.user = user self.auth_token = auth_token super().__init__(*args, **kwargs) def open(self, *args, **kwargs): headers = kwargs.pop("headers", werkzeug.datastructures.Headers()) headers.extend({"Authorization": f"Bearer {self.auth_token}"}) kwargs["headers"] = headers return super().open(*args, **kwargs) test_app = create_app(conf="test") test_app.test_client_class = TestClient @pytest.fixture(scope="session", autouse=True) def app(): with test_app.app_context(): yield test_app @pytest.fixture(scope="session", autouse=True) def _db(app): import myproject.libs.mock_data db.create_all() myproject.libs.mock_data.load_data() yield db db.session.close() db.drop_all() @pytest.fixture(scope="function", autouse=True) def enable_transactional_tests(db_session): """ Ensure every test case is wrapped in a database transaction, that is rollbacked automatically. https://github.com/jeancochrane/pytest-flask-sqlalchemy#enabling-transactions-without-fixtures """ pass @pytest.fixture(scope="function", autouse=True) def create_responses(app): """ Ensure responses is always turned on for all test cases, so that if a test case forgets to mock something, it will be caught, and responses will raise a ConnectionError. """ ENABLE_RESPONSES = app.config["ENABLE_RESPONSES"] if ENABLE_RESPONSES: responses.start() yield responses.stop() responses.reset() else: yield @pytest.fixture(scope="session") def client(app): with app.test_client() as client: yield client
flask_for_startups
-
Why use marshmallow with REST API and ORM?
Ref
-
Repeatedly typing export FLASK_ENV=development and export FLASK_APP=hello.py before running flask
Example of .flaskenv Example of config file
-
[AF] Role-based authentication, alternatives to [Flask-User]?
If you want to see the full example, here's my repo
-
ML web app
Here's the flask repo that I used. The repo doesn't have the specific ML bits, but all you have to do is:
-
Frankly, I don't like Flask. Am I doing something wrong?
I use this structure: https://github.com/nuvic/flask_for_startups
-
Use SQLAlchemy with and without Flask
@app.teardown_appcontext def shutdown_session(response_or_exc): db.remove() Ref
-
In what cases do you apply decorators to Route Functions?
for reference: https://github.com/nuvic/flask_for_startups/blob/main/app/permissions.py
-
How to be a better Flask Developer
I also made a repo https://github.com/nuvic/flask_for_startups showing some of the patterns I found useful while working in startups.
- Can anyone share their flask project that uses poetry, pre-commit, tox, pytest, coverage? I was looking for a practical example
-
Pytest database not creating tables
Here's my conftest setup for reference (repo here:
What are some alternatives?
pytest-recording - A pytest plugin that allows recording network interactions via VCR.py
apispec - A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
pytest-clarity - A plugin to improve the output of pytest with colourful unified diffs
flask-ask - Alexa Skills Kit for Python
kubetest - Kubernetes integration testing in Python via pytest
pycord - Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API
SeleniumBase - 📊 Python's all-in-one framework for web crawling, scraping, testing, and reporting. Supports pytest. UC Mode provides stealth. Includes many tools.
flask-restless - NO LONGER MAINTAINED - A Flask extension for creating simple ReSTful JSON APIs from SQLAlchemy models.
pytest-codeblocks - :page_facing_up: Test code blocks in your READMEs
nextcord - A Python wrapper for the Discord API forked from discord.py
flask-api - Browsable web APIs for Flask.
Flask-Diamond - :gem: Flask-Diamond is a batteries-included Flask framework.