def test_settings_change_message(self): # Make sure that a SettingsChangeMessage gets emitted when settings # change in the dialog class TestListener(HubListener): def __init__(self, hub): hub.subscribe(self, SettingsChangeMessage, handler=self.receive_message) self.received = [] def receive_message(self, message): self.received.append(message) listener = TestListener(self.app._hub) with patch('glue.config.settings') as settings: settings.FOREGROUND_COLOR = 'red' settings.BACKGROUND_COLOR = (0, 0.5, 1) settings.DATA_COLOR = (1, 0.5, 0.25) settings.DATA_ALPHA = 0.3 dialog = PreferencesDialog(self.app) dialog.show() dialog.foreground = (0, 1, 1) dialog.accept() assert len(listener.received) == 1 assert listener.received[0].settings == ('FOREGROUND_COLOR', 'BACKGROUND_COLOR')
def test_custom_changes(self): # Check that themes work with patch('glue.config.settings') as settings: settings.FOREGROUND_COLOR = 'red' settings.BACKGROUND_COLOR = (0, 0.5, 1) settings.DATA_COLOR = (1, 0.5, 0.25) settings.DATA_ALPHA = 0.3 dialog = PreferencesDialog(self.app) dialog.show() dialog.foreground = (0, 1, 1) dialog.accept() assert rgb(settings.FOREGROUND_COLOR) == (0, 1, 1) assert rgb(settings.BACKGROUND_COLOR) == (0, 0.5, 1) assert rgb(settings.DATA_COLOR) == (1, 0.5, 0.25) assert settings.DATA_ALPHA == 0.3 dialog = PreferencesDialog(self.app) dialog.show() dialog.background = (1, 0, 1) dialog.accept() assert rgb(settings.FOREGROUND_COLOR) == (0, 1, 1) assert rgb(settings.BACKGROUND_COLOR) == (1, 0, 1) assert rgb(settings.DATA_COLOR) == (1, 0.5, 0.25) assert settings.DATA_ALPHA == 0.3 dialog = PreferencesDialog(self.app) dialog.show() dialog.data_color = (1, 1, 0.5) dialog.accept() assert rgb(settings.FOREGROUND_COLOR) == (0, 1, 1) assert rgb(settings.BACKGROUND_COLOR) == (1, 0, 1) assert rgb(settings.DATA_COLOR) == (1, 1, 0.5) assert settings.DATA_ALPHA == 0.3 dialog = PreferencesDialog(self.app) dialog.show() dialog.data_alpha = 0.4 dialog.accept() assert rgb(settings.FOREGROUND_COLOR) == (0, 1, 1) assert rgb(settings.BACKGROUND_COLOR) == (1, 0, 1) assert rgb(settings.DATA_COLOR) == (1, 1, 0.5) assert settings.DATA_ALPHA == 0.4
def test_foreground_background_settings(): d_1d = Data(x=np.random.random(100), y=np.random.random(100), label='Data 1d') d_2d = Data(x=np.random.random((100, 100)), y=np.random.random((100, 100)), label='Data 2d') dc = DataCollection([d_1d, d_2d]) app = GlueApplication(dc) # Make sure that settings change existing viewers, so we create a bunch of # viewers here. scatter1 = app.new_data_viewer(ScatterViewer) scatter1.add_data(d_1d) image1 = app.new_data_viewer(ImageViewer) image1.add_data(d_2d) histogram1 = app.new_data_viewer(HistogramViewer) histogram1.add_data(d_1d) dendrogram1 = app.new_data_viewer(DendroWidget) example_custom = _generate_custom_viewer() custom1 = app.new_data_viewer(example_custom) RED = (1, 0, 0, 0.5) GREEN = (0, 1, 0, 0.6) app.show() with patch('glue.config.settings') as settings: settings.FOREGROUND_COLOR = 'black' settings.BACKGROUND_COLOR = 'white' settings.DATA_COLOR = '0.5' settings.DATA_ALPHA = 0.5 dialog = PreferencesDialog(app) dialog.show() dialog.background = RED dialog.foreground = GREEN dialog.accept() assert_axes_background(scatter1.axes, RED) assert_axes_background(image1.axes, RED) assert_axes_background(histogram1.axes, RED) assert_axes_background(dendrogram1.axes, RED) assert_axes_background(custom1.axes, RED) assert_axes_foreground(scatter1.axes, GREEN) assert_axes_foreground(image1.axes, GREEN) assert_axes_foreground(histogram1.axes, GREEN) assert_axes_foreground(dendrogram1.axes, GREEN) assert_axes_foreground(custom1.axes, GREEN) # Now make sure that new viewers also inherit these settings scatter2 = app.new_data_viewer(ScatterViewer) scatter2.add_data(d_1d) image2 = app.new_data_viewer(ImageViewer) image2.add_data(d_2d) histogram2 = app.new_data_viewer(HistogramViewer) histogram2.add_data(d_1d) dendrogram2 = app.new_data_viewer(DendroWidget) custom2 = app.new_data_viewer(example_custom) assert_axes_background(scatter2.axes, RED) assert_axes_background(image2.axes, RED) assert_axes_background(histogram2.axes, RED) assert_axes_background(dendrogram2.axes, RED) assert_axes_background(custom2.axes, RED) assert_axes_foreground(scatter2.axes, GREEN) assert_axes_foreground(image2.axes, GREEN) assert_axes_foreground(histogram2.axes, GREEN) assert_axes_foreground(dendrogram2.axes, GREEN) assert_axes_foreground(custom2.axes, GREEN)
def test_foreground_background_settings(): d_1d = Data(x=np.random.random(100), y=np.random.random(100), label='Data 1d') d_2d = Data(x=np.random.random((100, 100)), y=np.random.random((100, 100)), label='Data 2d') dc = DataCollection([d_1d, d_2d]) app = GlueApplication(dc) # Make sure that settings change existing viewers, so we create a bunch of # viewers here. scatter1 = app.new_data_viewer(ScatterWidget) scatter1.add_data(d_1d) image1 = app.new_data_viewer(ImageWidget) image1.add_data(d_2d) histogram1 = app.new_data_viewer(HistogramWidget) histogram1.add_data(d_1d) dendrogram1 = app.new_data_viewer(DendroWidget) example_custom = _generate_custom_viewer() custom1 = app.new_data_viewer(example_custom) RED = (1, 0, 0, 0.5) GREEN = (0, 1, 0, 0.6) app.show() with patch('glue.config.settings') as settings: settings.FOREGROUND_COLOR = 'black' settings.BACKGROUND_COLOR = 'white' settings.DATA_COLOR = '0.5' settings.DATA_ALPHA = 0.5 dialog = PreferencesDialog(app) dialog.show() dialog.background = RED dialog.foreground = GREEN dialog.accept() assert_axes_background(scatter1.axes, RED) assert_axes_background(image1.axes, RED) assert_axes_background(histogram1.axes, RED) assert_axes_background(dendrogram1.axes, RED) assert_axes_background(custom1.axes, RED) assert_axes_foreground(scatter1.axes, GREEN) assert_axes_foreground(image1.axes, GREEN) assert_axes_foreground(histogram1.axes, GREEN) assert_axes_foreground(dendrogram1.axes, GREEN) assert_axes_foreground(custom1.axes, GREEN) # Now make sure that new viewers also inherit these settings scatter2 = app.new_data_viewer(ScatterWidget) scatter2.add_data(d_1d) image2 = app.new_data_viewer(ImageWidget) image2.add_data(d_2d) histogram2 = app.new_data_viewer(HistogramWidget) histogram2.add_data(d_1d) dendrogram2 = app.new_data_viewer(DendroWidget) custom2 = app.new_data_viewer(example_custom) assert_axes_background(scatter2.axes, RED) assert_axes_background(image2.axes, RED) assert_axes_background(histogram2.axes, RED) assert_axes_background(dendrogram2.axes, RED) assert_axes_background(custom2.axes, RED) assert_axes_foreground(scatter2.axes, GREEN) assert_axes_foreground(image2.axes, GREEN) assert_axes_foreground(histogram2.axes, GREEN) assert_axes_foreground(dendrogram2.axes, GREEN) assert_axes_foreground(custom2.axes, GREEN)