def get_data_wrapper_with_improved_media_type_or_filename(
        data_wrapper: MediaDataWrapper) -> MediaDataWrapper:
    if not data_wrapper.filename:
        return data_wrapper._replace(
            filename='%s%s' %
            (DEFAULT_FILENAME,
             guess_extension_for_media_type(data_wrapper.media_type) or ''))
    if not data_wrapper.media_type or data_wrapper.media_type == MediaTypes.OCTET_STREAM:
        media_type = guess_media_type_for_filename(data_wrapper.filename)
        if media_type:
            return data_wrapper._replace(media_type=media_type)
    return data_wrapper
 def test_should_guess_jats_xml_zip_extension(self):
     assert guess_extension_for_media_type(
         MediaTypes.JATS_ZIP) == '.jats.zip'
 def test_should_guess_json_extension(self):
     assert guess_extension_for_media_type(MediaTypes.JSON) == '.json'
 def test_should_guess_tei_xml_zip_extension(self):
     assert guess_extension_for_media_type(MediaTypes.TEI_ZIP) == '.tei.zip'
 def test_should_guess_jats_xml_extension(self):
     assert guess_extension_for_media_type(
         MediaTypes.JATS_XML) == '.jats.xml'
 def test_should_guess_tei_xml_extension(self):
     assert guess_extension_for_media_type(MediaTypes.TEI_XML) == '.tei.xml'
 def test_should_guess_docx_extension(self):
     assert guess_extension_for_media_type(MediaTypes.DOCX) == '.docx'
 def test_should_guess_pdf_extension(self):
     assert guess_extension_for_media_type(MediaTypes.PDF) == '.pdf'