Skip to content

Commit 171ca17

Browse files
FEAT: Add test for building gallery (#787)
Co-authored-by: pyansys-ci-bot <[email protected]>
1 parent 2076621 commit 171ca17

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

doc/changelog.d/787.added.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FEAT: Add test for building gallery

tests/embedding/test_app.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,32 @@ def test_normal_appdata(pytestconfig, run_subprocess, rootdir):
262262
assert "ShowTriad value is False" in stdout
263263

264264

265+
@pytest.mark.embedding_scripts
266+
def test_building_gallery(pytestconfig, run_subprocess, rootdir):
267+
"""Test for building gallery check.
268+
269+
When building the gallery, each example file creates another instance of the app.
270+
When the BUILDING_GALLERY flag is enabled, only one instance is kept.
271+
This is to test the bug fixed in https://github.com/ansys/pymechanical/pull/784
272+
and will fail on PyMechanical version 0.11.0
273+
"""
274+
version = pytestconfig.getoption("ansys_version")
275+
276+
embedded_gallery_py = os.path.join(rootdir, "tests", "scripts", "build_gallery_test.py")
277+
278+
_, stderr = run_subprocess([sys.executable, embedded_gallery_py, version, "False"], None, False)
279+
stderr = stderr.decode()
280+
281+
# Assert Exception
282+
assert "Cannot have more than one embedded mechanical instance" in stderr
283+
284+
stdout, _ = run_subprocess([sys.executable, embedded_gallery_py, version, "True"])
285+
stdout = stdout.decode()
286+
287+
# Assert stdout after launching multiple instances
288+
assert "Multiple App launched with building gallery flag on" in stdout
289+
290+
265291
@pytest.mark.embedding
266292
def test_rm_lockfile(embedded_app, tmp_path: pytest.TempPathFactory):
267293
"""Test lock file is removed on close of embedded application."""

tests/scripts/build_gallery_test.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Copyright (C) 2022 - 2024 ANSYS, Inc. and/or its affiliates.
2+
# SPDX-License-Identifier: MIT
3+
#
4+
#
5+
# Permission is hereby granted, free of charge, to any person obtaining a copy
6+
# of this software and associated documentation files (the "Software"), to deal
7+
# in the Software without restriction, including without limitation the rights
8+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
# copies of the Software, and to permit persons to whom the Software is
10+
# furnished to do so, subject to the following conditions:
11+
#
12+
# The above copyright notice and this permission notice shall be included in all
13+
# copies or substantial portions of the Software.
14+
#
15+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
# SOFTWARE.
22+
23+
"""Launch embedded instance with build gallery flag."""
24+
import sys
25+
26+
import ansys.mechanical.core as pymechanical
27+
28+
29+
def launch_app(version):
30+
"""Launch embedded instance of app."""
31+
# Configuration.configure(level=logging.DEBUG, to_stdout=True, base_directory=None)
32+
app = pymechanical.App(version=version)
33+
app.update_globals(globals())
34+
return app
35+
36+
37+
if __name__ == "__main__":
38+
version = int(sys.argv[1])
39+
build_gallery_flag = sys.argv[2]
40+
app1 = launch_app(version)
41+
42+
if build_gallery_flag == "True":
43+
44+
pymechanical.BUILDING_GALLERY = True
45+
46+
app2 = launch_app(version)
47+
print("Multiple App launched with building gallery flag on")
48+
49+
elif build_gallery_flag == "False":
50+
app2 = launch_app(version)

0 commit comments

Comments
 (0)