Skip to content

Commit 1a413d3

Browse files
authored
Merge pull request #228 from stac-utils/fix/item-clone
Set cloned asset owner during item clone.
2 parents b46a2c3 + a6e2a24 commit 1a413d3

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

pystac/item.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,8 @@ def clone(self):
304304
for link in self.links:
305305
clone.add_link(link.clone())
306306

307-
clone.assets = dict([(k, a.clone()) for (k, a) in self.assets.items()])
307+
for k, asset in self.assets.items():
308+
clone.add_asset(k, asset.clone())
308309

309310
return clone
310311

tests/test_item.py

+10
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,16 @@ def test_0_9_item_with_no_extensions_does_not_read_collection_data(self):
167167
did_merge = pystac.serialization.common_properties.merge_common_properties(item_json)
168168
self.assertFalse(did_merge)
169169

170+
def test_clone_sets_asset_owner(self):
171+
cat = TestCases.test_case_2()
172+
item = next(cat.get_all_items())
173+
original_asset = list(item.assets.values())[0]
174+
assert original_asset.owner is item
175+
176+
clone = item.clone()
177+
clone_asset = list(clone.assets.values())[0]
178+
self.assertIs(clone_asset.owner, clone)
179+
170180

171181
class CommonMetadataTest(unittest.TestCase):
172182
def setUp(self):

0 commit comments

Comments
 (0)