Coverage for manila/db/sqlalchemy/query.py: 85%

11 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2026-02-18 22:19 +0000

1# Copyright 2015 Mirantis Inc. 

2# All Rights Reserved. 

3# 

4# Licensed under the Apache License, Version 2.0 (the "License"); you may 

5# not use this file except in compliance with the License. You may obtain 

6# a copy of the License at 

7# 

8# http://www.apache.org/licenses/LICENSE-2.0 

9# 

10# Unless required by applicable law or agreed to in writing, software 

11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 

12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

13# License for the specific language governing permissions and limitations 

14# under the License. 

15 

16from oslo_db.sqlalchemy import orm 

17import sqlalchemy 

18 

19from manila.common import constants 

20 

21 

22class Query(orm.Query): 

23 def soft_delete(self, synchronize_session='evaluate', update_status=False, 

24 status_field_name='status'): 

25 if update_status: 25 ↛ 26line 25 didn't jump to line 26 because the condition on line 25 was never true

26 setattr(self, status_field_name, constants.STATUS_DELETED) 

27 

28 return super(Query, self).soft_delete(synchronize_session) 

29 

30 

31def get_maker(engine, expire_on_commit=False): 

32 """Return a SQLAlchemy sessionmaker using the given engine.""" 

33 return sqlalchemy.orm.sessionmaker(bind=engine, 

34 class_=orm.Session, 

35 expire_on_commit=expire_on_commit, 

36 query_cls=Query) 

37 

38 

39# NOTE(uglide): Monkey patch oslo_db get_maker() function to use custom Query 

40orm.get_maker = get_maker