VIKTOR's D-Geo Stability integration requires a specific D-Geo Stability worker which can be downloaded here.
Analyzing a D-Geo Stability model in VIKTOR can be done using the
DGeoStabilityAnalysis class (worker required).
No binding is provided by VIKTOR for this module, which means that the input file has to be generated manually:
from viktor.external.dgeostability import DGeoStabilityAnalysis
# Generate the input STI file.
input_file = ...
# Run the analysis and obtain the output file.
analysis = DGeoStabilityAnalysis(input_file)
output_file = analysis.get_output_file()
mock_DGeoStabilityAnalysis decorator for easier testing of
DGeoStabilityAnalysis.execute needs to be mocked
within the context of (automated) testing.
viktor.testing module provides the
decorator that facilitate mocking of workers:
from viktor import File
from viktor.testing import mock_DGeoStabilityAnalysis
from app.my_entity_type.controller import MyEntityTypeController
For the decorator's input parameters the following holds:
- If a Sequence type is provided, the next entry is returned for each corresponding method call. When a call is performed on a depleted iterable, an Exception is raised.
- If a single object is provided, the object is returned each time the corresponding method is called (endlessly).
- If None is provided (default), a default File/BytesIO object (with empty content) is returned each time the corresponding method is called (endlessly).