From e2e7dbe185a552b21315063dbbed8ac4f40f309d Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Sat, 16 Nov 2019 16:21:44 +0100 Subject: Add ContentType when publishing artifacts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The default value 'application/octet-stream' is mostly incorrect and forces downloading all links. https://build.opnfv.org/ci/job/functest-opnfv-functest-healthcheck-hunter-connection_check-run/436/console Change-Id: Ia680654f5e9f67154504264bc380f0a8d6a74d85 Signed-off-by: Cédric Ollivier --- xtesting/tests/unit/core/test_testcase.py | 40 ++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'xtesting/tests') diff --git a/xtesting/tests/unit/core/test_testcase.py b/xtesting/tests/unit/core/test_testcase.py index 6d18a968..5d34c34d 100644 --- a/xtesting/tests/unit/core/test_testcase.py +++ b/xtesting/tests/unit/core/test_testcase.py @@ -359,6 +359,7 @@ class TestCaseTesting(unittest.TestCase): args[0].assert_called_once_with( 's3', endpoint_url=os.environ['S3_ENDPOINT_URL']) + @mock.patch('mimetypes.guess_type', return_value=(None, None)) @mock.patch('boto3.resource') @mock.patch('os.walk', return_value=[]) def test_publish_artifacts1(self, *args): @@ -368,6 +369,7 @@ class TestCaseTesting(unittest.TestCase): args[1].assert_called_once_with( 's3', endpoint_url=os.environ['S3_ENDPOINT_URL']) + @mock.patch('mimetypes.guess_type', return_value=(None, None)) @mock.patch('boto3.resource') @mock.patch('os.walk', return_value=[]) def test_publish_artifacts2(self, *args): @@ -381,6 +383,7 @@ class TestCaseTesting(unittest.TestCase): args[1].assert_called_once_with( 's3', endpoint_url=os.environ['S3_ENDPOINT_URL']) + @mock.patch('mimetypes.guess_type', return_value=(None, None)) @mock.patch('os.path.exists', return_value=True) @mock.patch('boto3.resource') @mock.patch('os.walk', @@ -396,16 +399,47 @@ class TestCaseTesting(unittest.TestCase): mock.call().Bucket('xtesting'), mock.call().Bucket().upload_file( '/var/lib/xtesting/results/xtesting.log', - 'prefix/xtesting.log'), + 'prefix/xtesting.log', + ExtraArgs={'ContentType': 'application/octet-stream'}), mock.call().Bucket('xtesting'), mock.call().Bucket().upload_file( '/var/lib/xtesting/results/xtesting.debug.log', - 'prefix/xtesting.debug.log'), + 'prefix/xtesting.debug.log', + ExtraArgs={'ContentType': 'application/octet-stream'}), mock.call().Bucket('xtesting'), mock.call().Bucket().upload_file( - '/var/lib/xtesting/results/bar', 'prefix/bar')] + '/var/lib/xtesting/results/bar', 'prefix/bar', + ExtraArgs={'ContentType': 'application/octet-stream'})] self.assertEqual(args[1].mock_calls, expected) + @mock.patch('mimetypes.guess_type', return_value=('text/plain', None)) + @mock.patch('os.path.exists', return_value=True) + @mock.patch('boto3.resource') + @mock.patch('os.walk', + return_value=[ + (testcase.TestCase.dir_results, ('',), ('bar',))]) + def test_publish_artifacts4(self, *args): + self.assertEqual(self.test.publish_artifacts(), + testcase.TestCase.EX_OK) + args[0].assert_called_once_with(self.test.res_dir) + expected = [ + mock.call('s3', endpoint_url=os.environ['S3_ENDPOINT_URL']), + mock.call().meta.client.head_bucket(Bucket='xtesting'), + mock.call().Bucket('xtesting'), + mock.call().Bucket().upload_file( + '/var/lib/xtesting/results/xtesting.log', + 'prefix/xtesting.log', + ExtraArgs={'ContentType': 'text/plain'}), + mock.call().Bucket('xtesting'), + mock.call().Bucket().upload_file( + '/var/lib/xtesting/results/xtesting.debug.log', + 'prefix/xtesting.debug.log', + ExtraArgs={'ContentType': 'text/plain'}), + mock.call().Bucket('xtesting'), + mock.call().Bucket().upload_file( + '/var/lib/xtesting/results/bar', 'prefix/bar', + ExtraArgs={'ContentType': 'text/plain'})] + self.assertEqual(args[1].mock_calls, expected) if __name__ == "__main__": logging.disable(logging.CRITICAL) -- cgit 1.2.3-korg