@@ -602,14 +602,21 @@ class ConvertMsgToTextTests(ExtractTextTestCase):
602602 def setUp (self ) -> None :
603603 super ().setUp ()
604604 self .dummy_filename = "dummy_filename.msg"
605+ self .dummy_blob = b"dummy blob"
605606
606- def test_blob_not_supported (self ) -> None :
607+ def test_raises_when_no_filename_or_blob (self ) -> None :
608+ with self .assertRaises (ValueError ) as cm :
609+ convert_msg_to_text ()
610+
611+ self .assertIn ("no filename and no blob" , str (cm .exception ))
612+
613+ def test_raises_when_filename_and_blob (self ) -> None :
607614 with self .assertRaises (ValueError ) as cm :
608- convert_msg_to_text (blob = b"foo " )
615+ convert_msg_to_text (filename = "foo" , blob = b"bar " )
609616
610- self .assertIn ("Blob not currently supported " , str (cm .exception ))
617+ self .assertIn ("specify either filename or blob " , str (cm .exception ))
611618
612- def test_file_opened_with_attachments (self ) -> None :
619+ def test_blob_passed_to_openmsg (self ) -> None :
613620 content = self .fake .paragraph (nb_sentences = 10 )
614621
615622 mock_msgfile = mock .Mock (body = content , htmlBody = None , attachments = [])
@@ -618,7 +625,23 @@ def test_file_opened_with_attachments(self) -> None:
618625 "cardinal_pythonlib.extract_text" ,
619626 openMsg = mock_openmsg ,
620627 ):
621- convert_msg_to_text (self .dummy_filename , config = self .config )
628+ convert_msg_to_text (blob = self .dummy_blob , config = self .config )
629+
630+ expected_calls = [mock .call (self .dummy_blob , delayAttachments = False )]
631+ mock_openmsg .assert_has_calls (expected_calls )
632+
633+ def test_file_passed_to_openmsg (self ) -> None :
634+ content = self .fake .paragraph (nb_sentences = 10 )
635+
636+ mock_msgfile = mock .Mock (body = content , htmlBody = None , attachments = [])
637+ mock_openmsg = mock .Mock (return_value = mock_msgfile )
638+ with mock .patch .multiple (
639+ "cardinal_pythonlib.extract_text" ,
640+ openMsg = mock_openmsg ,
641+ ):
642+ convert_msg_to_text (
643+ filename = self .dummy_filename , config = self .config
644+ )
622645
623646 expected_calls = [
624647 mock .call (self .dummy_filename , delayAttachments = False )
@@ -635,7 +658,7 @@ def test_text_body_converted(self) -> None:
635658 openMsg = mock_openmsg ,
636659 ):
637660 converted = convert_msg_to_text (
638- self .dummy_filename , config = self .config
661+ filename = self .dummy_filename , config = self .config
639662 )
640663
641664 self .assertEqual (converted , content )
@@ -662,7 +685,7 @@ def test_html_body_converted(self) -> None:
662685 openMsg = mock_openmsg ,
663686 ):
664687 converted = convert_msg_to_text (
665- self .dummy_filename , config = self .config
688+ filename = self .dummy_filename , config = self .config
666689 )
667690
668691 self .assertEqual (converted .strip (), content )
0 commit comments