mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +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
|
return None
|
||||||
|
|
||||||
|
def _select_other_files(
|
||||||
|
self,
|
||||||
|
files: List[EvidenceFileData],
|
||||||
|
) -> List[EvidenceFileData]:
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
def _select_latest_core_files(
|
def _select_latest_core_files(
|
||||||
self,
|
self,
|
||||||
files: List[EvidenceFileData],
|
files: List[EvidenceFileData],
|
||||||
|
|
@ -106,16 +112,16 @@ class PashubClient:
|
||||||
continue
|
continue
|
||||||
grouped[core_type].append(file)
|
grouped[core_type].append(file)
|
||||||
|
|
||||||
latest_files: Dict[CoreFiles, EvidenceFileData] = {}
|
latest_core_files: Dict[CoreFiles, EvidenceFileData] = {}
|
||||||
|
|
||||||
for core_type, group in grouped.items():
|
for core_type, group in grouped.items():
|
||||||
if core_type == CoreFiles.RETROFIT_DESIGN_DOC and len(group) > 1:
|
if core_type == CoreFiles.RETROFIT_DESIGN_DOC and len(group) > 1:
|
||||||
osm_candidates = [f for f in group if "-OSM-" in f.file_name]
|
osm_candidates = [f for f in group if "-OSM-" in f.file_name]
|
||||||
group = osm_candidates if osm_candidates else group
|
group = osm_candidates if osm_candidates else group
|
||||||
latest = max(group, key=lambda f: datetime.fromisoformat(f.created_utc))
|
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]:
|
def _get_evidence_list(self, job_id: str) -> List[EvidenceFileData]:
|
||||||
url = f"{self.base}/jobs/{job_id}/evidence"
|
url = f"{self.base}/jobs/{job_id}/evidence"
|
||||||
|
|
|
||||||
|
|
@ -75,14 +75,14 @@ class PashubService:
|
||||||
logger.info(f"No UPRN found for job {job_id}")
|
logger.info(f"No UPRN found for job {job_id}")
|
||||||
|
|
||||||
try:
|
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
|
job_id
|
||||||
)
|
)
|
||||||
except UnauthorizedError:
|
except UnauthorizedError:
|
||||||
if active_client is not self._pashub_client:
|
if active_client is not self._pashub_client:
|
||||||
raise
|
raise
|
||||||
active_client = self._get_coordination_client()
|
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:
|
if uprn or hubspot_deal_id:
|
||||||
logger.info("Uploading files to s3")
|
logger.info("Uploading files to s3")
|
||||||
|
|
@ -92,7 +92,7 @@ class PashubService:
|
||||||
else FileSourceEnum.COORDINATION_HUB
|
else FileSourceEnum.COORDINATION_HUB
|
||||||
)
|
)
|
||||||
upload_records = self._upload_to_s3_and_update_db(
|
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)
|
self._save_site_notes(upload_records)
|
||||||
|
|
||||||
|
|
@ -101,13 +101,13 @@ class PashubService:
|
||||||
# if request.sharepoint_link:
|
# if request.sharepoint_link:
|
||||||
# self._upload_to_sharepoint(request.sharepoint_link, job_files)
|
# self._upload_to_sharepoint(request.sharepoint_link, job_files)
|
||||||
|
|
||||||
for file_path in job_files:
|
for file_path in core_files:
|
||||||
try:
|
try:
|
||||||
os.remove(file_path)
|
os.remove(file_path)
|
||||||
except OSError:
|
except OSError:
|
||||||
logger.warning(f"Failed to delete temp file {file_path}")
|
logger.warning(f"Failed to delete temp file {file_path}")
|
||||||
|
|
||||||
return job_files
|
return core_files
|
||||||
|
|
||||||
def _upload_to_s3_and_update_db(
|
def _upload_to_s3_and_update_db(
|
||||||
self,
|
self,
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ class PashubToAraTriggerRequest(BaseModel):
|
||||||
hubspot_listing_id: Optional[int] = None
|
hubspot_listing_id: Optional[int] = None
|
||||||
hubspot_deal_id: Optional[str] = None
|
hubspot_deal_id: Optional[str] = None
|
||||||
|
|
||||||
|
get_other_files: Optional[bool] = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def pashub_job_id(self) -> str:
|
def pashub_job_id(self) -> str:
|
||||||
match = re.search(r"/jobs/([^/]+)", self.pashub_link)
|
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
|
# _select_latest_core_files
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue