diff --git a/gso/utils/helpers.py b/gso/utils/helpers.py index 8c28dd2569032907b028f6f60278f454370ac43c..6927da89a9d8162c885af6de4c56dc1cbd63721e 100644 --- a/gso/utils/helpers.py +++ b/gso/utils/helpers.py @@ -271,3 +271,24 @@ def validate_interface_name_list(interface_name_list: list, vendor: str) -> list ) raise ValueError(error_msg) return interface_name_list + + +def validate_tt_number(tt_number: str) -> str: + """Validate a string to match a specific pattern. + + This method checks if the input string starts with 'TT#' and is followed by exactly 16 digits. + + :param str tt_number: The TT number as string to validate + + :return str: The tt number string, if tt number match was successful, otherwise it will throw a ValueError + exception. + """ + pattern = r"^TT#\d{16}$" + if not bool(re.match(pattern, tt_number)): + err_msg = ( + f"The given TT number: {tt_number} is not valid. " + f" A valid TT number starts with 'TT#' followed by 16 digits." + ) + raise ValueError(err_msg) + + return tt_number