pungi/tests/test_pathmatch.py

65 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
import unittest
from pungi.pathmatch import PathMatch, head_tail_split
class TestHeadTailSplit(unittest.TestCase):
def test_1(self):
head, tail = head_tail_split("a")
self.assertEqual(head, "a")
self.assertEqual(tail, None)
head, tail = head_tail_split("/*")
self.assertEqual(head, "*")
self.assertEqual(tail, None)
head, tail = head_tail_split("///*")
self.assertEqual(head, "*")
self.assertEqual(tail, None)
head, tail = head_tail_split("///*//")
self.assertEqual(head, "*")
self.assertEqual(tail, None)
head, tail = head_tail_split("///*//-")
self.assertEqual(head, "*")
self.assertEqual(tail, "-")
class TestPathMatch(unittest.TestCase):
def setUp(self):
self.pm = PathMatch()
def test_1(self):
self.pm["/*"] = "/star1"
self.assertEqual(list(self.pm._final_patterns.keys()), ["*"])
self.assertEqual(self.pm._values, [])
self.assertEqual(self.pm._final_patterns["*"]._values, ["/star1"])
self.assertEqual(sorted(self.pm["/lib"]), ["/star1"])
self.pm["/*"] = "/star2"
self.assertEqual(sorted(self.pm["/lib"]), ["/star1", "/star2"])
self.pm["/lib"] = "/lib"
self.assertEqual(sorted(self.pm["/lib"]), ["/lib", "/star1", "/star2"])
self.pm["/lib64"] = "/lib64"
self.assertEqual(sorted(self.pm["/lib64"]), ["/lib64", "/star1", "/star2"])
def test_2(self):
self.pm["/*/*"] = "/star/star1"
self.assertEqual(list(self.pm._patterns.keys()), ["*"])
self.assertEqual(list(self.pm._patterns["*"]._final_patterns.keys()), ["*"])
self.assertEqual(
self.pm._patterns["*"]._final_patterns["*"]._values, ["/star/star1"]
)
self.assertEqual(sorted(self.pm["/lib/asd"]), ["/star/star1"])
self.pm["/*"] = "/star2"
self.assertEqual(sorted(self.pm["/lib"]), ["/star2"])
self.assertEqual(sorted(self.pm["/lib/foo"]), ["/star/star1", "/star2"])