예제 #1
0
    def test_get_product_target_mappings_for_targets_intransitive(self):
        b = self.make_target('b',
                             JvmTarget,
                             excludes=[Exclude('com.example', 'lib')])
        a = self.make_target('a', JvmTarget, dependencies=[b])

        classpath_product = ClasspathProducts(self.pants_workdir)
        example_jar_path = self._example_jar_path()
        resolved_jar = self.add_jar_classpath_element_for_path(
            classpath_product, a, example_jar_path)

        classpath_product.add_for_target(
            b, [('default', self.path('b/loose/classes/dir'))])
        classpath_product.add_for_target(
            a, [('default', self.path('a/loose/classes/dir')),
                ('default', self.path('an/internally/generated.jar'))])

        classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets(
            [a])
        self.assertEqual([
            (('default',
              ArtifactClasspathEntry(example_jar_path, resolved_jar.coordinate,
                                     resolved_jar.cache_path)), a),
            (('default', ClasspathEntry(self.path('a/loose/classes/dir'))), a),
            (('default',
              ClasspathEntry(self.path('an/internally/generated.jar'))), a)
        ], classpath_target_tuples)
예제 #2
0
    def test_get_product_target_mappings_for_targets_intransitive(self):
        b = self.make_target("b", JvmTarget, excludes=[Exclude("com.example", "lib")])
        a = self.make_target("a", JvmTarget, dependencies=[b])

        classpath_product = ClasspathProducts(self.pants_workdir)
        example_jar_path = self._example_jar_path()
        resolved_jar = self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path)

        classpath_product.add_for_target(b, [("default", self.path("b/loose/classes/dir"))])
        classpath_product.add_for_target(
            a, [("default", self.path("a/loose/classes/dir")), ("default", self.path("an/internally/generated.jar"))]
        )

        classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets([a])
        self.assertEqual(
            [
                (
                    (
                        "default",
                        ArtifactClasspathEntry(example_jar_path, resolved_jar.coordinate, resolved_jar.cache_path),
                    ),
                    a,
                ),
                (("default", ClasspathEntry(self.path("a/loose/classes/dir"))), a),
                (("default", ClasspathEntry(self.path("an/internally/generated.jar"))), a),
            ],
            classpath_target_tuples,
        )
예제 #3
0
  def test_get_product_target_mappings_for_targets_respect_excludes(self):
    a = self.make_target('a', JvmTarget, excludes=[Exclude('com.example', 'lib')])

    classpath_product = ClasspathProducts(self.pants_workdir)
    example_jar_path = self._example_jar_path()
    self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path)
    self.add_excludes_for_targets(classpath_product, a)

    classpath_by_product = classpath_product.get_product_target_mappings_for_targets([a])

    self.assertEqual([], classpath_by_product)
  def test_get_product_target_mappings_for_targets_respect_excludes(self):
    a = self.make_target('a', JvmTarget, excludes=[Exclude('com.example', 'lib')])

    classpath_product = ClasspathProducts(self.pants_workdir)
    example_jar_path = self._example_jar_path()
    self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path)
    self.add_excludes_for_targets(classpath_product, a)

    classpath_by_product = classpath_product.get_product_target_mappings_for_targets([a])

    self.assertEqual([], classpath_by_product)
예제 #5
0
    def test_get_product_target_mappings_for_targets_ignore_excludes(self):
        a = self.make_target("a", JvmTarget, excludes=[Exclude("com.example", "lib")])

        classpath_product = ClasspathProducts(self.pants_workdir)
        example_jar_path = self._example_jar_path()
        resolved_jar = self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path, conf="fred-conf")
        self.add_excludes_for_targets(classpath_product, a)

        classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets([a], respect_excludes=False)

        expected_entry = ArtifactClasspathEntry(example_jar_path, resolved_jar.coordinate, resolved_jar.cache_path)
        self.assertEqual([(("fred-conf", expected_entry), a)], classpath_target_tuples)
예제 #6
0
  def test_get_product_target_mappings_for_targets_ignore_excludes(self):
    a = self.make_target('a', JvmTarget, excludes=[Exclude('com.example', 'lib')])

    classpath_product = ClasspathProducts(self.pants_workdir)
    example_jar_path = self._example_jar_path()
    resolved_jar = self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path,
                                                           conf='fred-conf')
    self.add_excludes_for_targets(classpath_product, a)

    classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets([a], respect_excludes=False)

    expected_entry = ArtifactClasspathEntry(example_jar_path,
                                            resolved_jar.coordinate,
                                            resolved_jar.cache_path)
    self.assertEqual([(('fred-conf', expected_entry), a)], classpath_target_tuples)
예제 #7
0
    def test_get_product_target_mappings_for_targets_transitive(self):
        b = self.make_target("b",
                             JvmTarget,
                             excludes=[Exclude("com.example", "lib")])
        a = self.make_target("a", JvmTarget, dependencies=[b])

        classpath_product = ClasspathProducts(self.pants_workdir)
        example_jar_path = self._example_jar_path()
        resolved_jar = self.add_jar_classpath_element_for_path(
            classpath_product, a, example_jar_path)

        classpath_product.add_for_target(
            b, [("default", self.path("b/loose/classes/dir"))])
        classpath_product.add_for_target(
            a,
            [
                ("default", self.path("a/loose/classes/dir")),
                ("default", self.path("an/internally/generated.jar")),
            ],
        )

        classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets(
            a.closure(bfs=True))
        self.assertEqual(
            [
                (
                    (
                        "default",
                        ArtifactClasspathEntry(example_jar_path,
                                               resolved_jar.coordinate,
                                               resolved_jar.cache_path),
                    ),
                    a,
                ),
                (("default", ClasspathEntry(
                    self.path("a/loose/classes/dir"))), a),
                (("default",
                  ClasspathEntry(
                      self.path("an/internally/generated.jar"))), a),
                (("default", ClasspathEntry(
                    self.path("b/loose/classes/dir"))), b),
            ],
            classpath_target_tuples,
        )
  def test_get_product_target_mappings_for_targets_intransitive(self):
    b = self.make_target('b', JvmTarget, excludes=[Exclude('com.example', 'lib')])
    a = self.make_target('a', JvmTarget, dependencies=[b])

    classpath_product = ClasspathProducts(self.pants_workdir)
    example_jar_path = self._example_jar_path()
    resolved_jar = self.add_jar_classpath_element_for_path(classpath_product, a, example_jar_path)

    classpath_product.add_for_target(b, [('default', self.path('b/loose/classes/dir'))])
    classpath_product.add_for_target(a, [('default', self.path('a/loose/classes/dir')),
                                         ('default', self.path('an/internally/generated.jar'))])

    classpath_target_tuples = classpath_product.get_product_target_mappings_for_targets([a])
    self.assertEqual([
      (('default', ArtifactClasspathEntry(example_jar_path,
                                          resolved_jar.coordinate,
                                          resolved_jar.cache_path)), a),
      (('default', ClasspathEntry(self.path('a/loose/classes/dir'))), a),
      (('default', ClasspathEntry(self.path('an/internally/generated.jar'))), a)],
      classpath_target_tuples)