The following issues were found
tests/test_tutorial/test_custom_request_and_route/test_tutorial002.py
5 issues
Line: 1
Column: 1
from fastapi.testclient import TestClient
from docs_src.custom_request_and_route.tutorial002 import app
client = TestClient(app)
def test_endpoint_works():
response = client.post("/", json=[1, 2, 3])
Reported by Pylint.
Line: 8
Column: 1
client = TestClient(app)
def test_endpoint_works():
response = client.post("/", json=[1, 2, 3])
assert response.json() == 6
def test_exception_handler_body_access():
Reported by Pylint.
Line: 10
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_endpoint_works():
response = client.post("/", json=[1, 2, 3])
assert response.json() == 6
def test_exception_handler_body_access():
response = client.post("/", json={"numbers": [1, 2, 3]})
Reported by Bandit.
Line: 13
Column: 1
assert response.json() == 6
def test_exception_handler_body_access():
response = client.post("/", json={"numbers": [1, 2, 3]})
assert response.json() == {
"detail": {
"body": '{"numbers": [1, 2, 3]}',
Reported by Pylint.
Line: 16
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_exception_handler_body_access():
response = client.post("/", json={"numbers": [1, 2, 3]})
assert response.json() == {
"detail": {
"body": '{"numbers": [1, 2, 3]}',
"errors": [
{
"loc": ["body"],
Reported by Bandit.
docs_src/security/tutorial007.py
5 issues
Line: 3
Column: 1
import secrets
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
Reported by Pylint.
Line: 4
Column: 1
import secrets
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
Reported by Pylint.
Line: 1
Column: 1
import secrets
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
Reported by Pylint.
Line: 11
Column: 1
security = HTTPBasic()
def get_current_username(credentials: HTTPBasicCredentials = Depends(security)):
correct_username = secrets.compare_digest(credentials.username, "stanleyjobson")
correct_password = secrets.compare_digest(credentials.password, "swordfish")
if not (correct_username and correct_password):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
Reported by Pylint.
Line: 24
Column: 1
@app.get("/users/me")
def read_current_user(username: str = Depends(get_current_username)):
return {"username": username}
Reported by Pylint.
docs_src/additional_status_codes/tutorial001.py
5 issues
Line: 3
Column: 1
from typing import Optional
from fastapi import Body, FastAPI, status
from fastapi.responses import JSONResponse
app = FastAPI()
items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}}
Reported by Pylint.
Line: 4
Column: 1
from typing import Optional
from fastapi import Body, FastAPI, status
from fastapi.responses import JSONResponse
app = FastAPI()
items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}}
Reported by Pylint.
Line: 1
Column: 1
from typing import Optional
from fastapi import Body, FastAPI, status
from fastapi.responses import JSONResponse
app = FastAPI()
items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}}
Reported by Pylint.
Line: 12
Column: 1
@app.put("/items/{item_id}")
async def upsert_item(
item_id: str, name: Optional[str] = Body(None), size: Optional[int] = Body(None)
):
if item_id in items:
item = items[item_id]
item["name"] = name
Reported by Pylint.
Line: 15
Column: 5
async def upsert_item(
item_id: str, name: Optional[str] = Body(None), size: Optional[int] = Body(None)
):
if item_id in items:
item = items[item_id]
item["name"] = name
item["size"] = size
return item
else:
Reported by Pylint.
tests/test_tutorial/test_testing/test_main.py
5 issues
Line: 1
Column: 1
from docs_src.app_testing.test_main import client, test_read_main
openapi_schema = {
"openapi": "3.0.2",
"info": {"title": "FastAPI", "version": "0.1.0"},
"paths": {
"/": {
"get": {
"responses": {
Reported by Pylint.
Line: 23
Column: 1
}
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
Reported by Pylint.
Line: 25
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Bandit.
Line: 26
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Bandit.
Line: 29
Column: 1
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Pylint.
tests/test_tutorial/test_testing/test_tutorial001.py
5 issues
Line: 1
Column: 1
from docs_src.app_testing.tutorial001 import client, test_read_main
openapi_schema = {
"openapi": "3.0.2",
"info": {"title": "FastAPI", "version": "0.1.0"},
"paths": {
"/": {
"get": {
"responses": {
Reported by Pylint.
Line: 23
Column: 1
}
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
Reported by Pylint.
Line: 25
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Bandit.
Line: 26
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_openapi_schema():
response = client.get("/openapi.json")
assert response.status_code == 200, response.text
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Bandit.
Line: 29
Column: 1
assert response.json() == openapi_schema
def test_main():
test_read_main()
Reported by Pylint.
docs_src/sql_databases_peewee/sql_app/database.py
5 issues
Line: 3
Column: 1
from contextvars import ContextVar
import peewee
DATABASE_NAME = "test.db"
db_state_default = {"closed": None, "conn": None, "ctx": None, "transactions": None}
db_state = ContextVar("db_state", default=db_state_default.copy())
Reported by Pylint.
Line: 10
Column: 29
db_state = ContextVar("db_state", default=db_state_default.copy())
class PeeweeConnectionState(peewee._ConnectionState):
def __init__(self, **kwargs):
super().__setattr__("_state", db_state)
super().__init__(**kwargs)
def __setattr__(self, name, value):
Reported by Pylint.
Line: 24
Column: 1
db = peewee.SqliteDatabase(DATABASE_NAME, check_same_thread=False)
db._state = PeeweeConnectionState()
Reported by Pylint.
Line: 1
Column: 1
from contextvars import ContextVar
import peewee
DATABASE_NAME = "test.db"
db_state_default = {"closed": None, "conn": None, "ctx": None, "transactions": None}
db_state = ContextVar("db_state", default=db_state_default.copy())
Reported by Pylint.
Line: 10
Column: 1
db_state = ContextVar("db_state", default=db_state_default.copy())
class PeeweeConnectionState(peewee._ConnectionState):
def __init__(self, **kwargs):
super().__setattr__("_state", db_state)
super().__init__(**kwargs)
def __setattr__(self, name, value):
Reported by Pylint.
docs_src/settings/app02/main.py
5 issues
Line: 3
Column: 1
from functools import lru_cache
from fastapi import Depends, FastAPI
from .config import Settings
app = FastAPI()
Reported by Pylint.
Line: 5
Column: 1
from fastapi import Depends, FastAPI
from .config import Settings
app = FastAPI()
@lru_cache()
Reported by Pylint.
Line: 1
Column: 1
from functools import lru_cache
from fastapi import Depends, FastAPI
from .config import Settings
app = FastAPI()
Reported by Pylint.
Line: 11
Column: 1
@lru_cache()
def get_settings():
return Settings()
@app.get("/info")
async def info(settings: Settings = Depends(get_settings)):
Reported by Pylint.
Line: 16
Column: 1
@app.get("/info")
async def info(settings: Settings = Depends(get_settings)):
return {
"app_name": settings.app_name,
"admin_email": settings.admin_email,
"items_per_user": settings.items_per_user,
}
Reported by Pylint.
docs_src/wsgi/tutorial001.py
5 issues
Line: 1
Column: 1
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from flask import Flask, escape, request
flask_app = Flask(__name__)
@flask_app.route("/")
def flask_main():
Reported by Pylint.
Line: 2
Column: 1
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from flask import Flask, escape, request
flask_app = Flask(__name__)
@flask_app.route("/")
def flask_main():
Reported by Pylint.
Line: 1
Column: 1
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from flask import Flask, escape, request
flask_app = Flask(__name__)
@flask_app.route("/")
def flask_main():
Reported by Pylint.
Line: 9
Column: 1
@flask_app.route("/")
def flask_main():
name = request.args.get("name", "World")
return f"Hello, {escape(name)} from Flask!"
app = FastAPI()
Reported by Pylint.
Line: 18
Column: 1
@app.get("/v2")
def read_main():
return {"message": "Hello World"}
app.mount("/v1", WSGIMiddleware(flask_app))
Reported by Pylint.
tests/test_callable_endpoint.py
5 issues
Line: 1
Column: 1
from functools import partial
from typing import Optional
from fastapi import FastAPI
from fastapi.testclient import TestClient
def main(some_arg, q: Optional[str] = None):
return {"some_arg": some_arg, "q": q}
Reported by Pylint.
Line: 8
Column: 1
from fastapi.testclient import TestClient
def main(some_arg, q: Optional[str] = None):
return {"some_arg": some_arg, "q": q}
endpoint = partial(main, "foo")
Reported by Pylint.
Line: 8
Column: 1
from fastapi.testclient import TestClient
def main(some_arg, q: Optional[str] = None):
return {"some_arg": some_arg, "q": q}
endpoint = partial(main, "foo")
Reported by Pylint.
Line: 22
Column: 1
client = TestClient(app)
def test_partial():
response = client.get("/?q=bar")
data = response.json()
assert data == {"some_arg": "foo", "q": "bar"}
Reported by Pylint.
Line: 25
Suggestion:
https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html
def test_partial():
response = client.get("/?q=bar")
data = response.json()
assert data == {"some_arg": "foo", "q": "bar"}
Reported by Bandit.
fastapi/openapi/docs.py
5 issues
Line: 5
Column: 1
from typing import Any, Dict, Optional
from fastapi.encoders import jsonable_encoder
from starlette.responses import HTMLResponse
def get_swagger_ui_html(
*,
openapi_url: str,
Reported by Pylint.
Line: 1
Column: 1
import json
from typing import Any, Dict, Optional
from fastapi.encoders import jsonable_encoder
from starlette.responses import HTMLResponse
def get_swagger_ui_html(
*,
Reported by Pylint.
Line: 8
Column: 1
from starlette.responses import HTMLResponse
def get_swagger_ui_html(
*,
openapi_url: str,
title: str,
swagger_js_url: str = "https://cdn.jsdelivr.net/npm/swagger-ui-dist@3/swagger-ui-bundle.js",
swagger_css_url: str = "https://cdn.jsdelivr.net/npm/swagger-ui-dist@3/swagger-ui.css",
Reported by Pylint.
Line: 65
Column: 1
return HTMLResponse(html)
def get_redoc_html(
*,
openapi_url: str,
title: str,
redoc_js_url: str = "https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js",
redoc_favicon_url: str = "https://fastapi.tiangolo.com/img/favicon.png",
Reported by Pylint.
Line: 107
Column: 1
return HTMLResponse(html)
def get_swagger_ui_oauth2_redirect_html() -> HTMLResponse:
html = """
<!DOCTYPE html>
<html lang="en-US">
<body onload="run()">
</body>
Reported by Pylint.