def test_match_name_multi(self): p1 = Package(name='p1', version='1.0') p2 = Package(name='p2', version='2.0') p3 = Package(name='p3', version='2.0') t = PackageTransformer(rulestext='[ { name: [p1,p2], setname: bar } ]') t.Process(p1) t.Process(p2) t.Process(p3) self.assertEqual(p1.effname, 'bar') self.assertEqual(p2.effname, 'bar') self.assertEqual(p3.effname, 'p3')
def test_match_ver(self): p1 = Package(name='p1', version='1.0') p2 = Package(name='p2', version='2.0') p3 = Package(name='p3', version='3.0') t = PackageTransformer( rulestext= '[ { ver: "1.0", setname: bar }, { ver: ["3.0"], setname: baz } ]') t.Process(p1) t.Process(p2) t.Process(p3) self.assertEqual(p1.effname, 'bar') self.assertEqual(p2.effname, 'p2') self.assertEqual(p3.effname, 'baz')
def test_match_category(self): p1 = Package(name='p1', version='1.0', category='foo') p2 = Package(name='p2', version='2.0', category='bar') p3 = Package(name='p3', version='3.0', category='baz') t = PackageTransformer( rulestext= '[ { category: foo, setname: quux }, { category: [ baz ] , setname: bat } ]' ) t.Process(p1) t.Process(p2) t.Process(p3) self.assertEqual(p1.effname, 'quux') self.assertEqual(p2.effname, 'p2') self.assertEqual(p3.effname, 'bat')
def test_match_verlonger(self): p1 = Package(name='p1', version='1.0.0') p2 = Package(name='p2', version='1.0') t = PackageTransformer(rulestext='[ { verlonger: 2, setname: bar } ]') t.Process(p1) t.Process(p2) self.assertEqual(p1.effname, 'bar') self.assertEqual(p2.effname, 'p2')
def test_match_namepat(self): p1 = Package(name='p1', version='1.0') p2 = Package(name='p2', version='2.0') t = PackageTransformer( rulestext='[ { namepat: ".*1", setname: bar } ]') t.Process(p1) t.Process(p2) self.assertEqual(p1.effname, 'bar') self.assertEqual(p2.effname, 'p2')
def check_transformer(self, rulestext, *packages): transformer = PackageTransformer(repomgr, rulestext=rulestext) for packagedict in packages: create_params = {} expected_params = {} for field, value in packagedict.items(): if field.startswith('expect_'): expected_params[field[7:]] = value else: create_params[field] = value package = Package(**create_params) transformer.Process(package) for field, value in expected_params.items(): self.assertEqual(package.__dict__[field], value)