diff --git a/tox.ini b/tox.ini index 92fbe7498..2f1c5121f 100644 --- a/tox.ini +++ b/tox.ini @@ -49,7 +49,9 @@ commands = [testenv:docs] setenv = PYTHONHASHSEED=0 -deps = -r{toxinidir}/doc/requirements.txt +deps = + -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} + -r{toxinidir}/doc/requirements.txt commands = rm -fr doc/build doc/source/api/ .autogenerated sphinx-build -W --keep-going -b html doc/source doc/build/html diff --git a/watcher/db/sqlalchemy/api.py b/watcher/db/sqlalchemy/api.py index 73e82d745..ab1fc84fb 100644 --- a/watcher/db/sqlalchemy/api.py +++ b/watcher/db/sqlalchemy/api.py @@ -278,7 +278,7 @@ class Connection(api.BaseConnection): query = model_query(model, session=session) query = add_identity_filter(query, id_) try: - ref = query.with_lockmode('update').one() + ref = query.with_for_update().one() except exc.NoResultFound: raise exception.ResourceNotFound(name=model.__name__, id=id_) @@ -815,7 +815,7 @@ class Connection(api.BaseConnection): query = model_query(models.Action, session=session) query = add_identity_filter(query, action_id) try: - ref = query.with_lockmode('update').one() + ref = query.with_for_update().one() except exc.NoResultFound: raise exception.ActionNotFound(action=action_id) @@ -900,7 +900,7 @@ class Connection(api.BaseConnection): query = model_query(models.ActionPlan, session=session) query = add_identity_filter(query, action_plan_id) try: - ref = query.with_lockmode('update').one() + ref = query.with_for_update().one() except exc.NoResultFound: raise exception.ActionPlanNotFound(action_plan=action_plan_id) diff --git a/watcher/tests/api/v1/test_audits.py b/watcher/tests/api/v1/test_audits.py index c0a486ee5..58be0ebdb 100644 --- a/watcher/tests/api/v1/test_audits.py +++ b/watcher/tests/api/v1/test_audits.py @@ -700,7 +700,7 @@ class TestPost(api_base.FunctionalTest): self.assertEqual('application/json', response.content_type) self.assertEqual(500, response.status_int) expected_error_msg = ('Exactly 5 or 6 columns has to be ' - 'specified for iteratorexpression.') + 'specified for iterator expression.') self.assertTrue(response.json['error_message']) self.assertIn(expected_error_msg, response.json['error_message'])