! some tests fail

but there are tests
This commit is contained in:
Jeffrey Goldberg 2023-11-26 17:46:15 -06:00
parent 84a295a644
commit 0e3cdf7295
2 changed files with 17 additions and 5 deletions

View File

@ -1083,13 +1083,17 @@ class Connection(BaseModel):
# URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+} # URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+}
pattern = re.compile(r""" pattern = re.compile(r"""
@? # Optional @ prefix ^\w* # ignore leading spaces
@? # Optional @ prefix
(?P<uname>[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?) # username part (?P<uname>[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?) # username part
@ # separator @ # separator
(?P<domain>[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?) # domain part (?P<domain>[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?) # domain part
\w*$ # ignore trailing whitespace
""", re.VERBOSE | re.IGNORECASE) """, re.VERBOSE | re.IGNORECASE)
m = pattern.match(id) m = pattern.match(id)
if m is None:
raise ValueError("Invalid mastodon address")
uname = m.group("uname") uname = m.group("uname")
domain = m.group("domain") domain = m.group("domain")

View File

@ -5,7 +5,7 @@ import json
from rendercv import data_model from rendercv import data_model
from datetime import date as Date from datetime import date as Date
from pydantic import ValidationError from pydantic import ValidationError, HttpUrl
class TestDataModel(unittest.TestCase): class TestDataModel(unittest.TestCase):
@ -855,13 +855,21 @@ class TestDataModel(unittest.TestCase):
def test_mastodon_parsing(self): def test_mastodon_parsing(self):
mastodon_name = 'jpgoldberg@ioc.exchange' mastodon_name = 'jpgoldberg@ioc.exchange'
expected = "https://ioc.exchange/@jpgoldberg" expected = HttpUrl("https://ioc.exchange/@jpgoldberg")
result = data_model.Connection.MastodonUname2Url(mastodon_name) result = data_model.Connection.MastodonUname2Url(mastodon_name)
with self.subTest("Without '@' prefix"): with self.subTest("Without '@' prefix"):
self.assertEqual(result, expected) self.assertEqual(result, expected)
mastodon_name = '@jpgoldberg@ioc.exchange' mastodon_name = '@jpgoldberg@ioc.exchange'
expected = "https://ioc.exchange/@jpgoldberg" expected = HttpUrl("https://ioc.exchange/@jpgoldberg")
result = data_model.Connection.MastodonUname2Url(mastodon_name) result = data_model.Connection.MastodonUname2Url(mastodon_name)
with self.subTest("With '@' prefix"): with self.subTest("With '@' prefix"):
self.assertEqual(result, expected) self.assertEqual(result, expected)
mastodon_name = '@too@many@symbols'
with self.subTest("Too many '@' symbols"):
with self.assertRaises(ValueError):
data_model.Connection.MastodonUname2Url(mastodon_name)
if __name__ == '__main__':
unittest.main()