コード例 #1
0
ファイル: test_struct.py プロジェクト: RobinTec/pants
  def test_extend(self):
    extends = Struct(age=32, label='green', items=[],
                            extends=Struct(age=42, other=True, items=[1, 2]))

    # Extension is lazy, so we don't pick up the other field yet.
    self.assertNotEqual(Struct(age=32, label='green', items=[], other=True), extends)

    # But we do pick it up now.
    self.assertEqual(Struct(age=32, label='green', items=[], other=True), extends.create())
コード例 #2
0
ファイル: test_struct.py プロジェクト: RobinTec/pants
 def test_extend_and_merge(self):
   extends_and_merges = Struct(age=32, label='green', items=[5],
                               extends=Struct(age=42,
                                              other=True,
                                              knobs={'a': True},
                                              items=[1, 2]),
                               merges=[Struct(age=52,
                                              other=False,
                                              items=[1, 3, 4],
                                              knobs={'a': False, 'b': True}),
                                       Struct(items=[2])])
   self.assertEqual(Struct(age=32,
                           label='green',
                           other=True,
                           items=[5, 1, 3, 4, 2],
                           knobs={'a': False, 'b': True}),
                    extends_and_merges.create())
コード例 #3
0
ファイル: test_struct.py プロジェクト: RobinTec/pants
  def test_merge(self):
    merges = Struct(age=32, items=[3], knobs={'b': False},
                           merges=[Struct(age=42,
                                          other=True,
                                          items=[1, 2],
                                          knobs={'a': True, 'b': True})])

    # Merging is lazy, so we don't pick up the other field yet.
    self.assertNotEqual(Struct(age=32,
                               items=[3, 1, 2],
                               knobs={'a': True, 'b': True},
                               other=True),
                        merges)

    # But we do pick it up now.
    self.assertEqual(Struct(age=32,
                            items=[3, 1, 2],
                            knobs={'a': True, 'b': True},
                            other=True),
                     merges.create())
コード例 #4
0
ファイル: test_mapper.py プロジェクト: neven7/pants
 def test_walk_addressables_rel_path(self):
   self.assertEqual({self.addr('a/d:d'): Target(name='d', type_alias='target'),
                     self.addr('a/d/e:e'): Target(name='e', type_alias='target'),
                     self.addr('a/d/e:e-prime'): Struct(name='e-prime', type_alias='struct')},
                    self.resolve_multi(DescendantAddresses('a/d')))
コード例 #5
0
 def test_walk_descendants_path_excludes(self):
     self.assertEqual(
         {
             self.addr('//:root'): Struct(name='root'),
             self.addr('a/d:d'): Target(name='d')
         }, self.resolve_multi(DescendantAddresses('')))
コード例 #6
0
ファイル: test_graph.py プロジェクト: kageiit/pants
    def do_test_codegen_simple(self, scheduler):
        def address(name):
            return Address(spec_path='graph_test', target_name=name)

        java1_address = address('java1')
        resolved_java1 = self.resolve(scheduler, java1_address)

        nonstrict_address = address('nonstrict')
        expected_nonstrict = ApacheThriftConfiguration(
            address=nonstrict_address,
            version='0.9.2',
            strict=False,
            lang='java')

        public_address = address('public')
        expected_public = Struct(
            address=public_address,
            url='https://oss.sonatype.org/#stagingRepositories')

        thrift2_address = address('thrift2')
        expected_java1 = Target(
            address=java1_address,
            sources={},
            configurations=[
                PublishConfiguration(
                    default_repo=expected_public,
                    repos={
                        'jake':
                        Struct(url='https://dl.bintray.com/pantsbuild/maven'),
                        'jane':
                        expected_public
                    }),
                expected_nonstrict,
                ApacheThriftConfiguration(
                    version='0.9.2',
                    strict=True,
                    lang='java',
                    dependencies=[address(thrift2_address)]),
            ])

        self.assertEqual(expected_java1, resolved_java1)

        resolved_nonstrict = self.resolve(scheduler, nonstrict_address)
        self.assertEqual(expected_nonstrict, resolved_nonstrict)
        self.assertEqual(expected_nonstrict, expected_java1.configurations[1])
        self.assertEquals(resolved_java1.configurations[1], resolved_nonstrict)

        resolved_public = self.resolve(scheduler, public_address)
        self.assertEqual(expected_public, resolved_public)
        self.assertEqual(expected_public,
                         expected_java1.configurations[0].default_repo)
        self.assertEqual(expected_public,
                         expected_java1.configurations[0].repos['jane'])
        self.assertEquals(resolved_java1.configurations[0].default_repo,
                          resolved_public)
        self.assertEquals(resolved_java1.configurations[0].repos['jane'],
                          resolved_public)

        # NB: `dependencies` lists must be explicitly requested by tasks, so we expect an Address.
        thrift1_address = address('thrift1')
        expected_thrift2 = Target(address=thrift2_address,
                                  dependencies=[thrift1_address])
        resolved_thrift2 = self.resolve(scheduler, thrift2_address)
        self.assertEqual(expected_thrift2, resolved_thrift2)

        expected_thrift1 = Target(address=thrift1_address)
        resolved_thrift1 = self.resolve(scheduler, thrift1_address)
        self.assertEqual(expected_thrift1, resolved_thrift1)
コード例 #7
0
 def test_address_name_conflict(self):
     with self.assertRaises(ValidationError):
         Struct(name='a', address=Address.parse('a:b'))
コード例 #8
0
 def test_address_no_name(self):
     config = Struct(address=Address.parse('a:b'))
     self.assertEqual('b', config.name)