def test_added_jobs_run_the_crontab_module(self):
     with temp_file("schedule,query.json,config.json") as jobs_path:
         generated_jobs = crontab.generate_crontab([], jobs_path,
                                                   "/path/to/app",
                                                   "some_id")
         assert_that(generated_jobs,
                     has_item(contains_string("collect.py")))
 def test_other_cronjobs_are_preserved(self):
     with temp_file("") as jobs_path:
         generated_jobs = crontab.generate_crontab(['other cronjob'],
                                                   jobs_path,
                                                   "/path/to/app",
                                                   "some_id")
         assert_that(generated_jobs, has_item("other cronjob"))
 def test_other_cronjobs_are_preserved(self):
     with temp_file("") as jobs_path:
         generated_jobs = crontab.generate_crontab(
             ['other cronjob'],
             jobs_path,
             "/path/to/app",
             "some_id")
         assert_that(generated_jobs, has_item("other cronjob"))
 def test_existing_backdrop_cronjobs_are_purged(self):
     with temp_file("schedule,query.json,config.json") as jobs_path:
         generated_jobs = crontab.generate_crontab([
             '# Begin backdrop.collector jobs for some_id', 'other job',
             '# End backdrop.collector jobs for some_id'
         ], jobs_path, "/path/to/my-app", 'some_id')
         assert_that(generated_jobs,
                     is_not(has_item(contains_string("other job"))))
 def test_can_overide_collection_script_to_use(self):
     temp_contents = "schedule,query,config,custom-collect.py"
     with temp_file(temp_contents) as something:
         generated_jobs = crontab.generate_crontab([], something,
                                                   "/path/to/my-app",
                                                   "unique-id-of-my-app")
         job_contains = "/custom-collect.py -q /path/to/my-app/query"
         assert_that(generated_jobs,
                     has_item(contains_string(job_contains)))
 def test_added_jobs_run_the_crontab_module(self):
     with temp_file("schedule,query.json,config.json") as jobs_path:
         generated_jobs = crontab.generate_crontab(
             [],
             jobs_path,
             "/path/to/app",
             "some_id")
         assert_that(generated_jobs,
                     has_item(
                         contains_string("collect.py")))
 def test_existing_backdrop_cronjobs_are_purged(self):
     with temp_file("schedule,query.json,config.json") as jobs_path:
         generated_jobs = crontab.generate_crontab(
             [
                 '# Begin backdrop.collector jobs for some_id',
                 'other job',
                 '# End backdrop.collector jobs for some_id'
             ],
             jobs_path,
             "/path/to/my-app",
             'some_id')
         assert_that(generated_jobs,
                     is_not(has_item(contains_string("other job"))))
 def test_can_use_id_for_generating_crontab_entries(self):
     with temp_file("something, something, dark side") as something:
         generated_jobs = crontab.generate_crontab([], something,
                                                   "/path/to/my-app",
                                                   "unique-id-of-my-app")
         assert_that(
             generated_jobs,
             has_item('# Begin backdrop.collector jobs '
                      'for unique-id-of-my-app'))
         assert_that(
             generated_jobs,
             has_item('# End backdrop.collector jobs '
                      'for unique-id-of-my-app'))
 def test_can_overide_collection_script_to_use(self):
     temp_contents = "schedule,query,config,custom-collect.py"
     with temp_file(temp_contents) as something:
         generated_jobs = crontab.generate_crontab(
             [],
             something,
             "/path/to/my-app",
             "unique-id-of-my-app"
         )
         job_contains = "/custom-collect.py -q /path/to/my-app/query"
         assert_that(generated_jobs,
                     has_item(
                         contains_string(job_contains)))
 def test_can_use_id_for_generating_crontab_entries(self):
     with temp_file("something, something, dark side") as something:
         generated_jobs = crontab.generate_crontab(
             [],
             something,
             "/path/to/my-app",
             "unique-id-of-my-app"
         )
         assert_that(generated_jobs,
                     has_item('# Begin backdrop.collector jobs '
                              'for unique-id-of-my-app'))
         assert_that(generated_jobs,
                     has_item('# End backdrop.collector jobs '
                              'for unique-id-of-my-app'))
    def test_some_cronjobs_are_added_between_containing_comments(self):
        with temp_file("schedule,query.json,config.json") as jobs_path:
            generated_jobs = crontab.generate_crontab([], jobs_path,
                                                      "/path/to/my-app",
                                                      'some_id')
            assert_that(
                generated_jobs,
                has_item('# Begin backdrop.collector jobs for some_id'))

            assert_that(generated_jobs, has_item(contains_string("schedule")))
            assert_that(
                generated_jobs,
                has_item(contains_string("-q /path/to/my-app/query.json")))
            assert_that(
                generated_jobs,
                has_item(contains_string("-c /path/to/my-app/config.json")))

            assert_that(generated_jobs,
                        has_item('# End backdrop.collector jobs for some_id'))
    def test_some_cronjobs_are_added_between_containing_comments(self):
        with temp_file("schedule,query.json,config.json") as jobs_path:
            generated_jobs = crontab.generate_crontab(
                [],
                jobs_path,
                "/path/to/my-app",
                'some_id')
            assert_that(generated_jobs,
                        has_item('# Begin backdrop.collector jobs for some_id'))

            assert_that(generated_jobs,
                        has_item(contains_string("schedule")))
            assert_that(generated_jobs,
                        has_item(
                            contains_string("-q /path/to/my-app/query.json")))
            assert_that(generated_jobs,
                        has_item(
                            contains_string("-c /path/to/my-app/config.json")))

            assert_that(generated_jobs,
                        has_item('# End backdrop.collector jobs for some_id'))