コード例 #1
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_key_not_found(self):
     victim = [{"first": 3}, {"first": 2}, {"first": 1}]
     sortby = parse_sortby("second", self.allowed)
     try:
         apply_sortby(sortby, victim)
     except Exception, e:
         self.fail("Unexpected exception: %s", e)
コード例 #2
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_key_not_found(self):
     victim = [{'first': 3}, {'first': 2}, {'first': 1}]
     sortby = parse_sortby('second', self.allowed)
     try:
         apply_sortby(sortby, victim)
     except Exception, e:
         self.fail('Unexpected exception: %s', e)
コード例 #3
0
ファイル: collection.py プロジェクト: altai/altai-api
def make_collection_response(name, elements, parent_href=None):
    """Return a collection to client"""
    if getattr(g, 'filters', None):
        g.unused_args.difference_update(
            (arg for arg in request.args.iterkeys() if ':' in arg))
        elements = apply_filters(elements, g.filters,
                                 g.collection_schema)

    # NOTE(imelnikov): size is number of element matching given
    # criteria -- calculated after filtering
    size = len(elements)

    if 'sortby' in g.unused_args:
        g.unused_args.discard('sortby')
        elements = apply_sortby(g.sortby, elements)
    elements = _apply_pagination(elements)

    result = {
        u'collection': {
            u'name': name,
            u'size': size
        },
        name: elements
    }
    if parent_href is not None:
        result[u'collection'][u'parent-href'] = parent_href
    return make_json_response(result)
コード例 #4
0
def make_collection_response(name, elements, parent_href=None):
    """Return a collection to client"""
    if getattr(g, 'filters', None):
        g.unused_args.difference_update(
            (arg for arg in request.args.iterkeys() if ':' in arg))
        elements = apply_filters(elements, g.filters, g.collection_schema)

    # NOTE(imelnikov): size is number of element matching given
    # criteria -- calculated after filtering
    size = len(elements)

    if 'sortby' in g.unused_args:
        g.unused_args.discard('sortby')
        elements = apply_sortby(g.sortby, elements)
    elements = _apply_pagination(elements)

    result = {u'collection': {u'name': name, u'size': size}, name: elements}
    if parent_href is not None:
        result[u'collection'][u'parent-href'] = parent_href
    return make_json_response(result)
コード例 #5
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_two_different(self):
     victim = [{
         'first': 2,
         'second': 2
     }, {
         'first': 2,
         'second': 1
     }, {
         'first': 1,
         'second': 0
     }]
     result = [{
         'first': 1,
         'second': 0
     }, {
         'first': 2,
         'second': 2
     }, {
         'first': 2,
         'second': 1
     }]
     sortby = parse_sortby('first,second:desc', self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #6
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_by_two(self):
     victim = [{
         'first': 2,
         'second': 2
     }, {
         'first': 2,
         'second': 1
     }, {
         'first': 1,
         'second': 99
     }]
     result = [{
         'first': 1,
         'second': 99
     }, {
         'first': 2,
         'second': 1
     }, {
         'first': 2,
         'second': 2
     }]
     sortby = parse_sortby('first,second', self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #7
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_one_desc(self):
     victim = [{'first': 1}, {'first': 2}, {'first': 3}]
     result = [{'first': 3}, {'first': 2}, {'first': 1}]
     sortby = parse_sortby('first:desc', self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #8
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_applies_none_is_ok_desc(self):
     d = datetime(2012, 1, 12, 11, 12, 45, 0)
     victim = [{'time': None}, {'time': d}]
     result = [{'time': d}, {'time': None}]
     sortby = parse_sortby('time:desc', ('time', ))
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #9
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_applies_nothing(self):
     victim = [{'first': 3}, {'first': 2}, {'first': 1}]
     self.assertEquals(victim, apply_sortby(None, victim))
コード例 #10
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_two_different(self):
     victim = [{"first": 2, "second": 2}, {"first": 2, "second": 1}, {"first": 1, "second": 0}]
     result = [{"first": 1, "second": 0}, {"first": 2, "second": 2}, {"first": 2, "second": 1}]
     sortby = parse_sortby("first,second:desc", self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #11
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_one_desc(self):
     victim = [{"first": 1}, {"first": 2}, {"first": 3}]
     result = [{"first": 3}, {"first": 2}, {"first": 1}]
     sortby = parse_sortby("first:desc", self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #12
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_sort_by_two(self):
     victim = [{"first": 2, "second": 2}, {"first": 2, "second": 1}, {"first": 1, "second": 99}]
     result = [{"first": 1, "second": 99}, {"first": 2, "second": 1}, {"first": 2, "second": 2}]
     sortby = parse_sortby("first,second", self.allowed)
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #13
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_applies_none_is_ok_desc(self):
     d = datetime(2012, 1, 12, 11, 12, 45, 0)
     victim = [{"time": None}, {"time": d}]
     result = [{"time": d}, {"time": None}]
     sortby = parse_sortby("time:desc", ("time",))
     self.assertEquals(result, apply_sortby(sortby, victim))
コード例 #14
0
ファイル: test_utils.py プロジェクト: altai/altai-api
 def test_applies_nothing(self):
     victim = [{"first": 3}, {"first": 2}, {"first": 1}]
     self.assertEquals(victim, apply_sortby(None, victim))