<s> import unittest <EOL> try : <EOL> import simplejson as json <EOL> except ImportError : <EOL> import json <EOL> from micawber import * <EOL> from micawber . parsers import BeautifulSoup , bs_kwargs <EOL> from micawber . providers import make_key <EOL> class TestProvider ( Provider ) : <EOL> test_data = { <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:url>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:url>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT:width>' : <NUM_LIT> } , <EOL> '<STR_LIT>' : { '<STR_LIT:url>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> } <EOL> def fetch ( self , url ) : <EOL> if url in self . test_data : <EOL> return json . dumps ( self . test_data [ url ] ) <EOL> return False <EOL> test_pr = ProviderRegistry ( ) <EOL> test_cache = Cache ( ) <EOL> test_pr_cache = ProviderRegistry ( test_cache ) <EOL> for pr in ( test_pr , test_pr_cache ) : <EOL> pr . register ( '<STR_LIT>' , TestProvider ( '<STR_LIT>' ) ) <EOL> pr . register ( '<STR_LIT>' , TestProvider ( '<STR_LIT>' ) ) <EOL> pr . register ( '<STR_LIT>' , TestProvider ( '<STR_LIT>' ) ) <EOL> pr . register ( '<STR_LIT>' , TestProvider ( '<STR_LIT>' ) ) <EOL> class BaseTestCase ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> test_cache . _cache = { } <EOL> self . full_pairs = { <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 . inline_pairs = { <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 . data_pairs = { <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:url>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:title>' : '<STR_LIT>' , '<STR_LIT:html>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:url>' : '<STR_LIT>' , '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> } <EOL> def assertCached ( self , url , data , ** params ) : <EOL> key = make_key ( url , params ) <EOL> self . assertTrue ( key in test_cache . _cache ) <EOL> self . assertEqual ( test_cache . _cache [ key ] , data ) <EOL> def assertHTMLEqual ( self , first , second , msg = None ) : <EOL> first = BeautifulSoup ( first , ** bs_kwargs ) <EOL> second = BeautifulSoup ( second , ** bs_kwargs ) <EOL> self . assertEqual ( first , second , msg ) </s>
