瀏覽代碼

Add test for _prepare_order_fields

Yann Weber 9 年之前
父節點
當前提交
c36c13e709
共有 2 個檔案被更改,包括 31 行新增2 行删除
  1. 2
    1
      leapi/lecrud.py
  2. 29
    1
      leapi/test/test_lecrud.py

+ 2
- 1
leapi/lecrud.py 查看文件

@@ -425,9 +425,10 @@ class _LeCrud(object):
425 425
             if len(order_field) != 2 or order_field[1].upper() not in ['ASC', 'DESC']:
426 426
                 errors[order_field] = ValueError("Expected a string or a tuple with (FIELDNAME, ['ASC'|'DESC']) but got : %s"%order_field)
427 427
             else:
428
-                ret = self._check_field(order_field[0])
428
+                ret = cls._check_field(order_field[0])
429 429
                 if isinstance(ret, Exception):
430 430
                     errors[order_field] = ret
431
+            order_field = (order_field[0], order_field[1].upper())
431 432
             result.append(order_field)
432 433
         if len(errors) > 0:
433 434
             return LeApiErrors("Errors when preparing ordering fields", errors)

+ 29
- 1
leapi/test/test_lecrud.py 查看文件

@@ -145,6 +145,33 @@ class LeCrudTestCase(TestCase):
145 145
         with self.assertRaises(ValueError):
146 146
             Personnes._prepare_filters(filters)
147 147
     
148
+    def test_prepare_order_fields(self):
149
+        """ Testing the _prepare_order_fields """
150
+        from dyncode import Article
151
+        
152
+        order_fields_list = [
153
+            (
154
+                ['titre'],
155
+                [('titre', 'ASC')]
156
+            ),
157
+            (
158
+                [('titre', 'asc')],
159
+                [('titre', 'ASC')]
160
+            ),
161
+            (
162
+                ['lodel_id', ('titre', 'asc')],
163
+                [('lodel_id', 'ASC'), ('titre', 'ASC')]
164
+            ),
165
+            (
166
+                [('titre', 'desc')],
167
+                [('titre', 'DESC')]
168
+            ),
169
+        ]
170
+
171
+        for fields_arg, expected_result in order_fields_list:
172
+            result = Article._prepare_order_fields(fields_arg)
173
+            self.assertEqual(result, expected_result)
174
+        
148 175
 
149 176
     # 
150 177
     #   Tests mocking the datasource
@@ -208,6 +235,7 @@ class LeCrudTestCase(TestCase):
208 235
     ## @todo test invalid get
209 236
     @patch('DataSource.dummy.leapidatasource.DummyDatasource.select')
210 237
     def test_get(self, dsmock):
238
+        """ Test the get method without group, limit, sort or offset """
211 239
         from dyncode import Publication, Numero, LeObject, Textes
212 240
         
213 241
         args = [
@@ -271,7 +299,7 @@ class LeCrudTestCase(TestCase):
271 299
 
272 300
         for callcls, field_list, filters, fl_ds, filters_ds, rfilters_ds in args:
273 301
             callcls.get(filters, field_list)
274
-            dsmock.assert_called_with(callcls, fl_ds, filters_ds, rfilters_ds)
302
+            dsmock.assert_called_with(callcls, fl_ds, filters_ds, rfilters_ds, [], [], None, 0)
275 303
             dsmock.reset_mock()
276 304
     
277 305
     #

Loading…
取消
儲存