Skip to content

Commit

Permalink
Merge pull request #228 from stac-utils/fix/item-clone
Browse files Browse the repository at this point in the history
Set cloned asset owner during item clone.
  • Loading branch information
lossyrob authored Oct 30, 2020
2 parents b46a2c3 + a6e2a24 commit 1a413d3
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
3 changes: 2 additions & 1 deletion pystac/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,8 @@ def clone(self):
for link in self.links:
clone.add_link(link.clone())

clone.assets = dict([(k, a.clone()) for (k, a) in self.assets.items()])
for k, asset in self.assets.items():
clone.add_asset(k, asset.clone())

return clone

Expand Down
10 changes: 10 additions & 0 deletions tests/test_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,16 @@ def test_0_9_item_with_no_extensions_does_not_read_collection_data(self):
did_merge = pystac.serialization.common_properties.merge_common_properties(item_json)
self.assertFalse(did_merge)

def test_clone_sets_asset_owner(self):
cat = TestCases.test_case_2()
item = next(cat.get_all_items())
original_asset = list(item.assets.values())[0]
assert original_asset.owner is item

clone = item.clone()
clone_asset = list(clone.assets.values())[0]
self.assertIs(clone_asset.owner, clone)


class CommonMetadataTest(unittest.TestCase):
def setUp(self):
Expand Down

0 comments on commit 1a413d3

Please sign in to comment.