OpenMC/tests/unit_tests/test_config.py
2022-09-07 16:46:11 -05:00

43 lines
1.3 KiB
Python

from collections.abc import Mapping
import os
import openmc
import pytest
@pytest.fixture(autouse=True, scope='module')
def reset_config():
config = dict(openmc.config)
try:
yield
finally:
openmc.config.clear()
openmc.config.update(config)
def test_config_basics():
assert isinstance(openmc.config, Mapping)
for key, value in openmc.config.items():
assert isinstance(key, str)
assert isinstance(value, os.PathLike)
# Set and delete
openmc.config['cross_sections'] = '/path/to/cross_sections.xml'
del openmc.config['cross_sections']
assert 'cross_sections' not in openmc.config
assert 'OPENMC_CROSS_SECTIONS' not in os.environ
# Can't use any key
with pytest.raises(KeyError):
openmc.config['🐖'] = '/like/to/eat/bacon'
def test_config_set_envvar():
openmc.config['cross_sections'] = '/path/to/cross_sections.xml'
assert os.environ['OPENMC_CROSS_SECTIONS'] == '/path/to/cross_sections.xml'
openmc.config['mg_cross_sections'] = '/path/to/mg_cross_sections.h5'
assert os.environ['OPENMC_MG_CROSS_SECTIONS'] == '/path/to/mg_cross_sections.h5'
openmc.config['chain_file'] = '/path/to/chain_file.xml'
assert os.environ['OPENMC_CHAIN_FILE'] == '/path/to/chain_file.xml'