@@ -345,3 +345,75 @@ def test_user_group_workflow(self, user="unit_test_user", user_group="unit_test_
345345 reply = nebula_connection_object .delete_user_group (user_group )
346346 self .assertEqual (reply ["status_code" ], 200 )
347347 self .assertEqual (reply ["reply" ], {})
348+
349+ def test_list_all_cron_jobs (self ):
350+ nebula_connection_object = nebula_connection ()
351+ reply = nebula_connection_object .list_cron_jobs ()
352+ cron_jobs_list = reply ["reply" ]["cron_jobs" ]
353+ self .assertEqual (reply ["status_code" ], 200 )
354+ self .assertTrue (isinstance (cron_jobs_list , list ))
355+ for cron_job in cron_jobs_list :
356+ self .assertTrue (isinstance (cron_job , str ))
357+
358+ def test_delete_cron_job_does_not_exist (self , cron_job = "cron_job_that_does_not_exist" ):
359+ nebula_connection_object = nebula_connection ()
360+ # deleting twice so even if the app does exist prior to running the check it won't on the 2nd run
361+ nebula_connection_object .delete_cron_job (cron_job )
362+ reply = nebula_connection_object .delete_cron_job (cron_job )
363+ self .assertEqual (reply ["status_code" ], 403 )
364+ self .assertFalse (reply ["reply" ]["cron_job_exists" ])
365+
366+ def test_cron_job_flow (self , cron_job = "unit_test_cron_job" ):
367+ nebula_connection_object = nebula_connection ()
368+ cron_job_config = {
369+ "env_vars" : {"test" : "test123" },
370+ "docker_image" : "hello-world" ,
371+ "running" : True ,
372+ "volumes" : [],
373+ "networks" : ["nebula" , "bridge" ],
374+ "devices" : [],
375+ "privileged" : False ,
376+ "schedule" : "0 0 * * *"
377+ }
378+
379+ # deleting the cron job to make sure we start from a clean slate
380+ nebula_connection_object .delete_cron_job (cron_job )
381+
382+ # check creating a cron_jon works
383+ reply = nebula_connection_object .create_cron_job (cron_job , cron_job_config )
384+ self .assertEqual (reply ["status_code" ], 200 )
385+ self .assertEqual (reply ["reply" ]["cron_job_id" ], 1 )
386+ self .assertEqual (reply ["reply" ]["cron_job_name" ], cron_job )
387+ self .assertEqual (reply ["reply" ]["schedule" ], cron_job_config ["schedule" ])
388+ self .assertEqual (reply ["reply" ]["env_vars" ], cron_job_config ["env_vars" ])
389+ self .assertEqual (reply ["reply" ]["docker_image" ], cron_job_config ["docker_image" ])
390+ self .assertTrue (reply ["reply" ]["running" ])
391+ self .assertEqual (reply ["reply" ]["networks" ], cron_job_config ["networks" ])
392+ self .assertEqual (reply ["reply" ]["volumes" ], cron_job_config ["volumes" ])
393+ self .assertEqual (reply ["reply" ]["devices" ], cron_job_config ["devices" ])
394+ self .assertFalse (reply ["reply" ]["privileged" ])
395+
396+ # check listing a cron_jon info works
397+ reply = nebula_connection_object .list_cron_job_info (cron_job )
398+ self .assertEqual (reply ["status_code" ], 200 )
399+ self .assertEqual (reply ["reply" ]["cron_job_id" ], 1 )
400+ self .assertEqual (reply ["reply" ]["cron_job_name" ], cron_job )
401+ self .assertEqual (reply ["reply" ]["schedule" ], cron_job_config ["schedule" ])
402+ self .assertEqual (reply ["reply" ]["env_vars" ], cron_job_config ["env_vars" ])
403+ self .assertEqual (reply ["reply" ]["docker_image" ], cron_job_config ["docker_image" ])
404+ self .assertTrue (reply ["reply" ]["running" ])
405+ self .assertEqual (reply ["reply" ]["networks" ], cron_job_config ["networks" ])
406+ self .assertEqual (reply ["reply" ]["volumes" ], cron_job_config ["volumes" ])
407+ self .assertEqual (reply ["reply" ]["devices" ], cron_job_config ["devices" ])
408+ self .assertFalse (reply ["reply" ]["privileged" ])
409+
410+ # check updating a cron_jon works
411+ reply = nebula_connection_object .update_cron_job (cron_job , {"schedule" : "5 5 * * *" })
412+ self .assertEqual (reply ["status_code" ], 202 )
413+ self .assertEqual (reply ["reply" ]["cron_job_id" ], 2 )
414+ self .assertEqual (reply ["reply" ]["schedule" ], "5 5 * * *" )
415+
416+ # check cron_jon deletion works
417+ reply = nebula_connection_object .delete_cron_job (cron_job )
418+ self .assertEqual (reply ["status_code" ], 200 )
419+ self .assertEqual (reply ["reply" ], {})
0 commit comments