~andrewjbeach/juju-ci-tools/make-local-patcher

« back to all changes in this revision

Viewing changes to tests/test_upload_jenkins_job.py

  • Committer: Martin Packman
  • Date: 2015-12-16 03:59:38 UTC
  • mto: This revision was merged to the branch mainline in revision 1200.
  • Revision ID: martin.packman@canonical.com-20151216035938-881wbry7ezh8he5m
Add missing template test file

Show diffs side-by-side

added added

removed removed

Lines of Context:
313
313
        jenkins_mock.get_console_text.return_value = "log text"
314
314
        return filename, headers, s3_mock, jenkins_mock
315
315
 
316
 
    def test_make_headers_svg(self):
317
 
        headers = S3Uploader.make_headers('/file/path.svg')
318
 
        expected = {'Content-Type': 'image/svg+xml'}
319
 
        self.assertEqual(headers, expected)
320
 
 
321
 
    def test_make_headers_txt_gz(self):
322
 
        headers = S3Uploader.make_headers('/file/path.txt.gz')
323
 
        expected = {'Content-Type': 'text/plain',
324
 
                    'Content-Encoding': 'gzip'}
325
 
        self.assertEqual(headers, expected)
326
 
 
327
 
    def test_make_headers_log_gz(self):
328
 
        headers = S3Uploader.make_headers('path.log.gz')
329
 
        expected = {'Content-Type': 'text/plain', 'Content-Encoding': 'gzip'}
330
 
        self.assertEqual(headers, expected)
331
 
 
332
 
    def test_make_headers_json(self):
333
 
        headers = S3Uploader.make_headers('path.json')
334
 
        expected = {'Content-Type': 'application/json'}
335
 
        self.assertEqual(headers, expected)
336
 
 
337
 
    def test_make_headers_yaml(self):
338
 
        headers = S3Uploader.make_headers('path.yaml')
339
 
        expected = {'Content-Type': 'text/x-yaml'}
340
 
        self.assertEqual(headers, expected)
341
 
 
342
 
    def test_make_headers_unknown(self):
343
 
        headers = S3Uploader.make_headers('path.ab123')
344
 
        expected = {'Content-Type': 'application/octet-stream'}
345
 
        self.assertEqual(headers, expected)
346
 
 
347
316
    def test_upload_artifacts(self):
348
317
        filename, headers, s3_mock, jenkins_mock = (
349
318
            self._make_upload_artifacts(BUILD_NUM))
366
335
        self.assertEqual(s3_mock.store.mock_calls, calls)
367
336
        jenkins_mock.artifacts.assert_called_once_with()
368
337
 
369
 
    def test_upload_artifacts_content_type(self):
370
 
 
371
 
        def artifacts_fake():
372
 
            for filename, i in zip(['foo.log.gz', 'foo.svg'], xrange(1, 3)):
373
 
                yield filename, "artifact data {}".format(i)
374
 
 
375
 
        _, _, s3_mock, jenkins_mock = self._make_upload_artifacts(BUILD_NUM)
376
 
        jenkins_mock.artifacts.return_value = artifacts_fake()
377
 
        h = S3Uploader(s3_mock, jenkins_mock)
378
 
        h.upload_artifacts()
379
 
        calls = [call('1277-log-foo.log.gz', 'artifact data 1',
380
 
                      headers={'Content-Type': 'text/plain',
381
 
                               'Content-Encoding': 'gzip'}),
382
 
                 call('1277-log-foo.svg', 'artifact data 2',
383
 
                      headers={'Content-Type': 'image/svg+xml'})]
384
 
        self.assertEqual(s3_mock.store.mock_calls, calls)
385
 
        jenkins_mock.artifacts.assert_called_once_with()
386
 
 
387
 
    def test_upload_artifacts_file_ext(self):
388
 
 
389
 
        def artifacts_fake():
390
 
            for filename, i in zip(['foo.log', 'bar.svg', 'result.json'],
391
 
                                   xrange(1, 4)):
392
 
                yield filename, "artifact data {}".format(i)
393
 
        _, _, s3_mock, jenkins_mock = self._make_upload_artifacts(BUILD_NUM)
394
 
        jenkins_mock.artifacts.return_value = artifacts_fake()
