Skip to content

Commit 71b804a

Browse files
Pull request #89: Implement reset and load of default user set
Merge in HSW_SDK/vmbpy from bugfix/UNI-868-load-default-user-set-before-test-suite-execution to dev * commit '9d4e3a6975f1ac639f08ccf93c2b5dc8072638ba': Restore default user set after test suite execution Implement reset and load of default user set
2 parents 4e075b8 + 9d4e3a6 commit 71b804a

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

Tests/helpers.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"""
2727
import os
2828
import unittest
29+
import warnings
2930

3031
import vmbpy
3132

@@ -82,3 +83,33 @@ def calculate_acquisition_time(cam: vmbpy.Camera, num_frames: int) -> float:
8283
"""
8384
fps = cam.get_feature_by_name('AcquisitionFrameRate').get()
8485
return num_frames / fps
86+
87+
88+
def reset_default_user_set(cam_id: str) -> None:
89+
try:
90+
with vmbpy.VmbSystem.get_instance() as vmb:
91+
cam = vmb.get_camera_by_id(cam_id)
92+
with cam:
93+
try:
94+
cam.get_feature_by_name('UserSetDefault').set('Default')
95+
except vmbpy.VmbFeatureError:
96+
try:
97+
cam.get_feature_by_name('UserSetDefaultSelector').set('Default')
98+
except vmbpy.VmbFeatureError:
99+
warnings.warn('Failed to reset default user set')
100+
except vmbpy.VmbCameraError:
101+
warnings.warn('Camera could not be found to reset the default user set')
102+
103+
104+
def load_default_user_set(cam_id: str) -> None:
105+
try:
106+
with vmbpy.VmbSystem.get_instance() as vmb:
107+
cam = vmb.get_camera_by_id(cam_id)
108+
with cam:
109+
try:
110+
cam.get_feature_by_name('UserSetSelector').set('Default')
111+
cam.get_feature_by_name('UserSetLoad').run()
112+
except vmbpy.VmbFeatureError:
113+
warnings.warn('Failed to load default user set')
114+
except vmbpy.VmbCameraError:
115+
warnings.warn('Camera could not be found to load default user set')

Tests/runner.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
# Add local directory to search path for test module import in this script.
3333
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
3434

35-
from helpers import VmbPyTestCase
35+
from helpers import VmbPyTestCase, reset_default_user_set, load_default_user_set
3636

3737
# Add VmbPy module at the start of the search path. The tests should run against the
3838
# local vmbpy sources regardless of any existing installations.
@@ -203,6 +203,9 @@ def aligned_print(first, second):
203203
for mod in REAL_CAM_TEST_MODS:
204204
test_suite.addTests(_blacklist_tests(loader.loadTestsFromModule(mod), args.blacklist))
205205

206+
reset_default_user_set(VmbPyTestCase.get_test_camera_id())
207+
load_default_user_set(VmbPyTestCase.get_test_camera_id())
206208
result = runner.run(test_suite)
207-
209+
reset_default_user_set(VmbPyTestCase.get_test_camera_id())
210+
load_default_user_set(VmbPyTestCase.get_test_camera_id())
208211
sys.exit(0 if result.wasSuccessful() else 1)

0 commit comments

Comments
 (0)