コード例 #1
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterFlavors2(self):
     recipe = self.getRecipe()
     filt1 = trovefilter.TroveFilter(recipe, flavor='xen,domU is: x86')
     filt2 = trovefilter.TroveFilter(recipe, flavor='xen,domU is: x86_64')
     filt3 = trovefilter.TroveFilter(recipe,
                                     flavor='xen,domU is: x86_64 x86')
     nvf1 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('is: x86'))
     nvf2 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86'))
     nvf3 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86_64'))
     nvf4 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86 x86_64'))
     self.assertEquals(filt1.match((nvf1, )), False)
     self.assertEquals(filt1.match((nvf2, )), True)
     self.assertEquals(filt2.match((nvf2, )), False)
     self.assertEquals(filt2.match((nvf3, )), True)
     self.assertEquals(filt2.match((nvf4, )), False)
     self.assertEquals(filt3.match((nvf4, )), True)
     self.assertEquals(filt3.match((nvf1, )), False)
     self.assertEquals(filt3.match((nvf2, )), False)
     self.assertEquals(filt3.match((nvf3, )), False)
コード例 #2
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterFlavors3(self):
     recipe = self.getRecipe()
     filt1 = trovefilter.TroveFilter(recipe, flavor='xen,domU is: x86')
     filt2 = trovefilter.TroveFilter(
         recipe, flavor='xen,domU is: x86(sse, sse2, 486, 586, 686)')
     nvf1 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86'))
     nvf2 = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86(sse, sse2, 486, 586, 686)'))
     self.assertEquals(filt1.match((nvf1, )), True)
     self.assertEquals(filt2.match((nvf2, )), True)
     # most important test. x86 filter matches x86(sse)
     self.assertEquals(filt1.match((nvf2, )), True)
     self.assertEquals(filt2.match((nvf1, )), False)
コード例 #3
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterNot(self):
        recipe = self.getRecipe()
        filt = -trovefilter.TroveFilter(recipe, name='foo')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)
        nvf = ('bar', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)

        filt = ~trovefilter.TroveFilter(recipe, name='foo')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)
        nvf = ('bar', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
コード例 #4
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterMacros(self):
        recipe = self.getRecipe()
        recipe.macros.name = 'foo'
        # test a macro in the name element
        filt = trovefilter.TroveFilter(recipe,
                                       '%(name)s',
                                       version='test.rpath.local@rpl:linux')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)

        # test a macro in the version element
        filt = trovefilter.TroveFilter(
            recipe, '%(name)s', version='%(name)s.rpath.local@rpl:linux')
        nvf = ('foo', versions.VersionFromString( \
                '/foo.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
コード例 #5
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterVersion(self):
     recipe = self.getRecipe()
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='test.rpath.local@rpl:linux')
     filt2 = trovefilter.TroveFilter(recipe,
                                     'bar',
                                     version='test.rpath.local@rpl:linux')
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
     self.assertEquals(filt.match((nvf, )), True)
     self.assertEquals(filt2.match((nvf, )), False)
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='/test.rpath.local@rpl:linux')
     self.assertEquals(filt.match((nvf, )), True)
     filt = trovefilter.TroveFilter(
         recipe, 'foo', version='/test.rpath.local@rpl:linux/1-1-1')
     self.assertEquals(filt.match((nvf, )), True)
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='test.rpath.local@rpl:linux')
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:devel/1-1-1'), deps.parseFlavor(''))
     self.assertEquals(filt.match((nvf, )), False)
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='/test.rpath.local@rpl:linux')
     self.assertEquals(filt.match((nvf, )), False)
     filt = trovefilter.TroveFilter(
         recipe, 'foo', version='/test.rpath.local@rpl:linux/1-1-1')
     self.assertEquals(filt.match((nvf, )), False)
コード例 #6
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterBlank(self):
     recipe = self.getRecipe()
     filt = trovefilter.TroveFilter(recipe)
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
     self.assertEquals(filt.match((nvf, )), True)
     nvf = ('bar', versions.VersionFromString( \
             '/test.rpath.local@rpl:devel/1.0-6-4'), deps.parseFlavor(''))
     self.assertEquals(filt.match((nvf, )), True)
コード例 #7
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testBadTroveFilters(self):
        recipe = self.getRecipe()
        filt = trovefilter.AbstractFilter()
        self.assertRaises(NotImplementedError, filt.match)

        try:
            filt = trovefilter.TroveFilter(recipe, 'foo(')
        except RuntimeError, e:
            self.assertEquals(str(e), "Bad Regexp: 'foo(' for name")
