Browse Source

Add another test for LeObject.get() method

Yann Weber 9 years ago
parent
commit
ee578c1f89
2 changed files with 70 additions and 6 deletions
  1. 8
    6
      leobject/leobject.py
  2. 62
    0
      leobject/test/test_leobject.py

+ 8
- 6
leobject/leobject.py View File

@@ -101,11 +101,6 @@ class _LeObject(object):
101 101
 
102 102
         letype,leclass = cls._prepare_targets(typename, classname)
103 103
 
104
-        #Fetching LeType
105
-        if typename is None:
106
-            if 'type_id' not in field_list:
107
-                field_list.append('type_id')
108
-
109 104
         #Checking field_list
110 105
         if field_list is None or len(field_list) == 0:
111 106
             #default field_list
@@ -114,7 +109,14 @@ class _LeObject(object):
114 109
             elif not (leclass is None):
115 110
                 field_list = leclass._fieldtypes.keys()
116 111
             else:
117
-                field_list = EditorialModel.classtype.common_fields.keys()
112
+                field_list = list(EditorialModel.classtypes.common_fields.keys())
113
+
114
+        #Fetching LeType
115
+        if letype is None:
116
+            if 'type_id' not in field_list:
117
+                field_list.append('type_id')
118
+
119
+
118 120
         field_list = cls._prepare_field_list(field_list, letype, leclass)
119 121
         
120 122
         #preparing filters

+ 62
- 0
leobject/test/test_leobject.py View File

@@ -317,3 +317,65 @@ class LeObjectMockDatasourceTestCase(TestCase):
317 317
             LeObject.get(filters, field_list, Numero)
318 318
             dsmock.assert_called_with(Publication, Numero, fl_ds, filters_ds, rfilters_ds)
319 319
             dsmock.reset_mock()
320
+
321
+    @patch('leobject.datasources.dummy.DummyDatasource.get')
322
+    def test_get_incomplete_targer(self, dsmock):
323
+        """ Testing LeObject.get() method with partial target specifier """
324
+        from dyncode import Publication, Numero, LeObject
325
+
326
+        args = [
327
+            (
328
+                ['lodel_id'],
329
+                [],
330
+                None,
331
+                None,
332
+
333
+                ['lodel_id', 'type_id'],
334
+                [],
335
+                [],
336
+                None,
337
+                None
338
+            ),
339
+            (
340
+                [],
341
+                [],
342
+                None,
343
+                None,
344
+
345
+                list(EditorialModel.classtypes.common_fields.keys()),
346
+                [],
347
+                [],
348
+                None,
349
+                None
350
+            ),
351
+            (
352
+                ['lodel_id'],
353
+                [],
354
+                None,
355
+                Publication,
356
+
357
+                ['lodel_id', 'type_id'],
358
+                [],
359
+                [],
360
+                None,
361
+                Publication
362
+            ),
363
+            (
364
+                [],
365
+                [],
366
+                Numero,
367
+                None,
368
+
369
+                Numero._fields,
370
+                [],
371
+                [],
372
+                Numero,
373
+                Publication
374
+            ),
375
+        ]
376
+
377
+        for field_list, filters, letype, leclass, fl_ds, filters_ds, rfilters_ds, letype_ds, leclass_ds in args:
378
+            LeObject.get(filters, field_list, letype, leclass)
379
+            dsmock.assert_called_with(leclass_ds, letype_ds, fl_ds, filters_ds, rfilters_ds)
380
+            dsmock.reset_mock()
381
+

Loading…
Cancel
Save