Skip to content

Commit

Permalink
added new tests and option to run interation tests along with unmarke…
Browse files Browse the repository at this point in the history
…d tests on github
  • Loading branch information
akulshre-qa committed Aug 2, 2022
1 parent c3ae87e commit fe432ac
Show file tree
Hide file tree
Showing 7 changed files with 215 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ test-import:
unittest:
@echo "Running unittest"
@pip install -r requirements/requirements_tests.txt
@pytest -v --cov=ansys.fluent --cov-report html:cov_html --cov-config=.coveragerc
@pytest -v -m "unmarked or integration" --cov=ansys.fluent --cov-report html:cov_html --cov-config=.coveragerc

api-codegen:
@echo "Running API codegen"
Expand Down
3 changes: 2 additions & 1 deletion pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ markers =
quick:Run the quick tests
setup:Tests checking general features after import
solve:Test running end to end
mesh:Test meshing
mesh:Test meshing
unmarked:All unmarked tests
6 changes: 6 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
]


def pytest_collection_modifyitems(items, config):
for item in items:
if not any(item.iter_markers()):
item.add_marker("unmarked")


@pytest.fixture
def with_launching_container(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("PYFLUENT_LAUNCH_CONTAINER", "1")
61 changes: 58 additions & 3 deletions tests/test_solvermode/test_general.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,69 @@

@pytest.mark.quick
@pytest.mark.setup
def test_solver_import_mixingelbow(load_mixing_elbow_mesh):
def test_solver_import_mixing_elbow(load_mixing_elbow_mesh):
session = load_mixing_elbow_mesh
assert session.solver.root.get_attr("active?")
solver = session.solver.root
assert solver.get_attr("active?")
assert session.check_health() == "SERVING"
###
assert not session.solver.root.setup.models.energy.enabled()
assert not solver.setup.models.energy.enabled()
assert session.scheme_eval.scheme_eval("(case-valid?)")
###
session.solver.tui.mesh.check()
session.solver.tui.define.units("length", "in")
assert session.scheme_eval.scheme_eval('(units/quantity-info "length")')[-1] == "in"

solver.setup.general.solver.get_active_child_names()

solver.mesh.check()
solver.setup.general.solver.time.get_attr("allowed-values")
solver.setup.general.solver.time = "unsteady-2nd-order"
solver.setup.general.solver.time = "unsteady-1st-order"
solver.setup.general.solver.time = "unsteady-2nd-order-bounded"
solver.setup.general.solver.time = "steady"

# solver.setup.general.gravity = {"gravity": True, "y_component": -9.81}
# solver.mesh.scale(x_scale=0.001, y_scale=0.001, z_scale=0.001)
solver.setup.general.solver.type.get_attr("allowed-values")
solver.setup.general.solver.type = "density-based-implicit"
assert solver.setup.general.solver.type() == "density-based-implicit"
solver.setup.general.solver.type = "density-based-explicit"
assert solver.setup.general.solver.type() == "density-based-explicit"
solver.setup.general.solver.type = "pressure-based"
assert solver.setup.general.solver.type() == "pressure-based"

solver.file.auto_save.data_frequency = 10
assert solver.file.auto_save.data_frequency() == 10
solver.file.auto_save.case_frequency = "each-time"
assert solver.file.auto_save.case_frequency() == "each-time"
solver.file.auto_save.root_name = "file_auto_save"
assert solver.file.auto_save.root_name() == "file_auto_save"
solver.setup.reference_values.compute(from_zone_name="outlet")


@pytest.mark.quick
@pytest.mark.setup
def test_disk_2d_setup(load_disk_mesh):
session = load_disk_mesh
solver = session.solver.root
assert solver.get_attr("active?")
assert session.check_health() == "SERVING"
###
assert not solver.setup.models.energy.enabled()
assert session.scheme_eval.scheme_eval("(case-valid?)")
solver.mesh.check()
assert solver.setup.general.solver.two_dim_space.get_attr("allowed-values") == [
"swirl",
"axisymmetric",
"planar",
]
assert solver.setup.general.solver.two_dim_space() == "planar"
solver.setup.general.solver.two_dim_space = "axisymmetric"
assert solver.setup.general.solver.two_dim_space() == "axisymmetric"
solver.setup.general.solver.two_dim_space = "swirl"
assert solver.setup.general.solver.two_dim_space() == "swirl"
solver.setup.general.solver.two_dim_space = "planar"
assert solver.setup.general.solver.two_dim_space() == "planar"
# Bug 682773
# solver.setup.general.gravity = {"gravity": True, "x_component": -9.81}
49 changes: 48 additions & 1 deletion tests/test_solvermode/test_materials.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
@pytest.mark.setup
def test_solver_material(load_mixing_elbow_mesh):
session = load_mixing_elbow_mesh
session.solver.root.setup.materials.copy_database_material_by_name(
# session.solver.root.setup.materials.copy_database_material_by_name(type="fluid", name="water-liquid")
session.solver.root.setup.materials.database.copy_by_name(
type="fluid", name="water-liquid"
)

assert (
"water-liquid"
not in session.solver.root.setup.cell_zone_conditions.fluid[
Expand All @@ -24,3 +26,48 @@ def test_solver_material(load_mixing_elbow_mesh):
"elbow-fluid"
].material()
)

session.solver.root.setup.materials.database.copy_by_name(type="fluid", name="air")
session.solver.root.setup.cell_zone_conditions.fluid["elbow-fluid"].material = "air"
assert (
"air"
in session.solver.root.setup.cell_zone_conditions.fluid[
"elbow-fluid"
].material()
)
assert (
"air"
in session.solver.root.setup.cell_zone_conditions.fluid[
"elbow-fluid"
].material()
)
assert session.solver.root.setup.materials.child_names == [
"database",
"fluid",
"solid",
"mixture",
"inert_particle",
"droplet_particle",
"combusting_particle",
"particle_mixture",
]
assert session.solver.root.setup.materials.database.get_active_command_names() == [
"copy_by_formula",
"copy_by_name",
"list_materials",
"list_properties",
]

session.solver.root.setup.materials.database.copy_by_formula(
type="fluid", formula="c2h6"
)

session.solver.root.setup.cell_zone_conditions.fluid[
"elbow-fluid"
].material = "ethane"
assert (
"ethane"
in session.solver.root.setup.cell_zone_conditions.fluid[
"elbow-fluid"
].material()
)
82 changes: 82 additions & 0 deletions tests/test_solvermode/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,85 @@ def test_solver_models(load_mixing_elbow_mesh):
assert not session.solver.root.setup.models.energy.enabled()
session.solver.root.setup.models.energy.enabled = True
assert session.solver.root.setup.models.energy.enabled()


@pytest.mark.quick
@pytest.mark.setup
def test_disk_2d_models(load_disk_mesh):
session = load_disk_mesh
solver = session.solver.root
solver.setup.general.solver.two_dim_space = "axisymmetric"
solver.setup.general.solver.two_dim_space = "swirl"
solver.setup.models.viscous.model = "k-epsilon"
assert solver.setup.models.viscous.model() == "k-epsilon"
solver.setup.models.viscous.near_wall_treatment.wall_function = (
"enhanced-wall-treatment"
)
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "enhanced-wall-treatment"
)
solver.setup.models.viscous.near_wall_treatment.wall_function.get_attr(
"allowed-values"
)
solver.setup.models.viscous.near_wall_treatment.wall_function = "standard-wall-fn"
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "standard-wall-fn"
)
solver.setup.models.viscous.near_wall_treatment.wall_function = (
"non-equilibrium-wall-fn"
)
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "non-equilibrium-wall-fn"
)
solver.setup.models.viscous.near_wall_treatment.wall_function = "menter-lechner"
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "menter-lechner"
)
solver.setup.models.viscous.near_wall_treatment.wall_function = (
"scalable-wall-functions"
)
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "scalable-wall-functions"
)
solver.setup.models.viscous.near_wall_treatment.wall_function = (
"user-defined-wall-functions"
)
# As udf is not available, so it will change automatically to standard wall function
assert (
solver.setup.models.viscous.near_wall_treatment.wall_function()
== "standard-wall-fn"
)

