mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
_select_other_files returns non-core evidence files 🟥
This commit is contained in:
parent
6cb6c8c756
commit
db796747d9
4 changed files with 41 additions and 8 deletions
|
|
@ -92,6 +92,12 @@ class PashubClient:
|
|||
)
|
||||
return None
|
||||
|
||||
def _select_other_files(
|
||||
self,
|
||||
files: List[EvidenceFileData],
|
||||
) -> List[EvidenceFileData]:
|
||||
raise NotImplementedError
|
||||
|
||||
def _select_latest_core_files(
|
||||
self,
|
||||
files: List[EvidenceFileData],
|
||||
|
|
@ -106,16 +112,16 @@ class PashubClient:
|
|||
continue
|
||||
grouped[core_type].append(file)
|
||||
|
||||
latest_files: Dict[CoreFiles, EvidenceFileData] = {}
|
||||
latest_core_files: Dict[CoreFiles, EvidenceFileData] = {}
|
||||
|
||||
for core_type, group in grouped.items():
|
||||
if core_type == CoreFiles.RETROFIT_DESIGN_DOC and len(group) > 1:
|
||||
osm_candidates = [f for f in group if "-OSM-" in f.file_name]
|
||||
group = osm_candidates if osm_candidates else group
|
||||
latest = max(group, key=lambda f: datetime.fromisoformat(f.created_utc))
|
||||
latest_files[core_type] = latest
|
||||
latest_core_files[core_type] = latest
|
||||
|
||||
return latest_files
|
||||
return latest_core_files
|
||||
|
||||
def _get_evidence_list(self, job_id: str) -> List[EvidenceFileData]:
|
||||
url = f"{self.base}/jobs/{job_id}/evidence"
|
||||
|
|
|
|||
|
|
@ -75,14 +75,14 @@ class PashubService:
|
|||
logger.info(f"No UPRN found for job {job_id}")
|
||||
|
||||
try:
|
||||
job_files: List[str] = active_client.get_core_evidence_files_by_job_id(
|
||||
core_files: List[str] = active_client.get_core_evidence_files_by_job_id(
|
||||
job_id
|
||||
)
|
||||
except UnauthorizedError:
|
||||
if active_client is not self._pashub_client:
|
||||
raise
|
||||
active_client = self._get_coordination_client()
|
||||
job_files = active_client.get_core_evidence_files_by_job_id(job_id)
|
||||
core_files = active_client.get_core_evidence_files_by_job_id(job_id)
|
||||
|
||||
if uprn or hubspot_deal_id:
|
||||
logger.info("Uploading files to s3")
|
||||
|
|
@ -92,7 +92,7 @@ class PashubService:
|
|||
else FileSourceEnum.COORDINATION_HUB
|
||||
)
|
||||
upload_records = self._upload_to_s3_and_update_db(
|
||||
job_files, uprn, hubspot_deal_id, file_source
|
||||
core_files, uprn, hubspot_deal_id, file_source
|
||||
)
|
||||
self._save_site_notes(upload_records)
|
||||
|
||||
|
|
@ -101,13 +101,13 @@ class PashubService:
|
|||
# if request.sharepoint_link:
|
||||
# self._upload_to_sharepoint(request.sharepoint_link, job_files)
|
||||
|
||||
for file_path in job_files:
|
||||
for file_path in core_files:
|
||||
try:
|
||||
os.remove(file_path)
|
||||
except OSError:
|
||||
logger.warning(f"Failed to delete temp file {file_path}")
|
||||
|
||||
return job_files
|
||||
return core_files
|
||||
|
||||
def _upload_to_s3_and_update_db(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ class PashubToAraTriggerRequest(BaseModel):
|
|||
hubspot_listing_id: Optional[int] = None
|
||||
hubspot_deal_id: Optional[str] = None
|
||||
|
||||
get_other_files: Optional[bool] = False
|
||||
|
||||
@property
|
||||
def pashub_job_id(self) -> str:
|
||||
match = re.search(r"/jobs/([^/]+)", self.pashub_link)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,31 @@ def make_file(
|
|||
)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# _select_other_files
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
def test_select_other_files_returns_non_core_files_only() -> None:
|
||||
# Arrange
|
||||
client = make_client()
|
||||
files = [
|
||||
make_file(file_name="SiteNote_001.pdf"),
|
||||
make_file(file_name="some_unknown_document.pdf"),
|
||||
make_file(file_name="another_random_file.docx"),
|
||||
make_file(file_name="Photopack_002.pdf"),
|
||||
]
|
||||
|
||||
# Act
|
||||
result = client._select_other_files(files)
|
||||
|
||||
# Assert
|
||||
assert [f.file_name for f in result] == [
|
||||
"some_unknown_document.pdf",
|
||||
"another_random_file.docx",
|
||||
]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# _select_latest_core_files
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue