Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenStack
oslo
python-oslo.db
Commits
00b5d257
Commit
00b5d257
authored
Jul 20, 2022
by
Zuul
Committed by
Gerrit Code Review
Jul 20, 2022
Browse files
Merge "Remove the 'Session.autocommit' parameter"
parents
1234d38b
a530cbfc
Changes
5
Hide whitespace changes
Inline
Side-by-side
oslo_db/sqlalchemy/enginefacade.py
View file @
00b5d257
...
...
@@ -163,7 +163,7 @@ class _TransactionFactory(object):
}
self
.
_maker_cfg
=
{
'expire_on_commit'
:
_Default
(
False
),
'__autocommit'
:
True
'__autocommit'
:
False
,
}
self
.
_transaction_ctx_cfg
=
{
'rollback_reader_sessions'
:
False
,
...
...
@@ -1266,13 +1266,22 @@ class LegacyEngineFacade(object):
"""
def
__init__
(
self
,
sql_connection
,
slave_connection
=
None
,
sqlite_fk
=
False
,
autocommit
=
Tru
e
,
sqlite_fk
=
False
,
autocommit
=
Fals
e
,
expire_on_commit
=
False
,
_conf
=
None
,
_factory
=
None
,
**
kwargs
):
warnings
.
warn
(
"EngineFacade is deprecated; please use "
"oslo_db.sqlalchemy.enginefacade"
,
warning
.
OsloDBDeprecationWarning
,
stacklevel
=
2
)
if
autocommit
is
True
:
warnings
.
warn
(
'autocommit support will be removed in SQLAlchemy 2.0 and '
'should not be relied on; please rework your code to remove '
'reliance on this feature'
,
warning
.
OsloDBDeprecationWarning
,
stacklevel
=
2
)
if
_factory
:
self
.
_factory
=
_factory
else
:
...
...
@@ -1346,7 +1355,7 @@ class LegacyEngineFacade(object):
@
classmethod
def
from_config
(
cls
,
conf
,
sqlite_fk
=
False
,
autocommit
=
Tru
e
,
expire_on_commit
=
False
):
sqlite_fk
=
False
,
autocommit
=
Fals
e
,
expire_on_commit
=
False
):
"""Initialize EngineFacade using oslo.config config instance options.
:param conf: oslo.config config instance
...
...
oslo_db/sqlalchemy/orm.py
View file @
00b5d257
...
...
@@ -57,7 +57,7 @@ class Session(sqlalchemy.orm.session.Session):
"""oslo.db-specific Session subclass."""
def
get_maker
(
engine
,
autocommit
=
Tru
e
,
expire_on_commit
=
False
):
def
get_maker
(
engine
,
autocommit
=
Fals
e
,
expire_on_commit
=
False
):
"""Return a SQLAlchemy sessionmaker using the given engine."""
return
sqlalchemy
.
orm
.
sessionmaker
(
bind
=
engine
,
class_
=
Session
,
...
...
oslo_db/tests/fixtures.py
View file @
00b5d257
...
...
@@ -37,15 +37,7 @@ class WarningsFixture(fixtures.Fixture):
'error'
,
category
=
sqla_exc
.
SADeprecationWarning
)
# ...but filter everything out until we get around to fixing them
# FIXME(stephenfin): Remove all of these
warnings
.
filterwarnings
(
'once'
,
message
=
r
'The Session.autocommit parameter is deprecated .*'
,
category
=
sqla_exc
.
SADeprecationWarning
)
# ...plus things that aren't our fault
# ...but filter things that aren't our fault
# FIXME(stephenfin): These are caused by sqlalchemy-migrate, not us,
# and should be removed when we drop support for that library
...
...
oslo_db/tests/sqlalchemy/test_enginefacade.py
View file @
00b5d257
...
...
@@ -357,11 +357,11 @@ class MockFacadeTest(test_base.BaseTestCase):
maker_factories
=
mock
.
Mock
(
side_effect
=
get_maker
)
maker_factories
(
autocommit
=
Tru
e
,
engine
=
engines
.
writer
,
autocommit
=
Fals
e
,
engine
=
engines
.
writer
,
expire_on_commit
=
False
)
if
self
.
slave_uri
:
maker_factories
(
autocommit
=
Tru
e
,
engine
=
engines
.
async_reader
,
autocommit
=
Fals
e
,
engine
=
engines
.
async_reader
,
expire_on_commit
=
False
)
yield
makers
...
...
@@ -1692,11 +1692,12 @@ class LiveFacadeTest(db_test_base._DbTestCase):
with
enginefacade
.
writer
.
using
(
context
)
as
session
:
session
.
add
(
self
.
User
(
name
=
"u1"
))
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
def
test_transaction_rollback
(
self
):
context
=
oslo_context
.
RequestContext
()
...
...
@@ -1712,11 +1713,12 @@ class LiveFacadeTest(db_test_base._DbTestCase):
self
.
assertRaises
(
MyException
,
go
,
context
)
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
None
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
None
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
@
mock
.
patch
.
object
(
Session
,
'commit'
)
@
mock
.
patch
.
object
(
Session
,
'rollback'
)
...
...
@@ -1783,11 +1785,12 @@ class LiveFacadeTest(db_test_base._DbTestCase):
s2
.
add
(
self
.
User
(
name
=
"u1"
))
s2
.
flush
()
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
def
test_context_deepcopy_on_connection
(
self
):
context
=
oslo_context
.
RequestContext
()
...
...
@@ -1804,11 +1807,12 @@ class LiveFacadeTest(db_test_base._DbTestCase):
self
.
_assert_ctx_connection
(
ctx2
,
conn2
)
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
"u1"
,
session
.
query
(
self
.
User
.
name
).
scalar
()
)
@
db_test_base
.
backend_specific
(
"postgresql"
,
"mysql"
)
def
test_external_session_transaction
(
self
):
...
...
@@ -1840,14 +1844,14 @@ class LiveFacadeTest(db_test_base._DbTestCase):
session
.
begin
()
session
.
add
(
self
.
User
(
name
=
"u4"
))
session
=
self
.
sessionmaker
(
autocommit
=
True
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
# inner transaction + second part of "outer" transaction were committed
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
def
test_savepoint_transaction_decorator
(
self
):
context
=
oslo_context
.
RequestContext
()
...
...
@@ -1880,14 +1884,14 @@ class LiveFacadeTest(db_test_base._DbTestCase):
go1
(
context
)
session
=
self
.
sessionmaker
(
autocommit
=
True
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
# inner transaction + second part of "outer" transaction were committed
self
.
assertEqual
(
[(
"u1"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u1"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
def
test_savepoint_transaction
(
self
):
context
=
oslo_context
.
RequestContext
()
...
...
@@ -1908,14 +1912,14 @@ class LiveFacadeTest(db_test_base._DbTestCase):
session
.
add
(
self
.
User
(
name
=
"u4"
))
session
=
self
.
sessionmaker
(
autocommit
=
True
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
# inner transaction + second part of "outer" transaction were committed
self
.
assertEqual
(
[(
"u1"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u1"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
@
db_test_base
.
backend_specific
(
"postgresql"
,
"mysql"
)
def
test_external_session_transaction_decorator
(
self
):
...
...
@@ -1956,14 +1960,14 @@ class LiveFacadeTest(db_test_base._DbTestCase):
go1
(
context
)
session
=
self
.
sessionmaker
(
autocommit
=
True
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
# inner transaction + second part of "outer" transaction were committed
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
@
db_test_base
.
backend_specific
(
"postgresql"
,
"mysql"
)
def
test_external_connection_transaction
(
self
):
...
...
@@ -1995,12 +1999,13 @@ class LiveFacadeTest(db_test_base._DbTestCase):
# add more state on the "outer" transaction
connection
.
execute
(
self
.
user_table
.
insert
().
values
(
name
=
"u4"
))
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u2"
,),
(
"u3"
,),
(
"u4"
,
)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
@
db_test_base
.
backend_specific
(
"postgresql"
,
"mysql"
)
def
test_external_writer_in_reader
(
self
):
...
...
@@ -2030,12 +2035,13 @@ class LiveFacadeTest(db_test_base._DbTestCase):
user
=
session
.
query
(
self
.
User
).
first
()
self
.
assertEqual
(
"u1_commit"
,
user
.
name
)
session
=
self
.
sessionmaker
(
autocommit
=
True
)
self
.
assertEqual
(
[(
"u1_commit"
,)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
session
=
self
.
sessionmaker
(
autocommit
=
False
)
with
session
.
begin
():
self
.
assertEqual
(
[(
"u1_commit"
,)],
session
.
query
(
self
.
User
.
name
).
order_by
(
self
.
User
.
name
).
all
()
)
def
test_replace_scope
(
self
):
# "timeout" is an argument accepted by
...
...
oslo_db/tests/sqlalchemy/test_types.py
View file @
00b5d257
...
...
@@ -81,8 +81,7 @@ class JsonTypesTestCase(test_base._DbTestCase):
{
'a'
:
'b'
}
]
for
i
,
test
in
enumerate
(
tested
):
with
self
.
session
.
begin
():
JsonTable
(
id
=
i
,
json
=
test
).
save
(
self
.
session
)
JsonTable
(
id
=
i
,
json
=
test
).
save
(
self
.
session
)
obj
=
self
.
session
.
query
(
JsonTable
).
filter_by
(
id
=
i
).
one
()
self
.
assertEqual
(
test
,
obj
.
json
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment