def test_set_service_level(self): test_data = [ (None, True), ("", True), ("Bacon", True), ("Cheese", True), ("Burger", True), (123, False), (True, False), (False, False), (["nope"], False), ({ "key": "value" }, False), ] for (index, data) in enumerate(test_data): cert_filter = EntitlementCertificateFilter() result = cert_filter.set_service_level(data[0]) self.assertEqual( result, data[1], "EntitlementCertificateFilter.set_service_level failed with data set %i.\nActual: %s\nExpected: %s)" % (index, result, data[1]), )
def test_match(self): ent_cert = StubEntitlementCertificate(product=StubProduct(name="test*entitlement?", product_id="123456789"), service_level="Premium", provided_products=[ "test product b", "beta product 1", "shared product", "back\\slash" ]) # Order information is hard-coded in the stub, so we've to modify it # separately: ent_cert.order.contract = "Contract-A" no_sla_ent_cert = StubEntitlementCertificate( product=StubProduct(name="nobodycares", product_id="123456789"), service_level=None, provided_products=[]) test_data = [ (None, None, ent_cert, False), ("*entitlement*", None, ent_cert, True), ("*shared*", None, ent_cert, True), ("beta*", None, ent_cert, True), ("123456789", None, ent_cert, True), ("prem*", None, ent_cert, True), # service level via --contains-text vs --servicelevel ("*contract*", None, ent_cert, True), ("contract-a", None, ent_cert, True), ("contract-b", None, ent_cert, False), ("*entitlement*", "Premium", ent_cert, True), ("*shared*", "Premium", ent_cert, True), ("beta*", "Premium", ent_cert, True), ("123456789", "Premium", ent_cert, True), ("prem*", "Premium", ent_cert, True), # ^ ("*contract*", "Premium", ent_cert, True), ("contract-a", "Premium", ent_cert, True), ("contract-b", "Premium", ent_cert, False), ("*entitlement*", "Standard", ent_cert, False), ("*shared*", "Standard", ent_cert, False), ("beta*", "Standard", ent_cert, False), ("123456789", "Standard", ent_cert, False), ("prem*", "Standard", ent_cert, False), # ^ ("*contract*", "Standard", ent_cert, False), ("contract-a", "Standard", ent_cert, False), ("contract-b", "Standard", ent_cert, False), (None, "Premium", ent_cert, True), (None, "pReMiUm", ent_cert, True), (None, "Standard", ent_cert, False), (None, "sTANDard", ent_cert, False), (None, "aslfk;", ent_cert, False), (None, "", ent_cert, False), (None, "", no_sla_ent_cert, True), ] for (index, data) in enumerate(test_data): cert_filter = EntitlementCertificateFilter( filter_string=data[0], service_level=data[1]) result = cert_filter.match(data[2]) self.assertEquals(result, data[3], "EntitlementCertificateFilter.match failed with data set %i.\nActual: %s\nExpected: %s" % (index, result, data[3]))