Skip to content

Commit 95e935e

Browse files
committed
Python: Support SQLAlchemy scoped_session
1 parent be0c26f commit 95e935e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

python/ql/lib/semmle/python/frameworks/SqlAlchemy.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,13 @@ module SqlAlchemy {
211211
.getReturn()
212212
.getMember("begin")
213213
.getACall()
214+
or
215+
this =
216+
API::moduleImport("sqlalchemy")
217+
.getMember("orm")
218+
.getMember("scoped_session")
219+
.getReturn()
220+
.getACall()
214221
}
215222
}
216223

python/ql/test/library-tests/frameworks/sqlalchemy/new_tests.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,13 @@
147147
result = session.execute(raw_sql) # $ getSql=raw_sql
148148
assert result.fetchall() == [("FOO",)]
149149

150+
# scoped_session
151+
Session = sqlalchemy.orm.scoped_session(sqlalchemy.orm.sessionmaker(engine))
152+
session = Session()
153+
154+
result = session.execute(raw_sql) # $ getSql=raw_sql
155+
assert result.fetchall() == [("FOO",)]
156+
150157
# Querying (1.4)
151158
# see https://docs.sqlalchemy.org/en/14/orm/session_basics.html#querying-1-x-style
152159

0 commit comments

Comments
 (0)