修复:强化装填事务一致性
This commit is contained in:
@@ -502,6 +502,24 @@ class TestMasterDao(unittest.IsolatedAsyncioTestCase):
|
||||
self.assertIn(f'FROM {table}', sql)
|
||||
self.assertIn(f'{table}.{id_field} = 9', sql)
|
||||
|
||||
async def test_locking_master_gets_use_current_reads_and_refresh_identity_map(self) -> None:
|
||||
strain_lock_parameter = inspect.signature(MasterDao.get_strain).parameters.get('for_update')
|
||||
self.assertIsNotNone(strain_lock_parameter)
|
||||
self.assertIs(inspect.Parameter.KEYWORD_ONLY, strain_lock_parameter.kind)
|
||||
self.assertFalse(strain_lock_parameter.default)
|
||||
|
||||
for resource in ('warehouse', 'strain'):
|
||||
with self.subTest(resource=resource):
|
||||
result = MagicMock()
|
||||
result.scalar_one_or_none.return_value = None
|
||||
self.db.execute = AsyncMock(return_value=result)
|
||||
|
||||
await getattr(MasterDao, f'get_{resource}')(self.db, 9, for_update=True)
|
||||
|
||||
statement = self.db.execute.await_args.args[0]
|
||||
self.assertIn('FOR UPDATE', compile_sql(statement))
|
||||
self.assertIs(True, statement.get_execution_options().get('populate_existing'))
|
||||
|
||||
async def test_unique_queries_use_global_or_parent_scoped_predicates(self) -> None:
|
||||
cases = (
|
||||
('strain', ('S001',), 'biz_strain', ('strain_code',)),
|
||||
|
||||
Reference in New Issue
Block a user