from AvizoTest import AvizoTest from _hx_core import HxObjectFactory, HxPortMultiOptions, HxProject class TestHxPortMultiOptions(AvizoTest): def test_doc(self): self.assert_class_has_docstrings(HxPortMultiOptions) self.assert_class_has_docstrings(HxPortMultiOptions.Option) def test_all_nogui(self): fft_filter = HxObjectFactory().create('HxFftFilter') self.common(fft_filter) def test_all_gui(self): fft_filter = HxProject().create('HxFftFilter') fft_filter.selected = True self.common(fft_filter) HxProject().remove(fft_filter) def common(self, fft_filter): port = fft_filter.ports.outputFftFilter # test mutable 'options': # testing setter of the property and cookie mode for class Option. # before we must put the port in tristate mode. port.options = [HxPortMultiOptions.Option(label="toto1", enabled=True, checked=True), HxPortMultiOptions.Option(label="toto2", enabled=False, checked=True), HxPortMultiOptions.Option(label="toto3", enabled=True, checked=False), HxPortMultiOptions.Option(label="toto4", enabled=False, checked=False) ] for i in range(4): self.assertEqual(port.options[i].label, "toto" + (i+1).__str__()) self.assertEqual(port.options[i].enabled, True if i % 2 == 0 else False) self.assertEqual(port.options[i].checked, True if i < 2 else False) # testing insertion port.options.insert(0, HxPortMultiOptions.Option(label="toto0")) self.assertEqual(len(port.options), 5) self.assertEqual(port.options[0].label, "toto0") # testing deletion del port.options[0] self.assertEqual(len(port.options), 4) self.assertEqual(port.options[0].label, "toto1") # testing property 'tooltip' some_strs = ["tototiti", "abcdef", "123456"] self.assert_property(HxPortMultiOptions, port, 'tooltip', some_strs) ## # Option interface test. option = port.options[0] # test property label self.assert_property(HxPortMultiOptions.Option, option, 'label', some_strs) # test property enabled self.assert_boolean_property(HxPortMultiOptions.Option, option, 'enabled') # test property checked: self.assert_boolean_property(HxPortMultiOptions.Option, option, 'checked')