Example #1
0
    def test_match(self):
        prod_cert = StubProductCertificate(
            product=StubProduct(name="test*product?", product_id="123456789"))

        test_data = [
            (None, prod_cert, False),
            ("", prod_cert, False),
            ("test", prod_cert, False),
            ("product", prod_cert, False),
            (r"test\*product\?", prod_cert, True),
            ("test*", prod_cert, True),
            ("test*********", prod_cert, True),
            ("test?????????", prod_cert, True),
            ("*product?", prod_cert, True),
            ("*product\\?", prod_cert, True),
            ("?????product*", prod_cert, True),
            ("*****product*", prod_cert, True),
            ("?????????????", prod_cert, True),
            ("*************", prod_cert, True),
            ("??**??*??**??", prod_cert, True),
            ("**??**?**??**", prod_cert, True),
            ("test?product\\?", prod_cert, True),
            ("test*product?", prod_cert, True),
            ("test*nope", prod_cert, False),
            ("nope*product", prod_cert, False),
            ("*nope*", prod_cert, False),
            ("test*nope*product", prod_cert, False),
            ("1234*", prod_cert, True),
            ("*4567*", prod_cert, True),
            ("123???789", prod_cert, True),
            ("??34567??", prod_cert, True),
            ("*4?6*", prod_cert, True),
            ("1234", prod_cert, False),
            ("??123456789", prod_cert, False),
        ]

        for (index, data) in enumerate(test_data):
            cert_filter = ProductCertificateFilter(filter_string=data[0])
            result = cert_filter.match(data[1])

            self.assertEqual(
                result,
                data[2],
                "ProductCertificateFilter.match failed with data set %i.\nActual:   %s\nExpected: %s"
                % (index, result, data[2]),
            )
Example #2
0
    def test_set_filter_string(self):
        test_data = [
            (None, True),
            ("", True),
            ("test", True),
            ("?", True),
            ("*", True),
            ("\\?", True),
            ("\\*", True),
            ("\\\\", True),
            ("*test*", True),
            ("*test\\?", True),
            ("a?b\\\\*c\\?d", True),
            ("**", True),
            ("??", True),
            ("*?", True),
            ("?*", True),
            ("te**st", True),
            ("te*?st", True),
            ("te?*st", True),
            ("te??st", True),
            ("*te\\st*", True),
            ("*te\\\\st*", True),
            (r"\*te\*\?st*", True),
            (123, False),
            (True, False),
            (False, False),
            (["nope"], False),
            ({
                "key": "value"
            }, False),
        ]

        for (index, data) in enumerate(test_data):
            cert_filter = ProductCertificateFilter()
            result = cert_filter.set_filter_string(data[0])

            self.assertEqual(
                result,
                data[1],
                "ProductCertificateFilter.set_filter_string failed with data set %i.\nActual:   %s\nExpected: %s)"
                % (index, result, data[1]),
            )
    def test_match(self):
        prod_cert = StubProductCertificate(product=StubProduct(name="test*product?", product_id="123456789"))

        test_data = [
            (None, prod_cert, False),
            ("", prod_cert, False),
            ("test", prod_cert, False),
            ("product", prod_cert, False),
            ("test\*product\?", prod_cert, True),
            ("test*", prod_cert, True),
            ("test*********", prod_cert, True),
            ("test?????????", prod_cert, True),
            ("*product?", prod_cert, True),
            ("*product\?", prod_cert, True),
            ("?????product*", prod_cert, True),
            ("*****product*", prod_cert, True),
            ("?????????????", prod_cert, True),
            ("*************", prod_cert, True),
            ("??**??*??**??", prod_cert, True),
            ("**??**?**??**", prod_cert, True),
            ("test?product\?", prod_cert, True),
            ("test*product?", prod_cert, True),
            ("test*nope", prod_cert, False),
            ("nope*product", prod_cert, False),
            ("*nope*", prod_cert, False),
            ("test*nope*product", prod_cert, False),

            ("1234*", prod_cert, True),
            ("*4567*", prod_cert, True),
            ("123???789", prod_cert, True),
            ("??34567??", prod_cert, True),
            ("*4?6*", prod_cert, True),
            ("1234", prod_cert, False),
            ("??123456789", prod_cert, False),
        ]

        for (index, data) in enumerate(test_data):
            cert_filter = ProductCertificateFilter(filter_string=data[0])
            result = cert_filter.match(data[1])

            self.assertEqual(result, data[2], "ProductCertificateFilter.match failed with data set %i.\nActual:   %s\nExpected: %s" % (index, result, data[2]))
    def test_set_filter_string(self):
        test_data = [
            (None, True),

            ("", True),
            ("test", True),
            ("?", True),
            ("*", True),
            ("\\?", True),
            ("\\*", True),
            ("\\\\", True),
            ("*test*", True),
            ("*test\\?", True),
            ("a?b\\\\*c\\?d", True),
            ("**", True),
            ("??", True),
            ("*?", True),
            ("?*", True),
            ("te**st", True),
            ("te*?st", True),
            ("te?*st", True),
            ("te??st", True),
            ("*te\\st*", True),
            ("*te\\\\st*", True),
            ("*te\*\?st*", True),

            (123, False),
            (True, False),
            (False, False),
            (["nope"], False),
            ({"key": "value"}, False)
        ]

        for (index, data) in enumerate(test_data):
            cert_filter = ProductCertificateFilter()
            result = cert_filter.set_filter_string(data[0])

            self.assertEqual(result, data[1], "ProductCertificateFilter.set_filter_string failed with data set %i.\nActual:   %s\nExpected: %s)" % (index, result, data[1]))