예제 #1
0
 def test_duplicate_rule_no_match(self):
     self.set_options(fail_fast=False)
     task, jvm_binary = self._setup_external_duplicate_with_rules(
         rules=JarRules([Skip('^com/twitter/commons/DoesNotExist.class$')]))
     conflicts_by_binary = task.execute()
     expected = {
         jvm_binary: {
             ('org.example-dups-0.0.1.jar', 'org.example-test-0.0.1.jar'):
             {'com/twitter/commons/Duplicate.class'}
         }
     }
     self.assertEqual(expected, conflicts_by_binary)
예제 #2
0
 def test_deploy_jar_rules(self):
   target = self.make_target(':foo',
                             JvmBinary,
                             main='com.example.Foo',
                             deploy_jar_rules=JarRules([Duplicate('foo', Duplicate.SKIP)],
                                                       default_dup_action=Duplicate.FAIL))
   jar_rules = target.deploy_jar_rules
   self.assertEquals(1, len(jar_rules.rules))
   self.assertEquals('foo', jar_rules.rules[0].apply_pattern.pattern)
   self.assertEquals(repr(Duplicate.SKIP),
                     repr(jar_rules.rules[0].action))  # <object object at 0x...>
   self.assertEquals(Duplicate.FAIL, jar_rules.default_dup_action)
예제 #3
0
    def test_jar_rules_field(self):
        field1 = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.SKIP)]))
        field1_same = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.SKIP)]))
        field2 = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.CONCAT)]))
        field3 = FingerprintedField(
            JarRules(rules=[Duplicate('bar', Duplicate.SKIP)]))
        field4 = FingerprintedField(
            JarRules(rules=[
                Duplicate('foo', Duplicate.SKIP),
                Duplicate('bar', Duplicate.SKIP)
            ]))
        field5 = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.SKIP),
                            Skip('foo')]))
        field6 = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.SKIP)],
                     default_dup_action=Duplicate.FAIL))
        field6_same = FingerprintedField(
            JarRules(rules=[Duplicate('foo', Duplicate.SKIP)],
                     default_dup_action=Duplicate.FAIL))
        field7 = FingerprintedField(JarRules(rules=[Skip('foo')]))
        field8 = FingerprintedField(JarRules(rules=[Skip('bar')]))
        field8_same = FingerprintedField(JarRules(rules=[Skip('bar')]))

        self.assertEquals(field1.fingerprint(), field1_same.fingerprint())
        self.assertEquals(field6.fingerprint(), field6_same.fingerprint())
        self.assertEquals(field8.fingerprint(), field8_same.fingerprint())
        self._assert_fingerprints_not_equal(
            [field1, field2, field3, field4, field5, field6, field7])
예제 #4
0
 def test_duplicate_rule_skip(self):
     self.set_options(fail_fast=False)
     task, _ = self._setup_external_duplicate_with_rules(
         rules=JarRules([Skip('^com/twitter/commons/Duplicate.class$')]))
     conflicts_by_binary = task.execute()
     self.assertEqual({}, conflicts_by_binary)