summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-19 00:27:39 +0000
committerGerrit Code Review <review@openstack.org>2013-07-19 00:27:39 +0000
commit3c69baf5c8db4b98df93c8ef5702d7df095d69ff (patch)
tree92e38cd76fbf32ffdb8f4935b9b9164aee389fe3
parent7055366589d891a8a11c80a610b0bb16e4d50ac3 (diff)
parent5758360a2e970a48a9c64e91b3a14a8a65825be0 (diff)
downloadoslo-3c69baf5c8db4b98df93c8ef5702d7df095d69ff.tar.gz
oslo-3c69baf5c8db4b98df93c8ef5702d7df095d69ff.tar.xz
oslo-3c69baf5c8db4b98df93c8ef5702d7df095d69ff.zip
Merge "Raise ValueError if sort_dir is unknown"
-rwxr-xr-x[-rw-r--r--]openstack/common/db/sqlalchemy/utils.py18
-rw-r--r--tests/unit/db/sqlalchemy/test_utils.py2
2 files changed, 9 insertions, 11 deletions
diff --git a/openstack/common/db/sqlalchemy/utils.py b/openstack/common/db/sqlalchemy/utils.py
index 8b855ff..3ff7bdb 100644..100755
--- a/openstack/common/db/sqlalchemy/utils.py
+++ b/openstack/common/db/sqlalchemy/utils.py
@@ -101,11 +101,14 @@ def paginate_query(query, model, limit, sort_keys, marker=None,
# Add sorting
for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):
- sort_dir_func = {
- 'asc': sqlalchemy.asc,
- 'desc': sqlalchemy.desc,
- }[current_sort_dir]
-
+ try:
+ sort_dir_func = {
+ 'asc': sqlalchemy.asc,
+ 'desc': sqlalchemy.desc,
+ }[current_sort_dir]
+ except KeyError:
+ raise ValueError(_("Unknown sort direction, "
+ "must be 'desc' or 'asc'"))
try:
sort_key_attr = getattr(model, current_sort_key)
except AttributeError:
@@ -130,11 +133,8 @@ def paginate_query(query, model, limit, sort_keys, marker=None,
model_attr = getattr(model, sort_keys[i])
if sort_dirs[i] == 'desc':
crit_attrs.append((model_attr < marker_values[i]))
- elif sort_dirs[i] == 'asc':
- crit_attrs.append((model_attr > marker_values[i]))
else:
- raise ValueError(_("Unknown sort direction, "
- "must be 'desc' or 'asc'"))
+ crit_attrs.append((model_attr > marker_values[i]))
criteria = sqlalchemy.sql.and_(*crit_attrs)
criteria_list.append(criteria)
diff --git a/tests/unit/db/sqlalchemy/test_utils.py b/tests/unit/db/sqlalchemy/test_utils.py
index 12f92ef..15a1e25 100644
--- a/tests/unit/db/sqlalchemy/test_utils.py
+++ b/tests/unit/db/sqlalchemy/test_utils.py
@@ -22,7 +22,6 @@ from sqlalchemy import MetaData, Table, Column
from sqlalchemy.engine import reflection
from sqlalchemy.sql import select
from sqlalchemy.types import UserDefinedType, NullType
-import testtools
from openstack.common.db.sqlalchemy import utils
from openstack.common import exception
@@ -139,7 +138,6 @@ class TestPaginateQuery(testutils.BaseTestCase):
marker=self.marker,
sort_dirs=['asc', 'desc'])
- @testtools.skip('The bug is not fixed: ValueError never raises')
def test_paginate_query_value_error(self):
sqlalchemy.asc('user').AndReturn('asc_1')
self.query.order_by('asc_1').AndReturn(self.query)