~abentley/charms/trusty/juju-reports/disable-cloud-health-sync

« back to all changes in this revision

Viewing changes to tests/test_common.py

  • Committer: Martin Packman
  • Date: 2015-09-25 21:15:26 UTC
  • mfrom: (69.1.1 juju-reports)
  • Revision ID: martin.packman@canonical.com-20150925211526-eqolg0k3ipu1f1oj
Use flock to prevent concurrent execution of jobs from cron

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
    get_last_revision,
18
18
    HOME,
19
19
    INI,
 
20
    install_cronjob,
20
21
    install_ini,
21
22
    make,
22
23
    PROJECT_DIR,
199
200
                finish_update_source(workspace, 'foo', 'bar')
200
201
                self.assertEqual(get_last_revision(), ('foo', 'bar'))
201
202
                self.assertEqual(os.readlink(project_dir), workspace)
 
203
 
 
204
    def test_install_cronjob(self):
 
205
        with patch('common.update_cronjob', autospec=True) as mock_up:
 
206
            with patch('common.ensure_dir', autospec=True) as mock_ed:
 
207
                install_cronjob('9', 'admin@ci.testing')
 
208
        mock_ed.assert_called_once_with('/home/ubuntu/locks')
 
209
        self.assertEqual(1, mock_up.call_count)
 
210
        cronstring = mock_up.call_args[0][0]
 
211
        self.assertRegexpMatches(
 
212
            cronstring,
 
213
            r'(?m)^MAILTO=admin@ci\.testing$'
 
214
        )
 
215
        self.assertRegexpMatches(
 
216
            cronstring,
 
217
            r'(?m)^\*/9(?: \*){4} ubuntu'
 
218
            r' flock -n /home/ubuntu/locks/get_s3_ci_results.lock'
 
219
            r' get-s3-ci-results --email-logs --log-file'
 
220
            r' /home/ubuntu/logs/get-s3-ci-results.log$'
 
221
        )