mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
pashub_job_id extracts ID from /evidence/view links 🟩
This commit is contained in:
parent
0b358e6de6
commit
5677789919
2 changed files with 26 additions and 2 deletions
|
|
@ -1,10 +1,11 @@
|
|||
import re
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class PashubToAraTriggerRequest(BaseModel):
|
||||
pashub_link: (
|
||||
str # e.g. https://pashub.net/jobs/12345-abcd-1234-abcd-12345abcde/details
|
||||
str # e.g. https://pashub.net/jobs/{id}/details, /jobs/{id}/evidence/view, /jobs/{id}
|
||||
)
|
||||
|
||||
address: Optional[str] = None
|
||||
|
|
@ -17,4 +18,7 @@ class PashubToAraTriggerRequest(BaseModel):
|
|||
|
||||
@property
|
||||
def pashub_job_id(self) -> str:
|
||||
return self.pashub_link.split("/")[-2]
|
||||
match = re.search(r"/jobs/([^/]+)", self.pashub_link)
|
||||
if not match:
|
||||
raise ValueError(f"No job ID found in PasHub link: {self.pashub_link}")
|
||||
return match.group(1)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,26 @@ def make_request(pashub_link: str) -> PashubToAraTriggerRequest:
|
|||
return PashubToAraTriggerRequest(pashub_link=pashub_link)
|
||||
|
||||
|
||||
def test_pashub_job_id_raises_for_invalid_link() -> None:
|
||||
# Arrange
|
||||
request = make_request("https://pashub.net/rcs-dashboard")
|
||||
|
||||
# Act / Assert
|
||||
with pytest.raises(ValueError):
|
||||
request.pashub_job_id
|
||||
|
||||
|
||||
def test_pashub_job_id_extracts_id_from_bare_job_link() -> None:
|
||||
# Arrange
|
||||
request = make_request("https://pashub.net/jobs/job-id-123")
|
||||
|
||||
# Act
|
||||
result = request.pashub_job_id
|
||||
|
||||
# Assert
|
||||
assert result == "job-id-123"
|
||||
|
||||
|
||||
def test_pashub_job_id_extracts_id_from_evidence_view_link() -> None:
|
||||
# Arrange
|
||||
request = make_request("https://pashub.net/jobs/job-id-123/evidence/view")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue