def test_merge(self): e_factory = lambda ctx: 'e' f_factory = lambda ctx: 'f' target_macro_factory = TargetMacro.Factory.wrap( lambda ctx: ctx.create_object(Target, type_alias='jill', name=os.path.basename(ctx.rel_path)), Target) first = BuildFileAliases(targets={'a': Target}, objects={'d': 2}, context_aware_object_factories={'e': e_factory}) second = BuildFileAliases(targets={'b': target_macro_factory}, objects={'c': 1, 'd': 42}, context_aware_object_factories={'f': f_factory}) expected = BuildFileAliases( # nothing to merge targets={'a': Target, 'b': target_macro_factory}, # second overrides first objects={'c': 1, 'd': 42}, # combine context_aware_object_factories={'e': e_factory, 'f': f_factory}) self.assertEqual(expected, first.merge(second))
def test_merge(self): e_factory = lambda ctx: 'e' f_factory = lambda ctx: 'f' first = BuildFileAliases( targets={'a': Target}, objects={'d': 2}, context_aware_object_factories={'e': e_factory}, addressables={}) second = BuildFileAliases( targets={}, objects={ 'c': 1, 'd': 42 }, context_aware_object_factories={'f': f_factory}, addressables={}) expected = BuildFileAliases( # nothing to merge targets={'a': Target}, # second overrides first objects={ 'c': 1, 'd': 42 }, # combine context_aware_object_factories={ 'e': e_factory, 'f': f_factory }, # empty addressables={}) self.assertEqual(expected, first.merge(second))
def test_create_bad_targets(self): with self.assertRaises(TypeError): BuildFileAliases(targets={'fred': object()}) target = Target('fred', Address.parse('a:b'), BuildGraph(address_mapper=None)) with self.assertRaises(TypeError): BuildFileAliases(targets={'fred': target})
def build_file_aliases(): return BuildFileAliases.create( targets={ 'go_library': GoLibrary, 'go_binary': GoBinary, 'go_remote_library': GoRemoteLibrary, }, context_aware_object_factories={ 'go_remote_libraries': BuildFileAliases.curry_context(GoRemoteLibrary.from_packages), } )
def build_file_aliases(): return BuildFileAliases.create( targets={ 'android_binary': AndroidBinary, 'android_resources': AndroidResources, } )
def alias_groups(self): return BuildFileAliases.create(targets={ 'java_library': JavaLibrary, 'python_library': PythonLibrary, 'jar_library': JarLibrary, 'unpacked_jars': UnpackedJars, 'resources': Resources, 'java_thrift_library': JavaThriftLibrary, 'java_protobuf_library': JavaProtobufLibrary, 'python_thrift_library': PythonThriftLibrary, }, context_aware_object_factories={ 'source_root': SourceRoot.factory, 'rglobs': RGlobs, 'from_target': FromTarget, }, objects={ 'jar': JarDependency, })
def build_file_aliases(): return BuildFileAliases.create( targets={ "annotation_processor": AnnotationProcessor, "benchmark": Benchmark, "credentials": Credentials, "jar_library": JarLibrary, "java_agent": JavaAgent, "java_library": JavaLibrary, "java_tests": JavaTests, "junit_tests": JavaTests, "jvm_app": JvmApp, "jvm_binary": JvmBinary, "repo": Repository, "scala_library": ScalaLibrary, "scala_specs": ScalaTests, "scala_tests": ScalaTests, "scalac_plugin": ScalacPlugin, }, objects={ "artifact": Artifact, "Duplicate": Duplicate, "exclude": Exclude, "jar": JarDependency, "jar_rules": JarRules, "Skip": Skip, }, context_aware_object_factories={"bundle": Bundle.factory}, )
def test_target_macro_factories(self): aliases = BuildFileAliases(targets={ 'jake': Target, 'jill': self.target_macro_factory }) self.assertEqual({'jill': self.target_macro_factory}, aliases.target_macro_factories)
def alias_groups(self): return register_core().merge(BuildFileAliases.create( targets={ # We don't usually have an alias for 'jvm_target' in BUILD files. It's being added here # to make it easier to write a test. 'jvm_target': JvmTarget, }))
def build_file_aliases(): return BuildFileAliases.create( targets={ # NB: the 'dependencies' alias is deprecated in favor of the 'target' alias "dependencies": DeprecatedDependencies, "page": Page, "resources": Resources, "target": Dependencies, "wiki": Wiki, }, objects={ "ConfluencePublish": ConfluencePublish, "get_buildroot": get_buildroot, "pants_version": pants_version, # TODO(Eric Ayers) pants() was officially deprecated in 0.0.24. Remove this function soon. "pants": PantsObsolete.pants, "wiki_artifact": WikiArtifact, }, context_aware_object_factories={ "buildfile_path": BuildFilePath, "globs": Globs, "rglobs": RGlobs, "source_root": SourceRoot.factory, "zglobs": ZGlobs, }, )
def alias_groups(self): return super(JUnitRunnerTest, self).alias_groups.merge(BuildFileAliases.create( targets={ 'java_tests': JavaTests, 'python_tests': PythonTests, }, ))
def build_file_aliases(): return BuildFileAliases.create( targets={ 'cpp_library': CppLibrary, 'cpp_binary': CppBinary, } )
def build_file_aliases(): return BuildFileAliases( targets={ # NB: the 'dependencies' alias is deprecated in favor of the 'target' alias 'dependencies': DeprecatedDependencies, 'page': Page, 'prep_command': PrepCommand, 'resources': Resources, 'target': Dependencies, }, objects={ 'ConfluencePublish': ConfluencePublish, 'get_buildroot': get_buildroot, 'pants_version': pants_version, 'wiki_artifact': WikiArtifact, 'Wiki': Wiki, }, context_aware_object_factories={ 'buildfile_path': BuildFilePath, 'globs': Globs.factory, 'from_target': FromTarget, 'rglobs': RGlobs.factory, 'source_root': SourceRoot.factory, 'zglobs': ZGlobs.factory, })
def alias_groups(self): # NB: In a normal pants deployment, 'target' is an alias for # `pants.backend.core.targets.dependencies.Dependencies`. We avoid that dependency on the core # backend here since the `BaseTest` is used by lower level tests in base and since the # `Dependencies` type itself is nothing more than an alias for Target that carries along a # pydoc for the BUILD dictionary. return BuildFileAliases(targets={'target': Target})
def build_file_aliases(): return BuildFileAliases.create( targets={ 'android_binary': AndroidBinary, 'android_resources': AndroidResources, 'keystore': Keystore, })
def alias_groups(self): return BuildFileAliases.create( targets={ 'java_thrift_library': JavaThriftLibrary, 'java_library': JavaLibrary, } )
def alias_groups(self): return super(BaseJarTaskTest, self).alias_groups.merge(BuildFileAliases.create( targets={ 'java_agent': JavaAgent, 'jvm_binary': JvmBinary, }, ))
def build_file_aliases(): return BuildFileAliases.create( objects={ 'pants_setup_py': pants_setup_py, 'contrib_setup_py': contrib_setup_py } )
def build_file_aliases(): return BuildFileAliases.create( targets={ # NB: the 'dependencies' alias is deprecated in favor of the 'target' alias 'dependencies': DeprecatedDependencies, 'page': Page, 'prep_command': PrepCommand, 'resources': Resources, 'target': Dependencies, }, objects={ 'ConfluencePublish': ConfluencePublish, 'get_buildroot': get_buildroot, 'pants_version': pants_version, # TODO(Eric Ayers) pants() was officially deprecated in 0.0.24. Remove this function soon. 'pants': PantsObsolete.pants, 'wiki_artifact': WikiArtifact, 'Wiki': Wiki, }, context_aware_object_factories={ 'buildfile_path': BuildFilePath, 'globs': Globs, 'rglobs': RGlobs, 'source_root': SourceRoot.factory, 'zglobs': ZGlobs, } )
def build_file_aliases(): return BuildFileAliases.create( targets={ # NB: the 'dependencies' alias is deprecated in favor of the 'target' alias 'dependencies': DeprecatedDependencies, 'page': Page, 'prep_command': PrepCommand, 'resources': Resources, 'target': Dependencies, }, objects={ 'ConfluencePublish': ConfluencePublish, 'get_buildroot': get_buildroot, 'pants_version': pants_version, # TODO(Eric Ayers) pants() was officially deprecated in 0.0.24. Remove this function soon. 'pants': PantsObsolete.pants, 'wiki_artifact': WikiArtifact, 'Wiki': Wiki, }, context_aware_object_factories={ 'buildfile_path': BuildFilePath, 'globs': Globs, 'from_target': FromTarget, 'rglobs': RGlobs, 'source_root': SourceRoot.factory, 'zglobs': ZGlobs, })
def alias_groups(self): return super(ScalastyleTest, self).alias_groups.merge(BuildFileAliases.create( targets={ 'java_library': JavaLibrary, 'scala_library': ScalaLibrary, }, ))
def build_file_aliases(): return BuildFileAliases.create( targets={ 'node_module': NodeModule, 'node_remote_module': NodeRemoteModule, }, )
def build_file_aliases(): return BuildFileAliases.create(targets={ 'annotation_processor': AnnotationProcessor, 'benchmark': Benchmark, 'credentials': Credentials, 'jar_library': JarLibrary, 'unpacked_jars': UnpackedJars, 'java_agent': JavaAgent, 'java_library': JavaLibrary, 'java_tests': JavaTests, 'junit_tests': JavaTests, 'jvm_app': JvmApp, 'jvm_binary': JvmBinary, 'scala_library': ScalaLibrary, 'scala_specs': ScalaTests, 'scala_tests': ScalaTests, 'scalac_plugin': ScalacPlugin, }, objects={ 'artifact': Artifact, 'DirectoryReMapper': DirectoryReMapper, 'Duplicate': Duplicate, 'exclude': Exclude, 'ivy_artifact': IvyArtifact, 'jar': JarDependency, 'jar_rules': JarRules, 'Repository': Repository, 'Skip': Skip, }, context_aware_object_factories={ 'bundle': Bundle.factory, })
def build_file_aliases(): return BuildFileAliases.create( objects={ 'public': public_repo, 'testing': testing_repo, }, )
def alias_groups(self): return BuildFileAliases(targets={ 'python_library': PythonLibrary, }, context_aware_object_factories={ 'source_root': SourceRoot.factory, })
def test_load_valid_partial_aliases(self): aliases = BuildFileAliases.create(targets={"bob": Target}, objects={"MEANING_OF_LIFE": 42}) with self.create_register(build_file_aliases=lambda: aliases) as backend_package: load_backend(self.build_configuration, backend_package) registered_aliases = self.build_configuration.registered_aliases() self.assertEqual(Target, registered_aliases.targets["bob"]) self.assertEqual(42, registered_aliases.objects["MEANING_OF_LIFE"])
def reg_alias(): return BuildFileAliases.create( targets={'pluginalias': DummyTarget}, objects={ 'FROMPLUGIN1': DummyObject1, 'FROMPLUGIN2': DummyObject2 })
def build_file_aliases(): return BuildFileAliases.create( targets={ 'dependencies': Dependencies, 'page': Page, 'resources': Resources, 'wiki': Wiki, }, objects={ 'Amount': Amount, 'config': Config, 'ConfluencePublish': ConfluencePublish, 'get_buildroot': get_buildroot, 'get_scm': get_scm, 'pants_version': pants_version, 'goal': goal, 'pants': lambda x: x, 'phase': Phase, 'set_scm': set_scm, 'Time': Time, 'wiki_artifact': WikiArtifact, }, context_aware_object_factories={ 'source_root': SourceRoot, 'globs': Globs, 'rglobs': RGlobs, 'zglobs': ZGlobs, 'buildfile_path': BuildFilePath, } )
def build_file_aliases(): return BuildFileAliases.create( targets={ 'annotation_processor': AnnotationProcessor, 'benchmark': Benchmark, 'credentials': Credentials, 'jar_library': JarLibrary, 'java_agent': JavaAgent, 'java_library': JavaLibrary, 'java_tests': JavaTests, 'junit_tests': JavaTests, 'jvm_app': JvmApp, 'jvm_binary': JvmBinary, 'repo': Repository, 'scala_library': ScalaLibrary, 'scala_specs': ScalaTests, 'scala_tests': ScalaTests, 'scalac_plugin': ScalacPlugin, }, objects={ 'artifact': Artifact, 'Duplicate': Duplicate, 'exclude': Exclude, 'jar': JarDependency, 'jar_rules': JarRules, 'Skip': Skip, }, context_aware_object_factories={ 'bundle': Bundle.factory, } )
def build_file_aliases(): return BuildFileAliases.create( targets={ "annotation_processor": AnnotationProcessor, "benchmark": Benchmark, "credentials": Credentials, "jar_library": JarLibrary, "unpacked_jars": UnpackedJars, "java_agent": JavaAgent, "java_library": JavaLibrary, "java_tests": JavaTests, "junit_tests": JavaTests, "jvm_app": JvmApp, "jvm_binary": JvmBinary, "scala_library": ScalaLibrary, "scalac_plugin": ScalacPlugin, }, objects={ "artifact": Artifact, "ossrh": OSSRHPublicationMetadata, "license": License, "scm": Scm, "developer": Developer, "github": Scm.github, "DirectoryReMapper": DirectoryReMapper, "Duplicate": Duplicate, "exclude": Exclude, "ivy_artifact": IvyArtifact, "jar": JarDependency, "jar_rules": JarRules, "Repository": Repository, "Skip": Skip, }, context_aware_object_factories={"bundle": Bundle.factory}, )
def build_file_aliases(): return BuildFileAliases.create( objects={ 'public': public_repo, # key 'public' must match name='public' above 'testing': testing_repo, }, )
def build_file_aliases(): return BuildFileAliases.create( targets={ 'go_library': GoLibrary, 'go_binary': GoBinary, 'go_remote_library': GoRemoteLibrary, })
def build_file_aliases(): return BuildFileAliases( objects={ 'public': public_repo, # key 'public' must match name='public' above 'testing': testing_repo, 'pants_library': org_pantsbuild_publication_metadata }, )
def alias_groups(self): return BuildFileAliases.create(targets={ 'page': Page, 'wiki': Wiki, }, objects={ 'wiki_artifact': WikiArtifact, })
def build_file_aliases(): return BuildFileAliases.create( objects={ 'public': public_repo, # key 'public' must match name='public' above 'testing': testing_repo, 'pants_library': org_pantsbuild_publication_metadata }, )
def alias_groups(self): return BuildFileAliases.create(targets={ 'java_library': JavaLibrary, 'junit_tests': JavaTests, }, context_aware_object_factories={ 'maven_layout': maven_layout, })
def build_file_aliases(): return BuildFileAliases.create( targets={ 'android_binary': AndroidBinary, 'android_dependency': AndroidDependency, 'android_library': AndroidLibrary, 'android_resources': AndroidResources, })
def alias_groups(self): return BuildFileAliases.create(targets={ 'spindle_thrift_library': SpindleThriftLibrary, 'jar_library': JarLibrary, }, objects={ 'jar': JarDependency, })
def test_load_valid_partial_aliases(self): aliases = BuildFileAliases.create(targets={'bob': Target}, objects={'MEANING_OF_LIFE': 42}) with self.create_register(build_file_aliases=lambda: aliases) as backend_package: load_backend(self.build_configuration, backend_package) registered_aliases = self.build_configuration.registered_aliases() self.assertEqual(Target, registered_aliases.targets['bob']) self.assertEqual(42, registered_aliases.objects['MEANING_OF_LIFE'])
def test_create(self): self.assertEqual(BuildFileAliases(targets={}, objects={}, context_aware_object_factories={}, addressables={}), BuildFileAliases.create()) targets = {'jake': Target} self.assertEqual(BuildFileAliases(targets=targets, objects={}, context_aware_object_factories={}, addressables={}), BuildFileAliases.create(targets=targets)) objects = {'jane': 42} self.assertEqual(BuildFileAliases(targets={}, objects=objects, context_aware_object_factories={}, addressables={}), BuildFileAliases.create(objects=objects)) factories = {'jim': lambda ctx: 'bob'} self.assertEqual(BuildFileAliases(targets={}, objects={}, context_aware_object_factories=factories, addressables={}), BuildFileAliases.create(context_aware_object_factories=factories)) self.assertEqual(BuildFileAliases(targets=targets, objects=objects, context_aware_object_factories={}, addressables={}), BuildFileAliases.create(targets=targets, objects=objects)) self.assertEqual(BuildFileAliases(targets=targets, objects={}, context_aware_object_factories=factories, addressables={}), BuildFileAliases.create(targets=targets, context_aware_object_factories=factories)) self.assertEqual(BuildFileAliases(targets={}, objects=objects, context_aware_object_factories=factories, addressables={}), BuildFileAliases.create(objects=objects, context_aware_object_factories=factories)) self.assertEqual(BuildFileAliases(targets=targets, objects=objects, context_aware_object_factories=factories, addressables={}), BuildFileAliases.create(targets=targets, objects=objects, context_aware_object_factories=factories))
def alias_groups(self): return BuildFileAliases.create( targets={ 'java_library': JavaLibrary, 'page': Page, 'python_library': PythonLibrary, 'python_requirement_library': PythonRequirementLibrary, } )
def alias_groups(self): return BuildFileAliases.create( targets={ 'junit_tests': JavaTests, }, context_aware_object_factories={ 'globs': Globs, }, )
def alias_groups(self): return BuildFileAliases( targets={ 'target': Dependencies, 'java_library': JavaLibrary, 'page': Page, 'python_library': PythonLibrary, 'python_requirement_library': PythonRequirementLibrary, })
def alias_groups(self): return BuildFileAliases.create( targets={ 'java_library': JavaLibrary, }, context_aware_object_factories={ 'globs': Globs, }, )
def alias_groups(self): return BuildFileAliases.create(targets={ 'scala_library': ScalaLibrary, 'java_library': JavaLibrary, 'jar_library': JarLibrary, }, objects={ 'jar': JarDependency, })
def build_file_aliases(): return BuildFileAliases.create( targets={ 'python_binary': PythonBinary, 'python_library': PythonLibrary, 'python_requirement_library': PythonRequirementLibrary, 'python_test_suite': Dependencies, # Legacy alias. 'python_tests': PythonTests, }, objects={ 'python_requirement': PythonRequirement, 'python_artifact': PythonArtifact, 'setup_py': PythonArtifact, }, context_aware_object_factories={ 'python_requirements': BuildFileAliases.curry_context(python_requirements), } )
def alias_groups(self): return BuildFileAliases.create( targets={ 'spindle_thrift_library': SpindleThriftLibrary, 'jar_library': JarLibrary, }, objects={ 'jar': JarDependency, })
def alias_groups(self): return BuildFileAliases.create( targets={ 'python_requirement_library': PythonRequirementLibrary, }, objects={ 'python_requirement': PythonRequirement, }, )
def build_file_aliases(): return BuildFileAliases.create(objects={ 'pants_setup_py': pants_setup_py, 'contrib_setup_py': contrib_setup_py }, targets={ 'pants_plugin': PantsPlugin, 'contrib_plugin': ContribPlugin })
def build_file_aliases(): return BuildFileAliases.create( targets={ 'python_binary': PythonBinary, 'python_library': PythonLibrary, 'python_requirement_library': PythonRequirementLibrary, 'python_test_suite': Dependencies, # Legacy alias. 'python_tests': PythonTests, }, objects={ 'python_requirement': PythonRequirement, 'python_artifact': PythonArtifact, 'setup_py': PythonArtifact, }, context_aware_object_factories={ 'python_requirements': BuildFileAliases.curry_context(python_requirements), })
def alias_groups(self): return BuildFileAliases.create( targets={ 'python_library': PythonLibrary, }, context_aware_object_factories={ 'source_root': SourceRoot, } )
def alias_groups(self): return super(AntlrGenTest, self).alias_groups.merge(BuildFileAliases.create( targets={ 'java_antlr_library': JavaAntlrLibrary, }, context_aware_object_factories={ 'source_root': SourceRoot.factory, }, ))
def alias_groups(self): return super(JarCreateTestBase, self).alias_groups.merge( BuildFileAliases.create(targets={ 'java_library': JavaLibrary, 'java_thrift_library': JavaThriftLibrary, 'jvm_binary': JvmBinary, 'resources': Resources, 'scala_library': ScalaLibrary, }, ))
def alias_groups(self): return BuildFileAliases( targets={ 'python_requirement_library': PythonRequirementLibrary, }, objects={ 'python_requirement': PythonRequirement, }, )