コード例 #8
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterOr(self):
        recipe = self.getRecipe()
        filt1 = trovefilter.TroveFilter(recipe, name='foo')
        filt2 = trovefilter.TroveFilter(recipe, name='group-foo')
        filt3 = filt1 - filt2
        filt4 = filt1 + -filt2
        filt5 = filt2 - filt1
        filt6 = filt2 | filt1

        nvf1 = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        nvf2 = ('group-foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt3.match((nvf1, nvf2)), True)
        self.assertEquals(filt3.match((nvf2, )), False)
        self.assertEquals(filt4.match((nvf1, nvf2)), True)
        self.assertEquals(filt5.match((nvf1, nvf2)), True)
        self.assertEquals(filt5.match((nvf1, )), False)
        self.assertEquals(filt6.match((nvf1, nvf2)), True)
コード例 #9
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterBasics(self):
     recipe = self.getRecipe()
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='test.rpath.local@rpl:devel')
     nvf = cmdline.parseTroveSpec('foo=test.rpath.local@rpl:devel')
     self.assertEquals(filt.match((nvf, )), True)
     nvf = cmdline.parseTroveSpec('foo=foo.rpath.local@rpl:devel')
     self.assertEquals(filt.match((nvf, )), False)
     filt = trovefilter.TroveFilter(recipe,
                                    'foo',
                                    version='/test.rpath.local@rpl:devel')
     nvf = cmdline.parseTroveSpec('foo=/test.rpath.local@rpl:devel')
     self.assertEquals(filt.match((nvf, )), True)
     nvf = cmdline.parseTroveSpec('foo=/foo.rpath.local@rpl:devel')
     self.assertEquals(filt.match((nvf, )), False)
     filt = trovefilter.TroveFilter(
         recipe, 'foo', version='/test.rpath.local@rpl:devel/1-1-1')
     nvf = cmdline.parseTroveSpec('foo=/test.rpath.local@rpl:devel/1-1-1')
     self.assertEquals(filt.match((nvf, )), True)
     nvf = cmdline.parseTroveSpec('foo=/foo.rpath.local@rpl:devel/1-1-1')
     self.assertEquals(filt.match((nvf, )), False)
コード例 #10
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
 def testTroveFilterFlavors(self):
     recipe = self.getRecipe()
     filt = trovefilter.TroveFilter(recipe, flavor='xen,domU')
     filt2 = trovefilter.TroveFilter(recipe, name='bar', flavor='xen,domU')
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
     self.assertEquals(filt.match((nvf, )), False)
     self.assertEquals(filt2.match((nvf, )), False)
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86'))
     self.assertEquals(filt.match((nvf, )), True)
     self.assertEquals(filt2.match((nvf, )), False)
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             deps.parseFlavor('xen,domU is: x86_64'))
     self.assertEquals(filt.match((nvf, )), True)
     self.assertEquals(filt2.match((nvf, )), False)
     nvf = ('foo', versions.VersionFromString( \
             '/test.rpath.local@rpl:linux/1-1-1'),
             'xen,domU is: x86_64')
     self.assertEquals(filt.match((nvf, )), True)
     self.assertEquals(filt2.match((nvf, )), False)
コード例 #11
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterRevision(self):
        recipe = self.getRecipe()
        filt = trovefilter.TroveFilter(recipe, version='1.1-1-1')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1-1-2'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)

        filt = trovefilter.TroveFilter(recipe, version='1.1-1')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-1-2'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-2'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.2-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)

        filt = trovefilter.TroveFilter(recipe, version='1.1')
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-1-2'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.1-2-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)
        nvf = ('foo', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1.2-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)

        filt = trovefilter.TroveFilter(recipe, version='')
        self.assertEquals(filt.match((nvf, )), True)
