def assert_engine_fail_slow(self, engine): build_request = BuildRequest( goals=['compile'], addressable_roots=[self.java.address, self.java_fail_slow.address]) result = engine.execute(build_request, fail_slow=True) self.assertEqual({Promise(Classpath, self.java): Javac.fake_product()}, result.root_products) self.assertIsInstance(result.error, Engine.PartialFailureError) self.assertEqual(1, len(result.error.failed_to_produce)) failed_promise = Promise(Classpath, self.java_fail_slow) failed_to_produce = result.error.failed_to_produce[failed_promise] failing_configuration = self.failing_thrift.select_configuration( 'failing') self.assertEqual([ Promise(Sources.of('.java'), self.failing_thrift, failing_configuration), Promise(Classpath, self.failing_thrift, failing_configuration), Promise(Classpath, self.java_fail_slow) ], [ftp.promise for ftp in failed_to_produce.walk(postorder=True)]) errors = [ftp.error for ftp in failed_to_produce.walk(postorder=True)] self.assertEqual(3, len(errors)) root_error = errors[0] self.assertIsInstance(root_error, ApacheThriftError) self.assertEqual([None, None], errors[1:])
def assert_engine(self, engine): build_request = BuildRequest(goals=['compile'], addressable_roots=[self.java.address]) result = engine.execute(build_request) self.assertEqual({Promise(Classpath, self.java): Javac.fake_product()}, result.root_products) self.assertIsNone(result.error)
def assert_engine_fail_slow(self, engine): build_request = BuildRequest(goals=['compile'], addressable_roots=[self.java.address, self.java_fail_slow.address]) result = engine.execute(build_request, fail_slow=True) self.assertEqual({Promise(Classpath, self.java): Javac.fake_product()}, result.root_products) self.assertIsInstance(result.error, Engine.PartialFailureError) self.assertEqual(1, len(result.error.failed_to_produce)) failed_promise = Promise(Classpath, self.java_fail_slow) failed_to_produce = result.error.failed_to_produce[failed_promise] failing_configuration = self.failing_thrift.select_configuration('failing') self.assertEqual([Promise(JavaSources, self.failing_thrift, failing_configuration), Promise(Classpath, self.failing_thrift, failing_configuration), Promise(Classpath, self.java_fail_slow)], [ftp.promise for ftp in failed_to_produce.walk(postorder=True)]) errors = [ftp.error for ftp in failed_to_produce.walk(postorder=True)] self.assertEqual(3, len(errors)) root_error = errors[0] self.assertIsInstance(root_error, ApacheThriftError) self.assertEqual([None, None], errors[1:])