debian-koji/tests/test_hub/test_apply_query_opts.py

86 lines
2.4 KiB
Python

import copy
import unittest
import kojihub
class TestApplyQueryOpts(unittest.TestCase):
def setUp(self):
self.original = [
{'foo': 1, 'bar': 1},
{'foo': 2, 'bar': -1},
{'foo': 0, 'bar': 0},
]
def test_basic(self):
opts = None
expected = copy.copy(self.original)
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_order_by_foo(self):
opts = {'order': 'foo'}
expected = [
{'foo': 0, 'bar': 0},
{'foo': 1, 'bar': 1},
{'foo': 2, 'bar': -1},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_order_by_bar(self):
opts = {'order': 'bar'}
expected = [
{'foo': 2, 'bar': -1},
{'foo': 0, 'bar': 0},
{'foo': 1, 'bar': 1},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_order_in_reverse(self):
opts = {'order': '-foo'}
expected = [
{'foo': 2, 'bar': -1},
{'foo': 1, 'bar': 1},
{'foo': 0, 'bar': 0},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_offset(self):
opts = {'offset': 1}
expected = [
{'foo': 2, 'bar': -1},
{'foo': 0, 'bar': 0},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_limit(self):
opts = {'limit': 2}
expected = [
{'foo': 1, 'bar': 1},
{'foo': 2, 'bar': -1},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_limit_and_offset(self):
opts = {'limit': 1, 'offset': 1}
expected = [
{'foo': 2, 'bar': -1},
]
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
def test_count_only(self):
opts = {'countOnly': True}
expected = 3
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)
opts = {'countOnly': True, 'offset': 2}
expected = 1
actual = kojihub._applyQueryOpts(self.original, opts)
self.assertEqual(expected, actual)