|
1 | 1 | from __future__ import absolute_import, division, print_function |
2 | 2 |
|
3 | 3 | import json |
| 4 | +from importlib.metadata import version |
| 5 | +from packaging.version import Version |
4 | 6 |
|
5 | 7 | import mock |
6 | 8 | import pytest |
7 | 9 | from mock import patch |
| 10 | +from numpy import __version__ as numpy_version |
8 | 11 | from chart_studio.plotly import plotly |
9 | 12 | from plotly.exceptions import PlotlyError |
10 | 13 |
|
11 | 14 | from glue.core import Data, DataCollection |
12 | 15 | from glue_qt.app import GlueApplication |
13 | 16 | from glue_qt.viewers.histogram import HistogramViewer |
| 17 | +from glue_qt.viewers.profile import ProfileViewer |
| 18 | +from glue_qt.viewers.scatter import ScatterViewer |
| 19 | +try: |
| 20 | + from glue_qt.plugins.dendro_viewer import DendrogramViewer |
| 21 | +except ImportError: |
| 22 | + DendrogramViewer = None |
14 | 23 |
|
15 | 24 | from glue_plotly.web.export_plotly import build_plotly_call |
16 | 25 |
|
|
21 | 30 | plotly_plot = mock.MagicMock() |
22 | 31 |
|
23 | 32 |
|
| 33 | +# glue-qt doesn't have a __version__ so we need to do this |
| 34 | +GLUE_QT_GE_031 = Version(version("glue_qt")) > Version('0.3.1') |
| 35 | +NUMPY_LT_2 = Version(numpy_version) < Version('2') |
| 36 | + |
| 37 | + |
24 | 38 | SIGN_IN_ERROR = """ |
25 | 39 | Aw, snap! You tried to use our API as the user 'BATMAN', but |
26 | 40 | the supplied API key doesn't match our records. You can view |
@@ -59,11 +73,26 @@ def setup_class(self): |
59 | 73 | self.app = GlueApplication(dc) |
60 | 74 |
|
61 | 75 | data.style.color = '#000000' |
62 | | - v = self.app.new_data_viewer(HistogramViewer, data=data) |
63 | | - v.component = data.id['y'] |
64 | | - v.xmin = 0 |
65 | | - v.xmax = 10 |
66 | | - v.bins = 20 |
| 76 | + hv = self.app.new_data_viewer(HistogramViewer, data=data) |
| 77 | + hv.component = data.id['y'] |
| 78 | + hv.xmin = 0 |
| 79 | + hv.xmax = 10 |
| 80 | + hv.bins = 20 |
| 81 | + |
| 82 | + sv = self.app.new_data_viewer(ScatterViewer, data=data) |
| 83 | + sv.state.x_att = data.id['x'] |
| 84 | + sv.state.y_att = data.id['y'] |
| 85 | + |
| 86 | + pv = self.app.new_data_viewer(ProfileViewer, data=data) |
| 87 | + pv.state.x_att = data.id['Pixel Axis 0 [x]'] |
| 88 | + |
| 89 | + # Workaround until for the issue solved in https://github.com/glue-viz/glue-qt/pull/19 |
| 90 | + if (NUMPY_LT_2 or GLUE_QT_GE_031) and DendrogramViewer is not None: |
| 91 | + dendro_data = Data(label='dendrogram', parent=[-1, 0, 1, 1], height=[1.3, 2.2, 3.2, 4.4]) |
| 92 | + dc.append(dendro_data) |
| 93 | + dv = self.app.new_data_viewer(DendrogramViewer, data=dendro_data) |
| 94 | + dv.state.height_att = dendro_data.id['height'] |
| 95 | + dv.state.parent_att = dendro_data.id['parent'] |
67 | 96 |
|
68 | 97 | self.args, self.kwargs = build_plotly_call(self.app) |
69 | 98 |
|
|
0 commit comments