def test_extract_tar_gz_empty_tar_gz(self):
     """Test trying to extract and empty tar.gz file."""
     tar_buffer = io.BytesIO()
     json_buffer = io.BytesIO()
     with tarfile.TarFile(fileobj=tar_buffer, mode='w') as tar_file:
         info = tarfile.TarInfo(name='report.json')
         info.size = len(json_buffer.getvalue())
         tar_file.addfile(tarinfo=info, fileobj=json_buffer)
     tar_buffer.seek(0)
     # bytesIO
     file_contents = extract_tar_gz(tar_buffer)
     self.assertEqual(file_contents, None)
     # hexstring
     file_contents = extract_tar_gz(tar_buffer.getvalue())
     self.assertEqual(file_contents, None)
 def test_extract_tar_gz_content_good(self):
     """Test extracting files by passing a BytesIO object."""
     files_data = dict()
     files_data['test0.json'] = {'id': 1, 'report': [{'key': 'value'}]}
     files_data['test1.json'] = {'id': 2, 'report': [{'key': 'value'}]}
     tar_buffer = create_tar_buffer(files_data)
     self.assertIsInstance(tar_buffer, (io.BytesIO))
     # bytesIO
     file_contents = extract_tar_gz(tar_buffer)
     for data in file_contents:
         self.assertIn(data, files_data.values())
     self.assertEqual(len(file_contents), len(files_data.values()))
     # hexstring
     file_contents = extract_tar_gz(tar_buffer.getvalue())
     for data in file_contents:
         self.assertIn(data, files_data.values())
     self.assertEqual(len(file_contents), len(files_data.values()))
 def test_extract_tar_gz_content_bad_param_type(self):
     """Test passing bad types as parameters."""
     bad_types = ['', 7, ['test'], {'key': 'value'}]
     for bad_type in bad_types:
         file_contents = extract_tar_gz(bad_type)
         self.assertEqual(file_contents, None)