Skip to content

Commit f48c148

Browse files
committed
fix test
1 parent 3242824 commit f48c148

File tree

2 files changed

+27
-28
lines changed

2 files changed

+27
-28
lines changed

openeo/extra/job_management/stac_job_db.py

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -129,47 +129,46 @@ def series_from(self, item: pystac.Item) -> pd.Series:
129129
item_dict = item.to_dict()
130130
item_id = item_dict["id"]
131131

132-
return pd.Series(item_dict["properties"], name=item_id)
132+
props = dict(item_dict["properties"])
133133

134+
if "item_id" in props:
135+
props["item_id"] = item_id
136+
137+
return pd.Series(props, name=item_id)
138+
134139
def item_from(self, series: pd.Series) -> pystac.Item:
135140
"""
136141
Convert a pandas.Series to a STAC Item.
137-
142+
138143
:param series: pandas.Series to be converted.
139-
:param geometry_name: Name of the geometry column in the series.
140144
:return: pystac.Item
141145
"""
142146
series_dict = series.to_dict()
143147
item_id = str(series.name)
148+
149+
# Handle legacy item_id in properties
144150
series_dict.pop("item_id", None)
145-
item_dict = {}
146-
item_dict.setdefault("stac_version", pystac.get_stac_version())
147-
item_dict.setdefault("type", "Feature")
148-
item_dict.setdefault("assets", {})
149-
item_dict.setdefault("links", [])
150-
item_dict.setdefault("properties", series_dict)
151-
152-
dt = series_dict.get("datetime", None)
153-
if dt and item_dict["properties"].get("datetime", None) is None:
154-
dt_str = pystac.utils.datetime_to_str(dt) if isinstance(dt, datetime.datetime) else dt
155-
item_dict["properties"]["datetime"] = dt_str
156-
157-
else:
151+
152+
item_dict = {
153+
"type": "Feature",
154+
"stac_version": pystac.get_stac_version(),
155+
"id": item_id,
156+
"properties": series_dict,
157+
"geometry": series[self.geometry_column] if self.has_geometry else None,
158+
"links": [],
159+
"assets": {}
160+
}
161+
162+
# Handle datetime
163+
dt = series_dict.get("datetime")
164+
if not dt:
158165
item_dict["properties"]["datetime"] = pystac.utils.datetime_to_str(datetime.datetime.now())
159-
160-
if self.has_geometry:
161-
item_dict["geometry"] = series[self.geometry_column]
162-
else:
163-
item_dict["geometry"] = None
164-
165-
# from_dict handles associating any Links and Assets with the Item
166-
item_dict["id"] = item_id
166+
167167
item = pystac.Item.from_dict(item_dict)
168168
if self.has_geometry:
169169
item.bbox = shape(series[self.geometry_column]).bounds
170-
else:
171-
item.bbox = None
172170
return item
171+
173172

174173
def count_by_status(self, statuses: Iterable[str] = ()) -> dict:
175174
if isinstance(statuses, str):

tests/extra/job_management/test_stac_job_db.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ def test_initialize_from_df_with_geometry(
292292
assert job_db_not_exists.has_geometry == True
293293
assert job_db_not_exists.geometry_column == "geometry"
294294

295+
295296
def test_series_from(self, job_db_exists, dummy_series_no_item_id, dummy_stac_item):
296297
pdt.assert_series_equal(job_db_exists.series_from(dummy_stac_item), dummy_series_no_item_id)
297298

@@ -331,11 +332,10 @@ def test_get_by_status_result(self, job_db_exists):
331332
df,
332333
pd.DataFrame(
333334
{
334-
"item_id": ["test"],
335335
"datetime": [pystac.utils.datetime_to_str(FAKE_NOW)],
336336
"some_property": ["value"],
337337
},
338-
index=[0],
338+
index=["test"],
339339
),
340340
)
341341

0 commit comments

Comments
 (0)