@@ -153,3 +153,72 @@ def mock_get_visible_data():
153153 datagrid .select (1 , 0 , 2 , 1 ) # Select 1A to 2B
154154
155155 assert datagrid .selected_cell_values == [2 , 5 , 3 , 6 ]
156+
157+ def test_dataframe_index_name (dataframe ):
158+ # Setting a custom index name
159+ dataframe .index .name = "custom_index"
160+ grid = DataGrid (dataframe )
161+
162+ # Making sure no value is set for index_name
163+ assert grid ._index_name is None
164+
165+ # Checking index name matches DataFrame retrieved from grid
166+ data = grid .get_visible_data ()
167+ assert (data .index .name == "custom_index" )
168+
169+ def test_user_defined_index_name (dataframe ):
170+ # Setting a custom index name
171+ dataframe .index .name = "unused_index"
172+ grid = DataGrid (dataframe , index_name = "custom_index" )
173+
174+ # Making sure index_name is set
175+ assert grid ._index_name is not None
176+
177+ # Checking index name matches DataFrame retrieved from grid
178+ index_key = grid .get_dataframe_index (dataframe )
179+ data_obj = grid .generate_data_object (
180+ dataframe , "ipydguuid" , index_key
181+ )
182+
183+ # Default and unused keys should not be in schema
184+ assert "key" not in data_obj ['schema' ]['primaryKey' ]
185+ assert "unused_index" not in data_obj ['schema' ]['primaryKey' ]
186+
187+ # User defined key should be in primary key schema
188+ assert "custom_index" in data_obj ['schema' ]['primaryKey' ]
189+
190+ def test_named_dataframe_index (dataframe ):
191+ # Setting a custom index name
192+ dataframe .index .name = "my_used_index"
193+ grid = DataGrid (dataframe )
194+
195+ # Making sure index_name is set
196+ assert grid ._index_name is None
197+
198+ # Generate primary key schema object
199+ index_key = grid .get_dataframe_index (dataframe )
200+ data_obj = grid .generate_data_object (
201+ dataframe , "ipydguuid" , index_key
202+ )
203+
204+ # Default and unused keys should not be in schema
205+ assert "key" not in data_obj ['schema' ]['primaryKey' ]
206+
207+ # User named dataframe index should be in schema
208+ assert "my_used_index" in data_obj ['schema' ]['primaryKey' ]
209+
210+ def test_default_dataframe_index (dataframe ):
211+ # Setting a custom index name
212+ grid = DataGrid (dataframe )
213+
214+ # Making sure index_name is set
215+ assert grid ._index_name is None
216+
217+ # Generate primary key schema object
218+ index_key = grid .get_dataframe_index (dataframe )
219+ data_obj = grid .generate_data_object (
220+ dataframe , "ipydguuid" , index_key
221+ )
222+
223+ # Default and unused keys should not be in schema
224+ assert "key" in data_obj ['schema' ]['primaryKey' ]
0 commit comments