mirror of https://github.com/eyhc1/rendercv.git
test data_model's Connection class
This commit is contained in:
parent
f6ba41da4a
commit
bb07677312
|
@ -833,21 +833,33 @@ class Connection(BaseModel):
|
||||||
]
|
]
|
||||||
value: str
|
value: str
|
||||||
|
|
||||||
|
@field_validator("value")
|
||||||
|
@classmethod
|
||||||
|
def check_type_of_value(
|
||||||
|
cls, value: str
|
||||||
|
) -> str:
|
||||||
|
if not re.search(r"[^\d\-+]", str(value)):
|
||||||
|
# If there is nothing other than digits, hyphens, and plus signs, then it is
|
||||||
|
# a phone number
|
||||||
|
value = "tel:" + value
|
||||||
|
|
||||||
|
return value
|
||||||
|
|
||||||
@computed_field
|
@computed_field
|
||||||
@cached_property
|
@cached_property
|
||||||
def url(self) -> HttpUrl:
|
def url(self) -> HttpUrl:
|
||||||
if self.name == "LinkedIn":
|
if self.name == "LinkedIn":
|
||||||
url = f"https://www.linkedin.com/in/{self.value}"
|
url = f"https://www.linkedin.com/in/{self.value}"
|
||||||
elif self.name == "GitHub":
|
elif self.name == "GitHub":
|
||||||
url = f"https:www.github.com/{self.value}"
|
url = f"https://www.github.com/{self.value}"
|
||||||
elif self.name == "Instagram":
|
elif self.name == "Instagram":
|
||||||
url = f"https://www.instagram.com/{self.value}"
|
url = f"https://www.instagram.com/{self.value}"
|
||||||
elif self.name == "email":
|
elif self.name == "email":
|
||||||
url = f"mailto:{self.value}"
|
url = f"mailto:{self.value}"
|
||||||
elif self.name == "website":
|
elif self.name == "website":
|
||||||
url = f"{self.value}"
|
url = self.value
|
||||||
elif self.name == "phone":
|
elif self.name == "phone":
|
||||||
url = f"{self.value}"
|
url = self.value
|
||||||
elif self.name == "location":
|
elif self.name == "location":
|
||||||
url = None
|
url = None
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
((*- endmacro *))
|
((*- endmacro *))
|
||||||
|
|
||||||
((* macro Instagram(username, url) -*))
|
((* macro Instagram(username, url) -*))
|
||||||
\mbox{\href{}{{\small\faInstagram}\hspace{0.13cm}<<username>>}}
|
\mbox{\href{<<url>>}{{\small\faInstagram}\hspace{0.13cm}<<username>>}}
|
||||||
((*- endmacro *))
|
((*- endmacro *))
|
||||||
|
|
||||||
((* macro phone(number, url) -*))
|
((* macro phone(number, url) -*))
|
||||||
\mbox{{\footnotesize\faPhone*}\hspace{0.13cm}<<number|replace("tel:", "")|replace("-"," ")>>}
|
\mbox{\href{<<url|replace("-","")>>}{{\footnotesize\faPhone*}\hspace{0.13cm}<<number|replace("tel:", "")|replace("-"," ")>>}}
|
||||||
((*- endmacro *))
|
((*- endmacro *))
|
||||||
|
|
||||||
((* macro email(email, url) -*))
|
((* macro email(email, url) -*))
|
||||||
|
|
|
@ -482,6 +482,32 @@ class TestRendercv(unittest.TestCase):
|
||||||
result = publication.doi_url
|
result = publication.doi_url
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
def test_data_connection_url(self):
|
||||||
|
# Github link:
|
||||||
|
inputs = [
|
||||||
|
{"name": "LinkedIn", "value": "username"},
|
||||||
|
{"name": "GitHub", "value": "sinaatalay"},
|
||||||
|
{"name": "Instagram", "value": "username"},
|
||||||
|
{"name": "phone", "value": "+909999999999"},
|
||||||
|
{"name": "email", "value": "example@example.com"},
|
||||||
|
{"name": "website", "value": "https://www.example.com/"},
|
||||||
|
{"name": "location", "value": "My Location"},
|
||||||
|
]
|
||||||
|
expected_results = [
|
||||||
|
"https://www.linkedin.com/in/username",
|
||||||
|
"https://www.github.com/sinaatalay",
|
||||||
|
"https://www.instagram.com/username",
|
||||||
|
"tel:+909999999999",
|
||||||
|
"mailto:example@example.com",
|
||||||
|
"https://www.example.com/",
|
||||||
|
None,
|
||||||
|
]
|
||||||
|
for input, expected in zip(inputs, expected_results):
|
||||||
|
with self.subTest(type=input["name"]):
|
||||||
|
connection = data_model.Connection(**input)
|
||||||
|
result = connection.url
|
||||||
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Reference in New Issue