@@ -112,6 +112,54 @@ def test_input_data_disconnect(self):
112112 self .send_signal (self .widget .Inputs .data , None )
113113 self .assertEqual (self .widget .data , None )
114114
115+ def test_widget_state (self ):
116+ """Check if widget clears its state when the input is disconnected"""
117+ editor = self .widget .findChild (ContinuousVariableEditor )
118+ self .send_signal (self .widget .Inputs .data , self .iris )
119+ self .assertEqual (editor .name_edit .text (), "sepal length" )
120+ self .send_signal (self .widget .Inputs .data , None )
121+ self .assertEqual (editor .name_edit .text (), "" )
122+ self .assertEqual (
123+ self .widget .variables_model .index (0 ).data (Qt .EditRole ), None )
124+
125+ editor = self .widget .findChild (DiscreteVariableEditor )
126+ self .send_signal (self .widget .Inputs .data , self .iris )
127+ index = self .widget .domain_view .model ().index (4 )
128+ self .widget .variables_view .setCurrentIndex (index )
129+ self .assertEqual (editor .name_edit .text (), "iris" )
130+ self .assertEqual (editor .labels_model .get_dict (), {})
131+ self .assertNotEqual (
132+ self .widget .variables_model .index (0 ).data (Qt .EditRole ), None )
133+ model = editor .values_edit .selectionModel ().model ()
134+ self .assertEqual (model .index (0 ).data (Qt .EditRole ), "Iris-setosa" )
135+ self .send_signal (self .widget .Inputs .data , None )
136+ self .assertEqual (editor .name_edit .text (), "" )
137+ self .assertEqual (editor .labels_model .get_dict (), {})
138+ self .assertEqual (model .index (0 ).data (Qt .EditRole ), None )
139+ self .assertEqual (
140+ self .widget .variables_model .index (0 ).data (Qt .EditRole ), None )
141+
142+ editor = self .widget .findChild (TimeVariableEditor )
143+ table = Table (test_filename ("datasets/cyber-security-breaches.tab" ))
144+ self .send_signal (self .widget .Inputs .data , table )
145+ index = self .widget .domain_view .model ().index (4 )
146+ self .widget .variables_view .setCurrentIndex (index )
147+ self .assertEqual (editor .name_edit .text (), "Date_Posted_or_Updated" )
148+ self .send_signal (self .widget .Inputs .data , None )
149+ self .assertEqual (editor .name_edit .text (), "" )
150+ self .assertEqual (
151+ self .widget .variables_model .index (0 ).data (Qt .EditRole ), None )
152+
153+ editor = self .widget .findChild (VariableEditor )
154+ self .send_signal (self .widget .Inputs .data , table )
155+ index = self .widget .domain_view .model ().index (8 )
156+ self .widget .variables_view .setCurrentIndex (index )
157+ self .assertEqual (editor .var .name , "Business_Associate_Involved" )
158+ self .send_signal (self .widget .Inputs .data , None )
159+ self .assertEqual (editor .var , None )
160+ self .assertEqual (
161+ self .widget .variables_model .index (0 ).data (Qt .EditRole ), None )
162+
115163 def test_output_data (self ):
116164 """Check data on the output after apply"""
117165 self .send_signal (self .widget .Inputs .data , self .iris )
0 commit comments