[csw-maintainers] [PATCH 4/5] checkpkg: Adding MakeCatalognameByPkgname
Maciej Blizinski
maciej at opencsw.org
Sat Feb 12 12:16:37 CET 2011
From: Maciej Bliziński <maciej at opencsw.org>
This function transforms pkgname to a catalogname.
---
gar/v2/lib/python/struct_util.py | 6 ++++++
gar/v2/lib/python/struct_util_test.py | 12 ++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/gar/v2/lib/python/struct_util.py b/gar/v2/lib/python/struct_util.py
index 389c4f8..cc02828 100644
--- a/gar/v2/lib/python/struct_util.py
+++ b/gar/v2/lib/python/struct_util.py
@@ -27,3 +27,9 @@ def ResolveSymlink(link_from, link_to):
def IsMd5(s):
# For optimization, moving the compilation to the top level.
return MD5_RE.match(s)
+
+
+def MakeCatalognameByPkgname(pkgname):
+ catalogname = re.sub(r'^CSW', '', pkgname)
+ catalogname = re.sub('[^A-Za-z0-9]', '_', catalogname)
+ return catalogname
diff --git a/gar/v2/lib/python/struct_util_test.py b/gar/v2/lib/python/struct_util_test.py
index 98d9dbd..6046ed6 100755
--- a/gar/v2/lib/python/struct_util_test.py
+++ b/gar/v2/lib/python/struct_util_test.py
@@ -47,5 +47,17 @@ class IndexByUnitTest(unittest.TestCase):
struct_util.ResolveSymlink("/opt/csw/bin/foo", "/libexec/foo-exec"))
+class MakeCatalognameByPkgnameTest(unittest.TestCase):
+
+ def testSimple(self):
+ self.assertEqual("foo", struct_util.MakeCatalognameByPkgname("CSWfoo"))
+
+ def testWithDash(self):
+ self.assertEqual("foo_bar", struct_util.MakeCatalognameByPkgname("CSWfoo-bar"))
+
+ def testWithDigits(self):
+ self.assertEqual("libfoo1_1", struct_util.MakeCatalognameByPkgname("CSWlibfoo1-1"))
+
+
if __name__ == '__main__':
unittest.main()
--
1.7.1
More information about the maintainers
mailing list