<s> """<STR_LIT>""" <EOL> __version__ = '<STR_LIT>' <EOL> import unittest <EOL> import tests . test_pywiki <EOL> import wikipedia as pywikibot <EOL> import catlib , userlib <EOL> import query <EOL> class PyWikiQueryTestCase ( tests . test_pywiki . PyWikiTestCase ) : <EOL> def assertEqualQueryResult ( self , params , expectedresult ) : <EOL> data = query . GetData ( params , self . site ) <EOL> self . recursiveConfirmKeyValues ( expectedresult , data [ u'<STR_LIT>' ] ) <EOL> def recursiveConfirmKeyValues ( self , expected , measured ) : <EOL> if isinstance ( expected , dict ) and isinstance ( measured , dict ) : <EOL> for key in expected . keys ( ) : <EOL> self . recursiveConfirmKeyValues ( expected [ key ] , measured [ key ] ) <EOL> elif isinstance ( expected , list ) and isinstance ( measured , list ) : <EOL> for key in range ( ( len ( expected ) ) ) : <EOL> self . recursiveConfirmKeyValues ( expected [ key ] , measured [ key ] ) <EOL> else : <EOL> self . assertEqual ( expected , measured ) <EOL> def test_basic ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT:list>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : u'<STR_LIT>' , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : [ <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } <EOL> ] } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> def test_titles_multi ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT:list>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : u'<STR_LIT>' , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : [ <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> ] } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> def test_titles_list ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT:list>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ u'<STR_LIT>' , u'<STR_LIT>' ] , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : [ <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> ] } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> def test_titles_Page ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT:list>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ pywikibot . Page ( self . site , u'<STR_LIT>' ) , <EOL> pywikibot . Page ( self . site , u'<STR_LIT>' ) ] , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : [ <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> ] } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> def test_titles_User ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT:list>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ userlib . User ( self . site , u'<STR_LIT>' ) , <EOL> userlib . User ( self . site , u'<STR_LIT>' ) ] , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : [ <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:name>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' <EOL> } , <EOL> ] } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> def test_titles_Category ( self ) : <EOL> params = { <EOL> '<STR_LIT:action>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:user>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : [ catlib . Category ( self . site , <EOL> u'<STR_LIT>' ) ] , <EOL> } <EOL> expectedresult = { u'<STR_LIT>' : { u'<STR_LIT>' : <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT>' : [ { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:user>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> } ] , <EOL> u'<STR_LIT:title>' : u'<STR_LIT>' , <EOL> } , <EOL> } } <EOL> self . assertEqualQueryResult ( params , expectedresult ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> unittest . main ( ) </s>
