@@ -216,33 +216,23 @@ def setUp(self):
216216 self ._user1 = self ._mockgun .create ("HumanUser" , {"login" : "user1" })
217217 self ._user2 = self ._mockgun .create ("HumanUser" , {"login" : "user2" })
218218
219- # Create a project for nested sub entity field
220- self ._project1 = self ._mockgun .create ("Project" , {"name" : "project1" , "users" : [self ._user1 ]})
221- self ._project2 = self ._mockgun .create ("Project" , {"name" : "project2" , "users" : [self ._user2 ]})
222-
223- self ._sequence1 = self ._mockgun .create ("Sequence" , {"code" :"01" , "project" :self ._project1 })
224- self ._shot1 = self ._mockgun .create ("Shot" , {"code" :"01_0010" , "project" :self ._project1 , "sg_sequence" : self ._sequence1 })
225-
226- self ._task_seq = self ._mockgun .create ("Task" , {"entity" : self ._sequence1 })
227- self ._task_shot = self ._mockgun .create ("Task" , {"entity" : self ._shot1 })
228-
229219 # Create pipeline configurations that are assigned none, one or two users.
230- self ._pipeline_config_1 = self . _mockgun .create (
220+ self ._mockgun .create (
231221 "PipelineConfiguration" ,
232- {"code" : "with_user1" , "users" : [self ._user1 ], "project" : self . _project1 }
222+ {"code" : "with_user1" , "users" : [self ._user1 ]}
233223 )
234224
235- self ._pipeline_config_2 = self . _mockgun .create (
225+ self ._mockgun .create (
236226 "PipelineConfiguration" ,
237- {"code" : "with_user2" , "users" : [self ._user2 ], "project" : self . _project2 }
227+ {"code" : "with_user2" , "users" : [self ._user2 ]}
238228 )
239229
240- self ._pipeline_config_3 = self . _mockgun .create (
230+ self ._mockgun .create (
241231 "PipelineConfiguration" ,
242232 {"code" : "with_both" , "users" : [self ._user2 , self ._user1 ]}
243233 )
244234
245- self ._pipeline_config_4 = self . _mockgun .create (
235+ self ._mockgun .create (
246236 "PipelineConfiguration" ,
247237 {"code" : "with_none" , "users" : []}
248238 )
@@ -278,126 +268,6 @@ def test_find_by_sub_entity_field(self):
278268 ]}]
279269 )
280270 self .assertEqual (len (items ), 1 )
281-
282- # Try with multi entities
283- item = self ._mockgun .find_one ("Task" , [
284- ['entity.Shot.code' , 'is' , self ._shot1 ['code' ]]
285- ])
286- self .assertNotEqual (None , item )
287- self .assertEqual (self ._task_shot ["id" ], item ["id" ])
288-
289- item = self ._mockgun .find_one ("Task" , [
290- ['entity.Sequence.code' , 'is' , self ._sequence1 ['code' ]]
291- ])
292- self .assertNotEqual (None , item )
293- self .assertEqual (self ._task_seq ["id" ], item ["id" ])
294-
295- def test_find_by_sub_entity_field_nested (self ):
296- """
297- Ensure that queries on nested linked entity fields work.
298- """
299- items = self ._mockgun .find ("PipelineConfiguration" , [
300- ["project.Project.users.HumanUser.login" , "is" , "user1" ]
301- ])
302- self .assertEqual (len (items ), 1 )
303- self .assertEqual (self ._pipeline_config_1 ['id' ], items [0 ]['id' ])
304-
305- items = self ._mockgun .find ("PipelineConfiguration" , [
306- ["project.Project.users.HumanUser.login" , "is" , "user2" ]
307- ])
308- self .assertEqual (len (items ), 1 )
309- self .assertEqual (self ._pipeline_config_2 ['id' ], items [0 ]['id' ])
310-
311-
312-
313- class TestFindFields (TestBaseWithExceptionTests ):
314- """
315- Ensure that using the 'field' argument in the find method work.
316- """
317-
318- def setUp (self ):
319- """Creates test data."""
320- self ._mockgun = Mockgun ("https://test.shotgunstudio.com" , login = "user" , password = "1234" )
321-
322- # Create two users to assign to the pipeline configurations.
323- self ._user1 = self ._mockgun .create ("HumanUser" , {"login" : "user1" , "firstname" : "firstname1" })
324-
325- # Create a project for nested sub entity field
326- self ._project1 = self ._mockgun .create ("Project" , {"name" : "project1" , "users" : [self ._user1 ]})
327-
328- # Create pipeline configurations that are assigned none, one or two users.
329- self ._mockgun .create (
330- "PipelineConfiguration" ,
331- {"code" : "with_user1" , "users" : [self ._user1 ], "project" : self ._project1 }
332- )
333-
334- def test_field (self ):
335- item = self ._mockgun .find_one ("HumanUser" , [
336- ["login" , "is" , "user1" ]
337- ], ["firstname" ])
338- self .assertIn ("firstname" ,item )
339- self .assertEqual ("firstname1" , item ["firstname" ])
340-
341- def test_find_field_multi_entity (self ):
342- item = self ._mockgun .find_one ("PipelineConfiguration" , [
343- ["project.Project.users.HumanUser.login" , "is" , "user1" ]
344- ], ["project.Project.name" ])
345- self .assertIn ("project.Project.name" , item )
346- self .assertEqual ("project1" , item ["project.Project.name" ])
347-
348-
349- class TestFindOrder (TestBaseWithExceptionTests ):
350- """
351- Ensure that using the 'order' argument in the find method work.
352- """
353- def setUp (self ):
354- self ._mockgun = Mockgun ("https://test.shotgunstudio.com" , login = "user" , password = "1234" )
355-
356- # Create two users to assign to the pipeline configurations.
357- self ._user1 = self ._mockgun .create ("HumanUser" , {"login" : "user1" , "firstname" : "firstname1" , "email" : "user1@foobar.com" })
358- self ._user2 = self ._mockgun .create ("HumanUser" , {"login" : "user2" , "firstname" : "firstname2" , "email" : "user2@foobar.com" })
359-
360- # Create a project for nested sub entity field
361- self ._project1 = self ._mockgun .create ("Project" , {"name" : "project1" , "users" : [self ._user1 ]})
362- self ._project2 = self ._mockgun .create ("Project" , {"name" : "project2" , "users" : [self ._user2 ]})
363-
364- # Create two PipelineConfiguration entities so we can test multi-entity sorting.
365- self ._pipeline_configutation_1 = self ._mockgun .create ("PipelineConfiguration" , {
366- "code" : "PipelineConfiguration1" , "users" : [self ._user2 ], "project" : self ._project1 })
367- self ._pipeline_configutation_2 = self ._mockgun .create ("PipelineConfiguration" , {
368- "code" : "PipelineConfiguration2" , "users" : [self ._user1 ], "project" : self ._project2 })
369-
370- def test_find_order (self ):
371- # Test ascending order
372- item = self ._mockgun .find_one ("HumanUser" , [], order = [{'field_name' : 'login' , 'direction' : 'asc' }])
373- self .assertEqual (self ._user1 ['id' ], item ['id' ])
374-
375- # Test descending order
376- item = self ._mockgun .find_one ("HumanUser" , [], order = [{'field_name' : 'login' , 'direction' : 'desc' }])
377- self .assertEqual (self ._user2 ['id' ], item ['id' ])
378-
379- def test_find_order_linked_entity_field (self ):
380- """Ensure we are able to sort data using a linked entity field."""
381- # Test ascending order
382- item = self ._mockgun .find_one ("PipelineConfiguration" , [], order = [{'field_name' : 'project.Project.name' , 'direction' : 'asc' }])
383- self .assertEqual (self ._pipeline_configutation_1 ['id' ], item ['id' ])
384-
385- # Test descending order
386- item = self ._mockgun .find_one ("PipelineConfiguration" , [], order = [{'field_name' : 'project.Project.name' , 'direction' : 'desc' }])
387- self .assertEqual (self ._pipeline_configutation_2 ['id' ], item ['id' ])
388-
389- def test_find_order_fields_leak (self ):
390- """Ensure that additional fields passed through the order argument but NOT via the field argument are not added to the resulting fields."""
391- item = self ._mockgun .find_one ("HumanUser" , [], fields = ['email' ], order = [{'field_name' : 'login' , 'direction' : 'asc' }])
392- self .assertEqual (set (item .keys ()), set (['id' , 'type' , 'email' ])) # note: we don't verify the order yet
393-
394- def test_find_order_date_created (self ):
395- """Ensure we are able to sort entities by their creation date."""
396- item = self ._mockgun .find_one ("PipelineConfiguration" , [], order = [{'field_name' : 'created_at' , 'direction' : 'asc' }])
397- self .assertEqual (self ._pipeline_configutation_1 ['id' ], item ['id' ])
398-
399- item = self ._mockgun .find_one ("PipelineConfiguration" , [], order = [{'field_name' : 'created_at' , 'direction' : 'desc' }])
400- self .assertEqual (self ._pipeline_configutation_2 ['id' ], item ['id' ])
401271
402272 def test_find_with_none (self ):
403273 """
0 commit comments