def test_NNTPArticle_UU_encode_02(self): """ Test the encoding of fresh new data """ # Our private Key Location tmp_file = join( self.tmp_dir, 'test_NNTPArticle_UU_encode_02.tmp', ) # Create a larger file assert(self.touch(tmp_file, size='1M', random=True)) # Create an NNTPContent Object pointing to our new data content = NNTPBinaryContent(tmp_file) # Create a Yenc Codec instance encoder = CodecUU(work_dir=self.test_dir) # This should produce our yEnc object now encoded = encoder.encode(content) assert isinstance(encoded, NNTPAsciiContent) is True # Now we want to decode the content we just encoded decoded = encoder.decode(encoded) # We should get a Binary Object in return assert isinstance(decoded, NNTPBinaryContent) is True # Our original content should be the same as our decoded # content assert(decoded.crc32() == content.crc32()) assert(decoded.md5() == content.md5())
def test_decoding_uuenc_single_part(self): """ Decodes a single UUEncoded message """ # Input File encoded_filepath = join(self.var_dir, 'uuencoded.tax.jpg.msg') assert isfile(encoded_filepath) # Compare File decoded_filepath = join(self.var_dir, 'uudecoded.tax.jpg') assert isfile(decoded_filepath) # Initialize Codec ud_py = CodecUU(work_dir=self.test_dir) # Read data and decode it with open(encoded_filepath, 'r') as fd_in: article = ud_py.decode(fd_in) # our content should be valid assert isinstance(article, NNTPBinaryContent) # Verify the actual article itself reports itself # as being okay (structurally) assert article.is_valid() is True with open(decoded_filepath, 'r') as fd_in: decoded = fd_in.read() # Compare our processed content with the expected results assert decoded == article.getvalue()
def test_partial_download(self): """ Test the handling of a download that is explicitly ordered to abort after only some content is retrieved. A way of 'peeking' if you will. """ # Input File encoded_filepath = join(self.var_dir, 'uuencoded.tax.jpg.msg') assert isfile(encoded_filepath) # Compare File decoded_filepath = join(self.var_dir, 'uudecoded.tax.jpg') assert isfile(decoded_filepath) # Initialize Codec (restrict content to be no larger then 10 bytes) ud_py = CodecUU(work_dir=self.test_dir, max_bytes=10) # Read data and decode it with open(encoded_filepath, 'r') as fd_in: article = ud_py.decode(fd_in) # our content should be valid assert isinstance(article, NNTPBinaryContent) # Our article should not be considered valid on an # early exit assert article.is_valid() is False with open(decoded_filepath, 'r') as fd_in: decoded = fd_in.read() # Compare our processed content with the expected results length = len(article.getvalue()) # Even though we have't decoded all of our content, we're # still the same as the expected result up to what has been # processed. assert decoded[0:length] == article.getvalue()