def test_is_valid_user_id_valid(self): """Should consider user IDs valid if they decode entirely to ASCII digits.""" ids = ( "NDcyMjY1OTQzMDYyNDEzMzMy", "NDc1MDczNjI5Mzk5NTQ3OTA0", "NDY3MjIzMjMwNjUwNzc3NjQx", ) for user_id in ids: with self.subTest(user_id=user_id): result = TokenRemover.is_valid_user_id(user_id) self.assertTrue(result)
def test_is_valid_user_id_invalid(self): """Should consider non-digit and non-ASCII IDs invalid.""" ids = ( ("SGVsbG8gd29ybGQ", "non-digit ASCII"), ("0J_RgNC40LLQtdGCINC80LjRgA", "cyrillic text"), ("4pO14p6L4p6C4pG34p264pGl8J-EiOKSj-KCieKBsA", "Unicode digits"), ("4oaA4oaB4oWh4oWi4Lyz4Lyq4Lyr4LG9", "Unicode numerals"), ("8J2fjvCdn5nwnZ-k8J2fr_Cdn7rgravvvJngr6c", "Unicode decimals"), ("{hello}[world]&(bye!)", "ASCII invalid Base64"), ("Þíß-ï§-ňøẗ-våłìÐ", "Unicode invalid Base64"), ) for user_id, msg in ids: with self.subTest(msg=msg): result = TokenRemover.is_valid_user_id(user_id) self.assertFalse(result)
def test_is_valid_user_id_is_true_for_numeric_content(self): """A string decoding to numeric characters is a valid user ID.""" # MTIz = base64(123) self.assertTrue(TokenRemover.is_valid_user_id('MTIz'))
def test_is_valid_user_id_is_false_for_alphabetic_content(self): """A string decoding to alphabetic characters is not a valid user ID.""" # YWJj = base64(abc) self.assertFalse(TokenRemover.is_valid_user_id('YWJj'))
def test_is_valid_user_id(content: str, expected: bool): assert TokenRemover.is_valid_user_id(content) is expected