| # test_isvalidatom.py -- Portage Unit Testing Functionality |
| # Copyright 2006 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| from portage.tests import TestCase |
| from portage.dep import isvalidatom |
| import portage.dep |
| portage.dep._dep_check_strict = True |
| |
| class IsValidAtom(TestCase): |
| """ A simple testcase for isvalidatom |
| """ |
| |
| def testIsValidAtom(self): |
| |
| tests = [ ( "sys-apps/portage", True ), |
| ( "=sys-apps/portage-2.1", True ), |
| ( "=sys-apps/portage-2.1*", True ), |
| ( ">=sys-apps/portage-2.1", True ), |
| ( "<=sys-apps/portage-2.1", True ), |
| ( ">sys-apps/portage-2.1", True ), |
| ( "<sys-apps/portage-2.1", True ), |
| ( "~sys-apps/portage-2.1", True ), |
| ( "sys-apps/portage:foo", True ), |
| ( "sys-apps/portage-2.1:foo", False ), |
| ( "sys-apps/portage-2.1:", False ), |
| ( "=sys-apps/portage-2.2*:foo[bar?,!baz?,!doc=,build=]", True ), |
| ( "=sys-apps/portage-2.2*:foo[doc?]", True ), |
| ( "=sys-apps/portage-2.2*:foo[!doc?]", True ), |
| ( "=sys-apps/portage-2.2*:foo[doc=]", True ), |
| ( "=sys-apps/portage-2.2*:foo[!doc=]", True ), |
| ( "=sys-apps/portage-2.2*:foo[!doc]", False ), |
| ( "=sys-apps/portage-2.2*:foo[!-doc]", False ), |
| ( "=sys-apps/portage-2.2*:foo[!-doc=]", False ), |
| ( "=sys-apps/portage-2.2*:foo[!-doc?]", False ), |
| ( "=sys-apps/portage-2.2*:foo[-doc?]", False ), |
| ( "=sys-apps/portage-2.2*:foo[-doc=]", False ), |
| ( "=sys-apps/portage-2.2*:foo[-doc!=]", False ), |
| ( "=sys-apps/portage-2.2*:foo[-doc=]", False ), |
| ( "=sys-apps/portage-2.2*:foo[bar][-baz][doc?][!build?]", False ), |
| ( "=sys-apps/portage-2.2*:foo[bar,-baz,doc?,!build?]", True ), |
| ( "=sys-apps/portage-2.2*:foo[bar,-baz,doc?,!build?,]", False ), |
| ( "=sys-apps/portage-2.2*:foo[,bar,-baz,doc?,!build?]", False ), |
| ( "=sys-apps/portage-2.2*:foo[bar,-baz][doc?,!build?]", False ), |
| ( "=sys-apps/portage-2.2*:foo[bar][doc,build]", False ), |
| ( ">~cate-gory/foo-1.0", False ), |
| ( ">~category/foo-1.0", False ), |
| ( "<~category/foo-1.0", False ), |
| ( "###cat/foo-1.0", False ), |
| ( "~sys-apps/portage", False ), |
| ( "portage", False ), |
| ( "=portage", False ), |
| ( ">=portage-2.1", False ), |
| ( "~portage-2.1", False ), |
| ( "=portage-2.1*", False ), |
| ( "null/portage", True ), |
| ( "=null/portage", False ), |
| ( "=null/portage*", False ), |
| ( ">=null/portage-2.1", True ), |
| ( "~null/portage-2.1", True ), |
| ( "=null/portage-2.1*", True ),] |
| |
| for test in tests: |
| if test[1]: |
| atom_type = "valid" |
| else: |
| atom_type = "invalid" |
| self.assertEqual( bool(isvalidatom( test[0] )), test[1], |
| msg="isvalidatom(%s) != %s" % ( test[0], test[1] ) ) |