mirror of
https://github.com/github/codeql.git
synced 2026-05-05 05:35:13 +02:00
Python: Add tests for Flask-SQLAlchemy
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
import python
|
||||
import experimental.meta.ConceptsTest
|
||||
@@ -0,0 +1,3 @@
|
||||
argumentToEnsureNotTaintedNotMarkedAsSpurious
|
||||
untaintedArgumentToEnsureTaintedNotMarkedAsMissing
|
||||
failures
|
||||
@@ -0,0 +1 @@
|
||||
import experimental.meta.InlineTaintTest
|
||||
@@ -0,0 +1,51 @@
|
||||
# pip install Flask-SQLAlchemy
|
||||
from flask import Flask
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
import sqlalchemy
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite+pysqlite:///:memory:"
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
# re-exports all things from `sqlalchemy` and `sqlalchemy.orm` under instances of `SQLAlchemy`
|
||||
# see
|
||||
# - https://github.com/pallets/flask-sqlalchemy/blob/931ec00d1e27f51508e05706eef41cc4419a0b32/src/flask_sqlalchemy/__init__.py#L765
|
||||
# - https://github.com/pallets/flask-sqlalchemy/blob/931ec00d1e27f51508e05706eef41cc4419a0b32/src/flask_sqlalchemy/__init__.py#L99-L109
|
||||
|
||||
assert str(type(db.text("Foo"))) == "<class 'sqlalchemy.sql.elements.TextClause'>"
|
||||
|
||||
# also has engine/session instantiated
|
||||
|
||||
raw_sql = "SELECT 'Foo'"
|
||||
|
||||
conn = db.engine.connect()
|
||||
result = conn.execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
conn = db.get_engine().connect()
|
||||
result = conn.execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
result = db.session.execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
Session = db.create_session(options={})
|
||||
session = Session()
|
||||
result = session.execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
Session = db.create_session(options={})
|
||||
with Session.begin() as session:
|
||||
result = session.execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
result = db.create_scoped_session().execute(raw_sql) # $ MISSING: getSql=raw_sql
|
||||
assert result.fetchall() == [("Foo",)]
|
||||
|
||||
|
||||
# text
|
||||
t = db.text("foo")
|
||||
assert isinstance(t, sqlalchemy.sql.expression.TextClause)
|
||||
|
||||
t = db.text(text="foo")
|
||||
assert isinstance(t, sqlalchemy.sql.expression.TextClause)
|
||||
Reference in New Issue
Block a user