コード例 #1
0
ファイル: test_group_task.py プロジェクト: aoen/pants
    def setUp(self):
        super(GroupTaskTest, self).setUp()

        self.a = self.make_target('src/java:a', JavaLibrary)
        self.b = self.make_target('src/scala:b',
                                  ScalaLibrary,
                                  dependencies=[self.a])
        self.c = self.make_target('src/java:c',
                                  JavaLibrary,
                                  dependencies=[self.b])
        self.d = self.make_target('src/scala:d',
                                  ScalaLibrary,
                                  dependencies=[self.c])
        self.e = self.make_target('src/java:e',
                                  JavaLibrary,
                                  dependencies=[self.d])
        f = self.make_target('src/python:f', PythonLibrary)

        self._context = self.context(target_roots=[self.e, f])

        exclusives_mapping = ExclusivesMapping(self._context)
        exclusives_mapping._populate_target_maps(self._context.targets())
        self._context.products.safe_create_data('exclusives_groups',
                                                lambda: exclusives_mapping)

        self.recorded_actions = []
コード例 #2
0
ファイル: test_jvmdoc_gen.py プロジェクト: sheltowt/pants
    def setUp(self):
        super(JvmdocGenTest, self).setUp()
        self.workdir = safe_mkdtemp()

        self.t1 = self.make_target('t1', exclusives={'foo': 'a'})
        # Force exclusive propagation on the targets.
        self.t1.get_all_exclusives()
        context = self.context(target_roots=[self.t1], options=options)

        # Create the exclusives mapping.
        exclusives_mapping = ExclusivesMapping(context)
        exclusives_mapping._populate_target_maps(context.targets())
        exclusives_mapping.set_base_classpath_for_group('foo=a', ['baz'])
        context.products.safe_create_data('exclusives_groups',
                                          lambda: exclusives_mapping)

        self.task = DummyJvmdocGen(context, self.workdir)
コード例 #3
0
ファイル: test_group_task.py プロジェクト: sheltowt/pants
  def setUp(self):
    super(BaseGroupTaskTest, self).setUp()
    self._context = self.context(target_roots=self.create_targets())

    exclusives_mapping = ExclusivesMapping(self._context)
    exclusives_mapping._populate_target_maps(self._context.targets())
    self._context.products.safe_create_data('exclusives_groups', lambda: exclusives_mapping)

    self.recorded_actions = []
    # NB: GroupTask has a cache of tasks by name... use a distinct name
    self.group_task = GroupTask.named('jvm-compile-%s' % uuid.uuid4().hex,
                                      ['classes_by_target', 'classes_by_source'])
    self.group_task.add_member(self.group_member('javac', lambda t: t.is_java))
    self.group_task.add_member(self.group_member('scalac', lambda t: t.is_scala))

    self.task = self.group_task(self._context, workdir='/not/real')
    self.task.prepare(round_manager=RoundManager(self._context))
    self.task.execute()
コード例 #4
0
ファイル: test_jvm_task.py プロジェクト: sheltowt/pants
    def setUp(self):
        super(JvmTaskTest, self).setUp()
        self.workdir = safe_mkdtemp()

        self.t1 = self.make_target('t1', exclusives={'foo': 'a'})
        self.t2 = self.make_target('t2', exclusives={'foo': 'a'})
        self.t3 = self.make_target('t3', exclusives={'foo': 'b'})
        # Force exclusive propagation on the targets.
        self.t1.get_all_exclusives()
        self.t2.get_all_exclusives()
        self.t3.get_all_exclusives()
        context = self.context(target_roots=[self.t1, self.t2, self.t3])

        # Create the exclusives mapping.
        exclusives_mapping = ExclusivesMapping(context)
        exclusives_mapping.add_conflict('foo', ['a', 'b'])
        exclusives_mapping._populate_target_maps(context.targets())
        context.products.safe_create_data('exclusives_groups',
                                          lambda: exclusives_mapping)

        self.task = DummyJvmTask(context, self.workdir)
コード例 #5
0
    def populate_exclusive_groups(self,
                                  context,
                                  key=None,
                                  classpaths=None,
                                  target_predicate=None):
        """
    Helps actual test cases to populate the "exclusives_groups" products data mapping
    in the context, which holds the classpath values for targets.

    :param context: The execution context where the products data mapping lives.
    :param key: key for list of classpaths in the "exclusives_groups" data mapping.
      None is the default value for most common cases.
    :param classpaths: a list of classpath strings. If not specified, ['none'] will be used.
    :param target_predicate: filter predicate for the context.targets(). For most common test
      cases, None value is good enough.
    """
        exclusives_mapping = ExclusivesMapping(context)
        exclusives_mapping.set_base_classpath_for_group(
            key or '<none>',
            [('default', entry) for entry in classpaths or ['none']])
        exclusives_mapping._populate_target_maps(
            context.targets(target_predicate))
        context.products.safe_create_data('exclusives_groups',
                                          lambda: exclusives_mapping)