@@ -77,177 +77,29 @@ def test_altairplotdirective(app: Sphinx) -> None:
7777 assert result .count (VEGAEMBED_JS_URL_DEFAULT )
7878 assert result .count (VEGALITE_JS_URL_DEFAULT )
7979 assert result .count (VEGA_JS_URL_DEFAULT )
80- current_url = SCHEMA_URL # noqa: F841
81- # TODO: use regex to cut down length & avoid hardcoded `SCHEMA_URL`
80+ assert SCHEMA_URL in result
81+
82+ assert 'id="index-rst-altair-source-0"' in result
83+ assert '<div id="index-rst-altair-plot-0"' not in result
84+
85+ assert 'id="index-rst-altair-source-1"' in result
86+ assert 'id="index-rst-altair-plot-1"' in result
87+ assert '"actions": {"editor": true, "source": true, "export": true}' in result
88+
89+ assert '<div id="index-rst-altair-plot-2">' in result
90+ assert '</div><div class="highlight-python notranslate">' in result
91+
92+ assert 'id="index-rst-altair-source-3"' in result
93+ assert "Data({" in result
94+
95+ assert '<div id="index-rst-altair-plot-4"' in result
96+ assert 'id="index-rst-altair-source-4"' not in result
97+
98+ assert "Click to show code" in result
99+ assert '<div id="index-rst-altair-plot-5"' in result
100+
101+ assert '<div id="index-rst-altair-plot-6"' in result
102+ assert '"actions": {"editor": true, "source": false, "export": false}' in result
82103
83104 assert result .count ('class="test-class"' ) == 1
84- block_no_output = """\
85- <div class="highlight-python notranslate" id="index-rst-altair-source-0"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">altair</span> <span class="k">as</span> <span class="nn">alt</span>
86-
87- <span class="n">data</span> <span class="o">=</span> <span class="n">alt</span><span class="o">.</span><span class="n">Data</span><span class="p">(</span>
88- <span class="n">values</span><span class="o">=</span><span class="p">[</span>
89- <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="s2">"A"</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">5</span><span class="p">},</span>
90- <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="s2">"B"</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">3</span><span class="p">},</span>
91- <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="s2">"C"</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">6</span><span class="p">},</span>
92- <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="s2">"D"</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">7</span><span class="p">},</span>
93- <span class="p">{</span><span class="s2">"x"</span><span class="p">:</span> <span class="s2">"E"</span><span class="p">,</span> <span class="s2">"y"</span><span class="p">:</span> <span class="mi">2</span><span class="p">},</span>
94- <span class="p">]</span>
95- <span class="p">)</span>
96- </pre></div>
97- </div>"""
98- assert block_no_output in result
99-
100- block_plot_1 = """\
101- <div class="highlight-python notranslate" id="index-rst-altair-source-1"><div class="highlight"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
102- <span class="n">x</span><span class="o">=</span><span class="s2">"x:N"</span><span class="p">,</span>
103- <span class="n">y</span><span class="o">=</span><span class="s2">"y:Q"</span><span class="p">,</span>
104- <span class="p">)</span>
105- </pre></div>
106- </div>
107-
108- <div id="index-rst-altair-plot-1">
109- <script>
110- // embed when document is loaded, to ensure vega library is available
111- // this works on all modern browsers, except IE8 and older
112- document.addEventListener("DOMContentLoaded", function(event) {
113- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
114- var opt = {
115- "mode": "vega-lite",
116- "renderer": "canvas",
117- "actions": {"editor": true, "source": true, "export": true}
118- };
119- vegaEmbed('#index-rst-altair-plot-1', spec, opt).catch(console.err);
120- });
121- </script>
122- </div>"""
123- assert block_plot_1 in result
124-
125- block_plot_2 = """\
126- <div id="index-rst-altair-plot-2">
127- <script>
128- // embed when document is loaded, to ensure vega library is available
129- // this works on all modern browsers, except IE8 and older
130- document.addEventListener("DOMContentLoaded", function(event) {
131- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
132- var opt = {
133- "mode": "vega-lite",
134- "renderer": "canvas",
135- "actions": {"editor": true, "source": true, "export": true}
136- };
137- vegaEmbed('#index-rst-altair-plot-2', spec, opt).catch(console.err);
138- });
139- </script>
140- </div><div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
141- <span class="n">x</span><span class="o">=</span><span class="s2">"x:N"</span><span class="p">,</span>
142- <span class="n">y</span><span class="o">=</span><span class="s2">"y:Q"</span><span class="p">,</span>
143- <span class="p">)</span>
144- </pre></div>
145- </div>"""
146- assert block_plot_2 in result
147-
148- block_3 = """\
149- <div class="highlight-python notranslate" id="index-rst-altair-source-3"><div class="highlight"><pre><span></span><span class="n">data</span>
150- </pre></div>
151- </div>
152- <div class="highlight-none notranslate"><div class="highlight"><pre><span></span> Data({
153- values: [{'x': 'A', 'y': 5}, {'x': 'B', 'y': 3}, {'x': 'C', 'y': 6}, {'x': 'D', 'y': 7}, {'x': 'E', 'y': 2}]
154- })
155- </pre></div>
156- </div>"""
157- assert block_3 in result
158-
159- block_plot_4 = """\
160- <p>No code should be shown, only the plot.</p>
161-
162- <div id="index-rst-altair-plot-4">
163- <script>
164- // embed when document is loaded, to ensure vega library is available
165- // this works on all modern browsers, except IE8 and older
166- document.addEventListener("DOMContentLoaded", function(event) {
167- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
168- var opt = {
169- "mode": "vega-lite",
170- "renderer": "canvas",
171- "actions": {"editor": true, "source": true, "export": true}
172- };
173- vegaEmbed('#index-rst-altair-plot-4', spec, opt).catch(console.err);
174- });
175- </script>
176- </div>"""
177- assert block_plot_4 in result
178-
179- block_plot_5 = """\
180- <p>The code should be hidden and can be expanded.</p>
181- <details><summary><a>Click to show code</a></summary><div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
182- <span class="n">x</span><span class="o">=</span><span class="s2">"x:N"</span><span class="p">,</span>
183- <span class="n">y</span><span class="o">=</span><span class="s2">"y:Q"</span><span class="p">,</span>
184- <span class="p">)</span>
185- </pre></div>
186- </div>
187- </details>
188- <div id="index-rst-altair-plot-5">
189- <script>
190- // embed when document is loaded, to ensure vega library is available
191- // this works on all modern browsers, except IE8 and older
192- document.addEventListener("DOMContentLoaded", function(event) {
193- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
194- var opt = {
195- "mode": "vega-lite",
196- "renderer": "canvas",
197- "actions": {"editor": true, "source": true, "export": true}
198- };
199- vegaEmbed('#index-rst-altair-plot-5', spec, opt).catch(console.err);
200- });
201- </script>
202- </div>"""
203- assert block_plot_5 in result
204-
205- block_plot_6 = """\
206- <div class="highlight-python notranslate" id="index-rst-altair-source-6"><div class="highlight"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
207- <span class="n">x</span><span class="o">=</span><span class="s2">"x:N"</span><span class="p">,</span>
208- <span class="n">y</span><span class="o">=</span><span class="s2">"y:Q"</span><span class="p">,</span>
209- <span class="p">)</span>
210- </pre></div>
211- </div>
212-
213- <div id="index-rst-altair-plot-6">
214- <script>
215- // embed when document is loaded, to ensure vega library is available
216- // this works on all modern browsers, except IE8 and older
217- document.addEventListener("DOMContentLoaded", function(event) {
218- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
219- var opt = {
220- "mode": "vega-lite",
221- "renderer": "canvas",
222- "actions": {"editor": true, "source": false, "export": false}
223- };
224- vegaEmbed('#index-rst-altair-plot-6', spec, opt).catch(console.err);
225- });
226- </script>
227- </div>"""
228- assert block_plot_6 in result
229-
230- block_plot_7 = """\
231- <div class="highlight-python notranslate" id="index-rst-altair-source-7"><div class="highlight"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
232- <span class="n">x</span><span class="o">=</span><span class="s2">"x:N"</span><span class="p">,</span>
233- <span class="n">y</span><span class="o">=</span><span class="s2">"y:Q"</span><span class="p">,</span>
234- <span class="p">)</span>
235- </pre></div>
236- </div>
237-
238- <div id="index-rst-altair-plot-7" class="test-class">
239- <script>
240- // embed when document is loaded, to ensure vega library is available
241- // this works on all modern browsers, except IE8 and older
242- document.addEventListener("DOMContentLoaded", function(event) {
243- var spec = {"config": {"view": {"continuousWidth": 300, "continuousHeight": 300}}, "data": {"values": [{"x": "A", "y": 5}, {"x": "B", "y": 3}, {"x": "C", "y": 6}, {"x": "D", "y": 7}, {"x": "E", "y": 2}]}, "mark": {"type": "bar"}, "encoding": {"x": {"field": "x", "type": "nominal"}, "y": {"field": "y", "type": "quantitative"}}, "$schema": "https://vega.github.io/schema/vega-lite/v5.20.1.json"};
244- var opt = {
245- "mode": "vega-lite",
246- "renderer": "canvas",
247- "actions": {"editor": true, "source": true, "export": true}
248- };
249- vegaEmbed('#index-rst-altair-plot-7', spec, opt).catch(console.err);
250- });
251- </script>
252- </div>"""
253- assert block_plot_7 in result
105+ assert '<div id="index-rst-altair-plot-7" class="test-class">' in result
0 commit comments