@@ -405,6 +405,63 @@ def test_invalid(self):
405
405
406
406
self .assertRaises (api .ShotgunError , api .shotgun ._translate_filters , filters , "all" )
407
407
408
+ def test_related_object (self ):
409
+ filters = [
410
+ [
411
+ "project" ,
412
+ "is" ,
413
+ {"foo" : "foo" , "bar" : "bar" , "id" : 999 , "baz" : "baz" , "type" : "Anything" },
414
+ ],
415
+ ]
416
+ expected = {
417
+ "logical_operator" : "and" ,
418
+ "conditions" : [
419
+ {
420
+ "path" : "project" ,
421
+ "relation" : "is" ,
422
+ "values" : [
423
+ {
424
+ "foo" : "foo" ,
425
+ "bar" : "bar" ,
426
+ "baz" : "baz" ,
427
+ "id" : 999 ,
428
+ "type" : "Anything" ,
429
+ }
430
+ ],
431
+ }
432
+ ],
433
+ }
434
+ result = api .shotgun ._translate_filters (filters , "all" )
435
+ self .assertEqual (result , expected )
436
+
437
+ def test_related_object_entity_optimization (self ):
438
+ filters = [
439
+ [
440
+ "project" ,
441
+ "is" ,
442
+ {"foo" : "foo" , "bar" : "bar" , "id" : 999 , "baz" : "baz" , "type" : "Anything" },
443
+ ],
444
+ ]
445
+ expected = {
446
+ "logical_operator" : "and" ,
447
+ "conditions" : [
448
+ {
449
+ "path" : "project" ,
450
+ "relation" : "is" ,
451
+ "values" : [
452
+ {
453
+ "id" : 999 ,
454
+ "type" : "Anything" ,
455
+ }
456
+ ],
457
+ }
458
+ ],
459
+ }
460
+ os .environ ["SHOTGUN_API_ENABLE_ENTITY_OPTIMIZATION" ] = "1"
461
+ api .Shotgun ("http://server_path" , "script_name" , "api_key" , connect = False )
462
+ result = api .shotgun ._translate_filters (filters , "all" )
463
+ self .assertEqual (result , expected )
464
+
408
465
409
466
class TestCerts (unittest .TestCase ):
410
467
# A dummy bad url provided by Amazon
@@ -506,5 +563,6 @@ def _test_mimetypes_import(self, platform, major, minor, patch_number, result, m
506
563
mock .platform = platform
507
564
self .assertEqual (_is_mimetypes_broken (), result )
508
565
566
+
509
567
if __name__ == '__main__' :
510
568
unittest .main ()
0 commit comments