<s> """<STR_LIT>""" <EOL> import mock <EOL> import logging <EOL> from src import basetest <EOL> from src . pipelines import shardstage <EOL> class SimpleShardStage ( shardstage . ShardStage ) : <EOL> """<STR_LIT>""" <EOL> def __init__ ( self , config ) : <EOL> super ( shardstage . ShardStage , self ) . __init__ ( config ) <EOL> self . simple_shard_stage_config = config <EOL> class ShardStageTest ( basetest . TestCase ) : <EOL> def setUp ( self ) : <EOL> super ( basetest . TestCase , self ) . setUp ( ) <EOL> self . gcscompositor_mock = mock . patch ( <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ) . start ( ) <EOL> def testNoNeedToShard ( self ) : <EOL> configs = [ <EOL> { } , <EOL> { '<STR_LIT:start>' : <NUM_LIT:100> } , <EOL> { '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : <NUM_LIT:100> } , <EOL> { '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : <NUM_LIT> } , <EOL> ] <EOL> for config in configs : <EOL> stage = SimpleShardStage ( config ) <EOL> self . assertEquals ( ( [ ] , [ ] ) , stage . ShardStage ( config ) ) <EOL> def testNeedsToShard ( self ) : <EOL> configs_and_results = [ <EOL> ( { '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : <NUM_LIT:50> , '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : [ <EOL> { '<STR_LIT:start>' : <NUM_LIT:0> , '<STR_LIT>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } , <EOL> { '<STR_LIT:start>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } , <EOL> ] , <EOL> '<STR_LIT>' : [ { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> } ] } ) , <EOL> ( { '<STR_LIT>' : <NUM_LIT:100> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : [ <EOL> { '<STR_LIT:start>' : <NUM_LIT:0> , '<STR_LIT>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } , <EOL> { '<STR_LIT:start>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , '<STR_LIT>' : <NUM_LIT:50> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } , <EOL> ] , <EOL> '<STR_LIT>' : [ { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , <EOL> } ] } ) <EOL> ] <EOL> for config , result in configs_and_results : <EOL> with mock . patch ( '<STR_LIT>' , side_effect = [ str ( x ) for x in range ( <NUM_LIT:10> ) ] ) : <EOL> stage = SimpleShardStage ( config ) <EOL> ( shards , compositors ) = stage . ShardStage ( config ) <EOL> self . assertEquals ( len ( result [ '<STR_LIT>' ] ) , len ( shards ) ) <EOL> self . assertEquals ( len ( result [ '<STR_LIT>' ] ) , len ( compositors ) ) <EOL> for expected , actual in zip ( result [ '<STR_LIT>' ] , shards ) : <EOL> self . assertSameStructure ( expected , actual . simple_shard_stage_config ) <EOL> for expected , actual in zip ( result [ '<STR_LIT>' ] , compositors ) : <EOL> gcscompositor_config = self . gcscompositor_mock . call_args [ <NUM_LIT:0> ] [ <NUM_LIT:0> ] <EOL> self . assertSameStructure ( expected , gcscompositor_config ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> basetest . main ( ) </s>
