def test_serial_execution_simple(self): request = self.request([Classpath], self.java) result = self.scheduler.execute(request) with temporary_dir() as tempdir: self.scheduler.visualize_graph_to_file(os.path.join(tempdir, 'run.0.dot')) self.assertEqual(Return(Classpath(creator='javac')), result.root_products[0][1]) self.assertIsNone(result.error)
def test_managed_resolve(self): """A managed resolve should consume a ManagedResolve and ManagedJars to produce Jars.""" build_request = self.request([Classpath], self.consumes_managed_thirdparty) root, = self.build(build_request) # Validate the root. self.assert_root(root, self.consumes_managed_thirdparty, Classpath(creator='javac')) # Confirm that we produced classpaths for the managed jars. managed_jars = [self.managed_guava, self.managed_hadoop] self.assert_select_for_subjects(walk, Select(Classpath), [self.consumes_managed_thirdparty]) self.assert_select_for_subjects(walk, Select(Classpath), managed_jars, variants={'resolve': 'latest-hadoop'}) # Confirm that the produced jars had the appropriate versions. self.assertEquals( { Jar('org.apache.hadoop', 'hadoop-common', '2.7.0'), Jar('com.google.guava', 'guava', '18.0') }, {ret.value for node, ret in walk if node.product == Jar})
def test_codegen_simple(self): build_request = self.request([Classpath], self.java) root, = self.build(build_request) # The subgraph below 'src/thrift/codegen/simple' will be affected by its default variants. subjects = [self.guava, self.java, self.thrift] variant_subjects = [ Jar(org='org.apache.thrift', name='libthrift', rev='0.9.2', type_alias='jar'), Jar(org='commons-lang', name='commons-lang', rev='2.5', type_alias='jar'), Address.parse('src/thrift:slf4j-api') ] # Root: expect a DependenciesNode depending on a SelectNode with compilation via javac. self.assert_root(root, self.java, Classpath(creator='javac')) # Confirm that exactly the expected subjects got Classpaths. self.assert_select_for_subjects(walk, Select(Classpath), subjects) self.assert_select_for_subjects(walk, Select(Classpath), variant_subjects, variants={'thrift': 'apache_java'})
def test_serial_execution_simple(self): request = self.request(['compile'], self.java) result = self.scheduler.execute(request) self.scheduler.visualize_graph_to_file(request, 'blah/run.0.dot') self.assertEqual(Return(Classpath(creator='javac')), result.root_products[0][1]) self.assertIsNone(result.error)
def assert_engine(self, engine): result = engine.execute(self.request(['compile'], self.java)) self.assertEqual( { SelectNode(self.java, Classpath, None, None): Return(Classpath(creator='javac')) }, result.root_products) self.assertIsNone(result.error)
def test_dependency_inference(self): """Scala dependency inference introduces dependencies that do not exist in BUILD files.""" build_request = self.request(['compile'], self.inferred_deps) walk = self.build_and_walk(build_request) # Validate the root. self.assert_root( walk, SelectNode(self.inferred_deps, None, Select(Classpath)), Classpath(creator='scalac')) # Confirm that we requested a classpath for the root and inferred targets. self.assert_select_for_subjects(walk, Select(Classpath), [self.inferred_deps, self.java_simple])
def test_consumes_resources(self): build_request = self.request(['compile'], self.consumes_resources) walk = self.build_and_walk(build_request) # Validate the root. self.assert_root( walk, SelectNode(self.consumes_resources, None, Select(Classpath)), Classpath(creator='javac')) # Confirm a classpath for the resources target and other subjects. We know that they are # reachable from the root (since it was involved in this walk). subjects = [self.resources, self.consumes_resources, self.guava] self.assert_select_for_subjects(walk, Select(Classpath), subjects)
def test_compile_only_3rdparty(self): build_request = self.request([Classpath], self.guava) root, = self.build(build_request) self.assert_root(root, self.guava, Classpath(creator='ivy_resolve'))
def test_dependency_inference(self): """Scala dependency inference introduces dependencies that do not exist in BUILD files.""" build_request = self.request([Classpath], self.inferred_deps) root, = self.build(build_request) self.assert_root(root, self.inferred_deps, Classpath(creator='scalac'))
def test_consumes_resources(self): build_request = self.request([Classpath], self.consumes_resources) root, = self.build(build_request) self.assert_root(root, self.consumes_resources, Classpath(creator='javac'))
def assert_engine(self, engine): result = engine.execute(self.request(['compile'], self.java)) self.assertEqual([Return(Classpath(creator='javac'))], result.root_products.values()) self.assertIsNone(result.error)
def assert_engine(self, engine): result = engine.execute(self.request(['compile'], self.java)) self.scheduler.visualize_graph_to_file('blah/run.0.dot') self.assertEqual([Return(Classpath(creator='javac'))], result.root_products.values()) self.assertIsNone(result.error)