Skip to content

Commit 6b2fdab

Browse files
phockettheadtr1ck
andauthored
Added test_deepcopy_nested_attrs() (#2835). (#7086)
* Added test_deepcopy_nested_attrs() (#2835). * mark xfail Co-authored-by: Michael Niklas <[email protected]>
1 parent 0b0b8f6 commit 6b2fdab

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

doc/whats-new.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ Documentation
105105

106106
Internal Changes
107107
~~~~~~~~~~~~~~~~
108-
108+
- Added test for DataArray attrs deepcopy recursion/nested attrs (:issue:`2835`).
109+
By `Paul hockett <https://github.com/phockett>`_.
109110

110111
.. _whats-new.2022.06.0:
111112

xarray/tests/test_dataarray.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6458,6 +6458,31 @@ def test_delete_coords() -> None:
64586458
assert set(a1.coords.keys()) == {"x"}
64596459

64606460

6461+
@pytest.mark.xfail
6462+
def test_deepcopy_nested_attrs() -> None:
6463+
"""Check attrs deep copy, see :issue:`2835`"""
6464+
da1 = xr.DataArray([[1, 2], [3, 4]], dims=("x", "y"), coords={"x": [10, 20]})
6465+
da1.attrs["flat"] = "0"
6466+
da1.attrs["nested"] = {"level1a": "1", "level1b": "1"}
6467+
6468+
da2 = da1.copy(deep=True)
6469+
6470+
da2.attrs["new"] = "2"
6471+
da2.attrs.update({"new2": "2"})
6472+
da2.attrs["flat"] = "2"
6473+
da2.attrs["nested"]["level1a"] = "2"
6474+
da2.attrs["nested"].update({"level1b": "2"})
6475+
6476+
# Coarse test
6477+
assert not da1.identical(da2)
6478+
6479+
# Check attrs levels
6480+
assert da1.attrs["flat"] != da2.attrs["flat"]
6481+
assert da1.attrs["nested"] != da2.attrs["nested"]
6482+
assert "new" not in da1.attrs
6483+
assert "new2" not in da1.attrs
6484+
6485+
64616486
def test_deepcopy_obj_array() -> None:
64626487
x0 = DataArray(np.array([object()]))
64636488
x1 = deepcopy(x0)

0 commit comments

Comments
 (0)