<s> import unittest <EOL> from trac . notification . api import parse_subscriber_config <EOL> class ParseSubscriberConfigTestCase ( unittest . TestCase ) : <EOL> def test_empty ( self ) : <EOL> actual = parse_subscriber_config ( [ ] ) <EOL> self . assertEqual ( { } , actual ) <EOL> self . assertEqual ( [ ] , actual [ '<STR_LIT>' ] ) <EOL> def test_subscriber ( self ) : <EOL> config = [ ( '<STR_LIT:1>' , '<STR_LIT>' ) ] <EOL> expected = { <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : '<STR_LIT:email>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> } <EOL> self . assertEqual ( expected , parse_subscriber_config ( config ) ) <EOL> def test_subscriber_with_attributes ( self ) : <EOL> config = [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT:1>' , '<STR_LIT>' ) , <EOL> ] <EOL> expected = { <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> } <EOL> self . assertEqual ( expected , parse_subscriber_config ( config ) ) <EOL> def test_subscriber_with_unknown_attributes ( self ) : <EOL> config = [ <EOL> ( '<STR_LIT:1>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] <EOL> expected = { <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : '<STR_LIT:email>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> } <EOL> self . assertEqual ( expected , parse_subscriber_config ( config ) ) <EOL> def test_multiple_subscribers_with_attributes ( self ) : <EOL> config = [ <EOL> ( '<STR_LIT:0>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT:1>' , '<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:2>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] <EOL> expected = { <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT:2>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : '<STR_LIT:email>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> { '<STR_LIT:name>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> { '<STR_LIT:name>' : '<STR_LIT:0>' , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : '<STR_LIT:email>' , <EOL> '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> } <EOL> self . assertEqual ( expected , parse_subscriber_config ( config ) ) <EOL> def test_multiple_subscriber_types_with_attributes ( self ) : <EOL> config = [ <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> ( '<STR_LIT>' , '<STR_LIT:email>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] <EOL> expected = { <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : '<STR_LIT:email>' , '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> '<STR_LIT>' : [ <EOL> { '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT:class>' : '<STR_LIT>' } , <EOL> ] , <EOL> } <EOL> self . assertEqual ( expected , parse_subscriber_config ( config ) ) <EOL> def suite ( ) : <EOL> suite = unittest . TestSuite ( ) <EOL> suite . addTest ( unittest . makeSuite ( ParseSubscriberConfigTestCase ) ) <EOL> return suite <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( defaultTest = '<STR_LIT>' ) </s>
