mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +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 typing import Optional
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class PashubToAraTriggerRequest(BaseModel):
|
class PashubToAraTriggerRequest(BaseModel):
|
||||||
pashub_link: (
|
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
|
address: Optional[str] = None
|
||||||
|
|
@ -17,4 +18,7 @@ class PashubToAraTriggerRequest(BaseModel):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def pashub_job_id(self) -> str:
|
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)
|
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:
|
def test_pashub_job_id_extracts_id_from_evidence_view_link() -> None:
|
||||||
# Arrange
|
# Arrange
|
||||||
request = make_request("https://pashub.net/jobs/job-id-123/evidence/view")
|
request = make_request("https://pashub.net/jobs/job-id-123/evidence/view")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue