@@ -58,5 +58,61 @@ def test(self, mocker):
5858 mocker .patch ("ncdata.utils.ncdata_copy" , mock_copycall )
5959 ncdata = NcData ()
6060 result = ncdata .copy ()
61- assert mock_copycall .called_once_witk ( mocker .call (ncdata ))
61+ assert mock_copycall .call_args_list == [ mocker .call (ncdata )]
6262 assert result == mock_copied_ncdata
63+
64+
65+ class Test_NcData_eq :
66+ # check that == calls dataset_differences
67+ def test (self , mocker ):
68+ ncdata1 , ncdata2 = [NcData (name ) for name in ("data1" , "data2" )]
69+ called = mocker .patch ("ncdata.utils.dataset_differences" )
70+ ncdata1 == ncdata2
71+ assert called .call_args_list == [mocker .call (ncdata1 , ncdata2 )]
72+
73+ def test_self_equal (self , mocker ):
74+ ds = NcData ()
75+ called = mocker .patch ("ncdata.utils.dataset_differences" )
76+ assert ds == ds
77+ assert called .call_args_list == []
78+
79+ def test_badtype_nonequal (self , mocker ):
80+ ds = NcData ()
81+ called = mocker .patch ("ncdata.utils.dataset_differences" )
82+ assert ds != 1
83+ assert called .call_args_list == []
84+
85+
86+ class Test_NcVariable_slicer :
87+ # check that .slicer makes a slice.
88+ def test (self , mocker ):
89+ ncdata1 = NcData ()
90+
91+ dim_args = (1 , 2 , 3 ) # N.B. not actually acceptable for a real usage
92+ mock_return = mocker .sentinel .retval
93+ called = mocker .patch ("ncdata.utils.Slicer" , return_value = mock_return )
94+ result = ncdata1 .slicer (* dim_args )
95+
96+ assert called .call_args_list == [mocker .call (ncdata1 , * dim_args )]
97+ assert result == mock_return
98+
99+
100+ class Test_NcVariable_getitem :
101+ # check that data[*keys] calls data.slicer[*keys]
102+ def test (self , mocker ):
103+ from ncdata .utils import Slicer
104+
105+ ncdata1 = NcData ()
106+
107+ dim_keys = (1 , 2 , 3 ) # N.B. not actually acceptable for a real usage
108+ mock_slicer = mocker .MagicMock (spec = Slicer )
109+ called = mocker .patch (
110+ "ncdata._core.NcData.slicer" , return_value = mock_slicer
111+ )
112+ result = ncdata1 [* dim_keys ]
113+
114+ assert called .call_args_list == [mocker .call ()]
115+ assert mock_slicer .__getitem__ .call_args_list == [
116+ mocker .call (dim_keys )
117+ ]
118+ assert result == mock_slicer [dim_keys ]
0 commit comments