def test_basics(self): # Setup the files with expected content. temp_folder = tempfile.mkdtemp() self.create_file(os.path.join(temp_folder, 'input.txt'), FILE_CONTENTS) # Run pipeline # Avoid dependency on SciPy scipy_mock = MagicMock() result_mock = MagicMock(x=np.ones(3)) scipy_mock.optimize.minimize = MagicMock(return_value=result_mock) modules = {'scipy': scipy_mock, 'scipy.optimize': scipy_mock.optimize} with patch.dict('sys.modules', modules): from apache_beam.examples.complete import distribopt distribopt.run([ '--input=%s/input.txt' % temp_folder, '--output', os.path.join(temp_folder, 'result') ], save_main_session=False) # Load result file and compare. with open_shards(os.path.join(temp_folder, 'result-*-of-*')) as result_file: lines = result_file.readlines() # Only 1 result self.assertEqual(len(lines), 1) # parse result line and verify optimum optimum = make_tuple(lines[0]) self.assertAlmostEqual(optimum['cost'], 454.39597, places=3) self.assertDictEqual(optimum['mapping'], EXPECTED_MAPPING) production = optimum['production'] for plant in ['A', 'B', 'C']: np.testing.assert_almost_equal(production[plant], np.ones(3))
def test_basics(self): # Setup the files with expected content. temp_folder = tempfile.mkdtemp() self.create_file(os.path.join(temp_folder, 'input.txt'), FILE_CONTENTS) # Run pipeline # Avoid dependency on SciPy scipy_mock = MagicMock() result_mock = MagicMock(x=np.ones(3)) scipy_mock.optimize.minimize = MagicMock(return_value=result_mock) modules = { 'scipy': scipy_mock, 'scipy.optimize': scipy_mock.optimize } with patch.dict('sys.modules', modules): from apache_beam.examples.complete import distribopt distribopt.run([ '--input=%s/input.txt' % temp_folder, '--output', os.path.join(temp_folder, 'result')]) # Load result file and compare. with open_shards(os.path.join(temp_folder, 'result-*-of-*')) as result_file: lines = result_file.readlines() # Only 1 result self.assertEqual(len(lines), 1) # parse result line and verify optimum optimum = make_tuple(lines[0]) self.assertAlmostEqual(optimum['cost'], 454.39597, places=3) self.assertDictEqual(optimum['mapping'], EXPECTED_MAPPING) production = optimum['production'] for plant in ['A', 'B', 'C']: np.testing.assert_almost_equal(production[plant], np.ones(3))