class TestMultiProcEnv(unittest.TestCase, BaseGobTests): def setUp(self): path = clean_data_dir() self.env = MultiProcEnv(path) self.gob = Gob(self.env) create_jobs(self.gob) def test_map(self): self.env.save('counter.2',xrange(2,100,10)) self.env.save('counter.3',xrange(3,100,10)) self.gob.run_job('expand') first = self.env.load('expand.2').next() self.assertEqual( first, {'digits':(2,),'num':2} )
class TestSimpleEnv(unittest.TestCase, BaseGobTests): def setUp(self): self.env = SimpleEnv() self.gob = Gob(self.env) create_jobs(self.gob) SimpleEnv.THE_FS = {} SimpleEnv.JOB_DB = {} def test_sourceless(self): self.gob.run_job('sourceless_counter') twos = range(2,100,10) threes = range(3,100,10) self.assertEqual(SimpleEnv.THE_FS['sourceless_counter.2'], twos) self.assertEqual(SimpleEnv.THE_FS['sourceless_counter.3'], threes) def test_multi_source(self): twos = range(2,100,10) threes = range(3,100,10) SimpleEnv.THE_FS['counter.2'] = twos SimpleEnv.THE_FS['counter.3'] = threes self.gob.run_job('expand') self.gob.run_job('take') self.gob.run_job('combine_inputs') comb3 = SimpleEnv.THE_FS['combine_inputs.3'] self.assertEqual(comb3, [(43,)]) def test_split_saver(self): self.gob.run_job('counter') self.assertEqual(SimpleEnv.THE_FS['counter.2'],range(2,100,10)) def test_split_load(self): SimpleEnv.THE_FS['counter.2'] = range(2,100,10) SimpleEnv.THE_FS['counter.3'] = range(3,100,10) self.gob.run_job('expand') exp2 = SimpleEnv.THE_FS['expand.2'] self.assertEqual( exp2[0], {'digits':[2],'num':2} ) self.assertEqual( len(exp2), 10 ) exp3 = SimpleEnv.THE_FS['expand.3'] self.assertEqual( exp3[9], {'digits':[9,3],'num':93} ) def test_list_reduce(self): SimpleEnv.THE_FS['expand.2'] = [ dict(num=32,digits=(3,2)), dict(num=42,digits=(4,2)), dict(num=47,digits=(4,7)), ] SimpleEnv.THE_FS['expand.3'] = [ dict(num=43,digits=(4,3)), dict(num=53,digits=(5,3)), ] self.gob.run_job('take') taken = SimpleEnv.THE_FS['take'] self.assertEqual( taken, [(2, (42, 47)), (3, (43,))] ) def test_no_output(self): SimpleEnv.THE_FS['take'] = [(2, [42, 47]), (3, [43])] self.gob.run_job('stash_results') self.assertEqual(set(self.result_data[2]), {42,47})