solver.setup.models.viscous.model = "k-omega"
assert solver.setup.models.viscous.model() == "k-omega"
assert solver.setup.models.viscous.k_omega_model.get_attr("allowed-values") == [
"standard",
"geko",
"bsl",
"sst",
]
assert solver.setup.models.viscous.k_omega_model() == "standard"
solver.setup.models.viscous.k_omega_model = "geko"
assert solver.setup.models.viscous.k_omega_model() == "geko"
solver.setup.models.viscous.k_omega_model = "bsl"
assert solver.setup.models.viscous.k_omega_model() == "bsl"
solver.setup.models.viscous.k_omega_model = "sst"
assert solver.setup.models.viscous.k_omega_model() == "sst"
assert solver.setup.models.viscous.model.get_attr("allowed-values") == [
"inviscid",
"laminar",
"k-epsilon",
"k-omega",
"mixing-length",
"spalart-allmaras",
"k-kl-w",
"transition-sst",
"reynolds-stress",
"scale-adaptive-simulation",
"detached-eddy-simulation",
]
18 changes: 18 additions & 0 deletions tests/util/fixture_fluent.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,21 @@ def load_mixing_elbow_case_dat(with_launching_container):
)
yield session
session.exit()


_disk_mesh_filename = None


@pytest.fixture
def load_disk_mesh(with_launching_container):
session = pyfluent.launch_fluent(
precision="double", processor_count=2, version="2d"
)
global _disk_mesh_filename
if not _disk_mesh_filename:
_disk_mesh_filename = download_file(
filename="disk.msh", directory="pyfluent/disk_tut"
)
session.solver.root.file.read(file_type="case", file_name=_disk_mesh_filename)
yield session
session.exit()

0 comments on commit fe432ac

Please sign in to comment.