add regex validator

This commit is contained in:
Jakob Ketterl 2021-01-24 22:03:53 +01:00
parent 49577953c6
commit a880b1f6f9
2 changed files with 22 additions and 0 deletions

View File

@ -1,6 +1,7 @@
from abc import ABC, abstractmethod
from functools import reduce
from operator import or_
import re
class ValidatorException(Exception):
@ -78,6 +79,14 @@ class NumberValidator(OrValidator):
super().__init__(IntegerValidator(), FloatValidator())
class RegexValidator(Validator):
def __init__(self, regex: re.Pattern):
self.regex = regex
def isValid(self, value):
return self.regex.match(value) is not None
validator_types = {
"string": StringValidator,
"str": StringValidator,

View File

@ -0,0 +1,13 @@
from unittest import TestCase
from owrx.property.validators import RegexValidator
import re
class RegexValidatorTest(TestCase):
def testMatchesRegex(self):
validator = RegexValidator(re.compile("abc"))
self.assertTrue(validator.isValid("abc"))
def testDoesntMatchRegex(self):
validator = RegexValidator(re.compile("abc"))
self.assertFalse(validator.isValid("xyz"))