コード例 #12
0
    def testTroveWalk(self):
        recipe = self.getRecipe()
        fooData = self.getTrove('foo:data')
        fooDebuginfo = self.getTrove('foo:debuginfo', byDefault=False)
        foo = self.getTrove('foo', troveList=[fooData, fooDebuginfo])
        cache = FakeCache({
            fooData.getNameVersionFlavor(): fooData,
            fooDebuginfo.getNameVersionFlavor(): fooDebuginfo,
            foo.getNameVersionFlavor(): foo
        })
        dummyGroup = self.getTrove('group-test', troveList=[foo], cache=cache)
        dummyGroup.imageGroup = False
        recipe.groups = {dummyGroup.getName(): dummyGroup}
        recipe.troveMap = {dummyGroup.getNameVersionFlavor(): dummyGroup}

        class RecordPolicy(policy.GroupEnforcementPolicy):
            def __init__(x, *args, **kwargs):
                x.troveSets = []
                policy.GroupEnforcementPolicy.__init__(x, *args, **kwargs)

            def doTroveSet(x, troveSet):
                x.troveSets.append(troveSet)

        pol = RecordPolicy(recipe)
        pol.inclusionFilters = [trovefilter.TroveFilter(recipe, name='.*')]
        pol.exceptionFilters = []
        pol.checkImageGroups = True
        pol.do()
        self.assertEquals(pol.troveSets, [])
        pol.checkImageGroups = False
        pol.do()
        fooPath = ([
            dummyGroup.getNameVersionFlavor(),
            foo.getNameVersionFlavor()
        ], True, True)
        fooDataPath = ([
            dummyGroup.getNameVersionFlavor(),
            foo.getNameVersionFlavor(),
            fooData.getNameVersionFlavor()
        ], True, False)
        fooDebuginfoPath = ([
            dummyGroup.getNameVersionFlavor(),
            foo.getNameVersionFlavor(),
            fooDebuginfo.getNameVersionFlavor()
        ], False, False)
        troveSets = [[fooPath, fooDataPath, fooDebuginfoPath]]
        self.assertEquals(pol.troveSets, troveSets)
        self.assertEquals([x[0] for x in troveSets[0]],
                          [x for x in pol.walkTrove([], cache, dummyGroup)])
コード例 #13
0
    def compileFilters(self, expressionList, filterList, unusedList=None):
        seen = []
        if unusedList is not None:
            newUnused = []
            # fix up the unused list, updateArgs is unaware of specific
            # filter types
            for expression in list(unusedList)[:]:
                if isinstance(expression, str):
                    unusedList.discard(expression)
                    expression = trovefilter.TroveFilter(self.recipe,
                                                         name=expression)
                newUnused.append(expression)
            unusedList.update(newUnused)

        for expression in expressionList:
            if isinstance(expression, str):
                expression = trovefilter.TroveFilter(self.recipe,
                                                     name=expression)
            if expression in seen:
                # only put each expression on the list once
                continue
            expression.compile()
            seen.append(expression)
            filterList.append(expression)
コード例 #14
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterRegexps(self):
        recipe = self.getRecipe()
        recipe.macros.name = 'foo'
        # test a regexp in the name element
        filt = trovefilter.TroveFilter(recipe,
                                       '%(name)s1+',
                                       version='test.rpath.local@rpl:linux')
        nvf = ('foo11', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), True)

        # test that name regexp is anchored
        nvf = ('foo113', versions.VersionFromString( \
                '/test.rpath.local@rpl:linux/1-1-1'), deps.parseFlavor(''))
        self.assertEquals(filt.match((nvf, )), False)
コード例 #15
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    def testTroveFilterEquality(self):
        recipe = self.getRecipe()
        filt1 = trovefilter.TroveFilter(recipe, name='foo')
        filt2 = trovefilter.TroveFilter(recipe, name='group-foo')
        self.assertNotEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe, name='foo')
        filt2 = trovefilter.TroveFilter(recipe, name='foo')
        self.assertEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux')
        filt2 = trovefilter.TroveFilter(recipe, name='foo')
        self.assertNotEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux')
        filt2 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux')
        self.assertEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux')
        filt2 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='/c.r.c@rpl:linux')
        self.assertNotEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux',
                                        flavor='is: x86')
        filt2 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux')
        self.assertNotEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe, name='foo', flavor='is: x86')
        filt2 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        flavor='is: x86 x86_64')
        self.assertNotEquals(filt1, filt2)

        filt1 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux',
                                        flavor='is: x86')
        filt2 = trovefilter.TroveFilter(recipe,
                                        name='foo',
                                        version='c.r.c@rpl:linux',
                                        flavor='is: x86')
        self.assertEquals(filt1, filt2)