395
 
        h = S3Uploader(s3_mock, jenkins_mock,
396
 
                       artifact_file_ext=['.json', '.svg'])
397
 
        h.upload_artifacts()
398
 
        calls = [
399
 
            call('1277-log-bar.svg', 'artifact data 2',
400
 
                 headers={'Content-Type': 'image/svg+xml'}),
401
 
            call('1277-log-result.json', 'artifact data 3',
402
 
                 headers={'Content-Type': 'application/json'})]
403
 
        self.assertEqual(s3_mock.store.mock_calls, calls)
404
 
        jenkins_mock.artifacts.assert_called_once_with()
405
 
 
406
338
    def _make_upload_artifacts(self, file_prefix):
407
339
        filename = '{}-log-filename'.format(file_prefix)
408
340
        headers = {"Content-Type": "application/octet-stream"}
509
441
            self._make_upload(file_prefix=BUILD_NUM))
510
442
        h = S3Uploader(s3_mock, jenkins_mock)
511
443
        filename = h._create_filename("myfile")
512
 
        self.assertEqual(filename, "{}-log-myfile".format(BUILD_NUM))
513
 
 
514
 
    def test_create_file_console_text(self):
515
 
        filename, s3_mock, jenkins_mock = (
516
 
            self._make_upload(file_prefix=BUILD_NUM))
517
 
        h = S3Uploader(s3_mock, jenkins_mock)
518
 
        filename = h._create_filename("consoleText")
519
 
        self.assertEqual(
520
 
            filename, "{}-console-consoleText.txt".format(BUILD_NUM))
521
 
 
522
 
    def test_create_file_result_results(self):
523
 
        filename, s3_mock, jenkins_mock = (
524
 
            self._make_upload(file_prefix=BUILD_NUM))
525
 
        h = S3Uploader(s3_mock, jenkins_mock)
526
 
        filename = h._create_filename("result-results.json")
527
 
        self.assertEqual(
528
 
            filename, "{}-result-results.json".format(BUILD_NUM))
529
 
 
530
 
    def test_create_file_no_prefixes(self):
531
 
        filename, s3_mock, jenkins_mock = (
532
 
            self._make_upload(file_prefix=BUILD_NUM))
533
 
        h = S3Uploader(s3_mock, jenkins_mock, no_prefixes=True)
534
 
        filename = h._create_filename("myfile")
535
 
        self.assertEqual(filename, "myfile")
 
444
        self.assertEqual(filename, "{}-myfile".format(BUILD_NUM))
536
445
 
537
446
    def test_create_file_unique_id(self):
538
447
        filename, s3_mock, jenkins_mock = (
539
448
            self._make_upload(file_prefix=BUILD_NUM))
540
449
        h = S3Uploader(s3_mock, jenkins_mock, unique_id='9999')
541
450
        filename = h._create_filename("myfile")
542
 
        self.assertEqual(filename, "9999-log-myfile")
 
451
        self.assertEqual(filename, "9999-myfile")
543
452
 
544
453
 
545
454
class OtherTests(TestCase):
592
501
    def test_get_args_default(self):
593
502
        args = get_args([JOB_NAME, str(BUILD_NUM), BUCKET, DIRECTORY])
594
503
        self.assertEqual(args, Namespace(
595
 
            all=False, artifact_file_ext=None, build_number=1277,
596
 
            jenkins_job=JOB_NAME, latest=False, password=None,
597
 
            s3_bucket=BUCKET, s3_directory=DIRECTORY, unique_id=None,
598
 
            user=None, no_prefixes=False))
599
 
 
600
 
    def test_get_args_artifact_file_ext(self):
601
 
        args = get_args([JOB_NAME, str(BUILD_NUM), BUCKET, DIRECTORY,
602
 
                         '--artifact-file-ext', '.svg', '.json',
603
 
                         '--unique-id', '1234'])
604
 
        self.assertEqual(args.artifact_file_ext, ['.svg', '.json'])
605
 
        self.assertEqual(args.unique_id, '1234')
 
504
            all=False, build_number=1277, jenkins_job=JOB_NAME, latest=False,
 
505
            password=None, s3_bucket=BUCKET, s3_directory=DIRECTORY,
 
506
            unique_id=None, user=None))
606
507
 
607
508
    def test_get_s3_access(self):
608
509
        path = '/u/home'