<s> import rfc822 <EOL> import sys <EOL> import unittest <EOL> from test import test_support <EOL> try : <EOL> from cStringIO import StringIO <EOL> except ImportError : <EOL> from StringIO import StringIO <EOL> class MessageTestCase ( unittest . TestCase ) : <EOL> def create_message ( self , msg ) : <EOL> return rfc822 . Message ( StringIO ( msg ) ) <EOL> def test_get ( self ) : <EOL> msg = self . create_message ( <EOL> '<STR_LIT>' ) <EOL> self . assert_ ( msg . get ( "<STR_LIT:to>" ) == '<STR_LIT>' ) <EOL> self . assert_ ( msg . get ( "<STR_LIT>" ) == '<STR_LIT>' ) <EOL> self . assert_ ( msg . get ( "<STR_LIT>" ) is None ) <EOL> self . assert_ ( msg . get ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> == "<STR_LIT>" ) <EOL> def test_setdefault ( self ) : <EOL> msg = self . create_message ( <EOL> '<STR_LIT>' ) <EOL> self . assert_ ( not msg . has_key ( "<STR_LIT>" ) ) <EOL> self . assert_ ( msg . setdefault ( "<STR_LIT>" , "<STR_LIT>" ) == "<STR_LIT>" ) <EOL> self . assert_ ( msg . setdefault ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> == "<STR_LIT>" ) <EOL> self . assert_ ( msg [ "<STR_LIT>" ] == "<STR_LIT>" ) <EOL> self . assert_ ( msg . setdefault ( "<STR_LIT>" ) == "<STR_LIT>" ) <EOL> self . assert_ ( msg [ "<STR_LIT>" ] == "<STR_LIT>" ) <EOL> def check ( self , msg , results ) : <EOL> """<STR_LIT>""" <EOL> m = self . create_message ( msg ) <EOL> i = <NUM_LIT:0> <EOL> for n , a in m . getaddrlist ( '<STR_LIT:to>' ) + m . getaddrlist ( '<STR_LIT>' ) : <EOL> try : <EOL> mn , ma = results [ i ] [ <NUM_LIT:0> ] , results [ i ] [ <NUM_LIT:1> ] <EOL> except IndexError : <EOL> print '<STR_LIT>' , repr ( n ) , repr ( a ) <EOL> continue <EOL> i = i + <NUM_LIT:1> <EOL> self . assertEqual ( mn , n , <EOL> "<STR_LIT>" % ( ` mn ` , ` n ` ) ) <EOL> self . assertEqual ( ma , a , <EOL> "<STR_LIT>" % ( ` ma ` , ` a ` ) ) <EOL> if mn == n and ma == a : <EOL> pass <EOL> else : <EOL> print '<STR_LIT>' , repr ( n ) , repr ( a ) <EOL> out = m . getdate ( '<STR_LIT:date>' ) <EOL> if out : <EOL> self . assertEqual ( out , <EOL> ( <NUM_LIT> , <NUM_LIT:1> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , <EOL> "<STR_LIT>" ) <EOL> def test_basic ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> ] ) <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , <EOL> '<STR_LIT>' ) ] ) <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( "<STR_LIT>" , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] ) <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> self . check ( <EOL> '<STR_LIT>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_doublecomment ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) , ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_twisted ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] ) <EOL> def test_commas_in_full_name ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_quoted_name ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_bogus_to_header ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:test>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_addr_ipquad ( self ) : <EOL> self . check ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT:foo>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_iter ( self ) : <EOL> m = rfc822 . Message ( StringIO ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT:\n>' <EOL> '<STR_LIT>' ) ) <EOL> self . assertEqual ( sorted ( m ) , [ '<STR_LIT:date>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:to>' ] ) <EOL> def test_rfc2822_phrases ( self ) : <EOL> self . check ( '<STR_LIT>' , <EOL> [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) <EOL> def test_2getaddrlist ( self ) : <EOL> eq = self . assertEqual <EOL> msg = self . create_message ( """<STR_LIT>""" ) <EOL> ccs = [ ( '<STR_LIT>' , a ) for a in <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] <EOL> addrs = msg . getaddrlist ( '<STR_LIT>' ) <EOL> addrs . sort ( ) <EOL> eq ( addrs , ccs ) <EOL> addrs = msg . getaddrlist ( '<STR_LIT>' ) <EOL> addrs . sort ( ) <EOL> eq ( addrs , ccs ) <EOL> def test_parseaddr ( self ) : <EOL> eq = self . assertEqual <EOL> eq ( rfc822 . parseaddr ( '<STR_LIT>' ) , ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> eq ( rfc822 . parseaddr ( '<STR_LIT>' ) , ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> eq ( rfc822 . parseaddr ( '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> eq ( rfc822 . parseaddr ( '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_quote_unquote ( self ) : <EOL> eq = self . assertEqual <EOL> eq ( rfc822 . quote ( '<STR_LIT>' ) , '<STR_LIT>' ) <EOL> eq ( rfc822 . unquote ( '<STR_LIT>' ) , '<STR_LIT>' ) <EOL> def test_main ( ) : <EOL> test_support . run_unittest ( MessageTestCase ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> test_main ( ) </s>