コード例 #16
0
    def testMultiTroveWalk(self):
        recipe = self.getRecipe()
        fooData = self.getTrove('foo:data')
        fooDebuginfo = self.getTrove('foo:debuginfo', byDefault=False)
        foo = self.getTrove('foo', troveList=[fooData, fooDebuginfo])
        barData = self.getTrove('bar:data')
        barDebuginfo = self.getTrove('bar:debuginfo', byDefault=False)
        bar = self.getTrove('bar', troveList=[barData, barDebuginfo])
        cache = FakeCache({
            fooData.getNameVersionFlavor(): fooData,
            fooDebuginfo.getNameVersionFlavor(): fooDebuginfo,
            foo.getNameVersionFlavor(): foo
        })
        subGroupFoo = self.getTrove('group-foo', troveList=[foo], cache=cache)
        subGroupFoo.imageGroup = True
        cache = FakeCache({
            barData.getNameVersionFlavor(): barData,
            barDebuginfo.getNameVersionFlavor(): barDebuginfo,
            bar.getNameVersionFlavor(): bar
        })
        subGroupBar = self.getTrove('group-bar', troveList=[bar], cache=cache)
        subGroupBar.imageGroup = True
        cache = FakeCache({
            fooData.getNameVersionFlavor(): fooData,
            fooDebuginfo.getNameVersionFlavor(): fooDebuginfo,
            foo.getNameVersionFlavor(): foo,
            barData.getNameVersionFlavor(): barData,
            barDebuginfo.getNameVersionFlavor(): barDebuginfo,
            bar.getNameVersionFlavor(): bar
        })

        dummyGroup = self.getTrove('group-test',
                                   troveList=[subGroupFoo, subGroupBar],
                                   cache=cache)
        dummyGroup.imageGroup = False

        recipe.groups = FakeCache({
            dummyGroup.getName(): dummyGroup,
            subGroupFoo.getName(): subGroupFoo,
            subGroupBar.getName(): subGroupBar
        })
        recipe.troveMap = {
            dummyGroup.getNameVersionFlavor(): dummyGroup,
            subGroupFoo.getNameVersionFlavor(): subGroupFoo,
            subGroupBar.getNameVersionFlavor(): subGroupBar,
        }

        class RecordPolicy(policy.GroupEnforcementPolicy):
            def __init__(x, *args, **kwargs):
                x.troveSets = []
                policy.GroupEnforcementPolicy.__init__(x, *args, **kwargs)

            def doTroveSet(x, troveSet):
                x.troveSets.append(troveSet)

        pol = RecordPolicy(recipe)
        pol.inclusionFilters = [trovefilter.TroveFilter(recipe, name='.*')]
        pol.exceptionFilters = []
        pol.checkImageGroups = True
        pol.do()

        fooPath = ([
            subGroupFoo.getNameVersionFlavor(),
            foo.getNameVersionFlavor()
        ], True, True)
        fooDataPath = ([
            subGroupFoo.getNameVersionFlavor(),
            foo.getNameVersionFlavor(),
            fooData.getNameVersionFlavor()
        ], True, False)
        fooDebuginfoPath = ([
            subGroupFoo.getNameVersionFlavor(),
            foo.getNameVersionFlavor(),
            fooDebuginfo.getNameVersionFlavor()
        ], False, False)
        barPath = ([
            subGroupBar.getNameVersionFlavor(),
            bar.getNameVersionFlavor()
        ], True, True)
        barDataPath = ([
            subGroupBar.getNameVersionFlavor(),
            bar.getNameVersionFlavor(),
            barData.getNameVersionFlavor()
        ], True, False)
        barDebuginfoPath = ([
            subGroupBar.getNameVersionFlavor(),
            bar.getNameVersionFlavor(),
            barDebuginfo.getNameVersionFlavor()
        ], False, False)
        troveSets = sorted([[fooPath, fooDataPath, fooDebuginfoPath],
                            [barPath, barDataPath, barDebuginfoPath]])
        self.assertEquals(sorted(pol.troveSets), troveSets)
コード例 #17
0
ファイル: expansiontest.py プロジェクト: tensor5/conary
    @testhelp.context('trove-filter')
    def testBadTroveFilters(self):
        recipe = self.getRecipe()
        filt = trovefilter.AbstractFilter()
        self.assertRaises(NotImplementedError, filt.match)

        try:
            filt = trovefilter.TroveFilter(recipe, 'foo(')
        except RuntimeError, e:
            self.assertEquals(str(e), "Bad Regexp: 'foo(' for name")
        else:
            self.fail("Expected RuntimeError")

        nvf = cmdline.parseTroveSpec('foo=/test.rpath.local@rpl:devel')
        filt = trovefilter.TroveFilter(recipe, 'foo')
        self.assertEquals(filt.match((nvf, )), True)
        filt.compile()
        filt.versionType = True
        filt.version = 'foo'
        self.assertEquals(filt.match((nvf, )), False)

    @testhelp.context('trove-filter')
    def testTroveFilterVersion(self):
        recipe = self.getRecipe()
        filt = trovefilter.TroveFilter(recipe,
                                       'foo',
                                       version='test.rpath.local@rpl:linux')
        filt2 = trovefilter.TroveFilter(recipe,
                                        'bar',
                                        version='test.rpath.local@rpl:linux')