示例#1
0
def test_non_existing_file():
    with pytest.raises(settings.ConfigError) as excinfo:
        # load non existing file
        settings.load(
            os.path.join(test_folder_path, 'test_non_existing_config.txt'))
    assert excinfo.match(r"Error reading file")
    assert excinfo.type == settings.ConfigError
示例#2
0
def test_extra_value(recwarn):
    extra_data = '''version: 1
lattice:
    name: bNaYF4
    N_uc: 8
    # concentration
    S_conc: 0.3
    A_conc: 0.3
    # unit cell
    # distances in Angstrom
    a: 5.9738
    b: 5.9738
    c: 3.5297
    # angles in degree
    alpha: 90
    beta: 90
    gamma: 120
    # the number is also ok for the spacegroup
    spacegroup: P-6
    # info about sites
    sites_pos: [[0, 0, 0], [2/3, 1/3, 1/2]]
    sites_occ: [1, 1/2]
    extra_value: 3
states:
    sensitizer_ion_label: Yb
    sensitizer_states_labels: [GS, ES]
    activator_ion_label: Tm
    activator_states_labels: [3H6, 3F4, 3H5, 3H4, 3F3, 1G4, 1D2]
excitations:
    Vis_473:
        active: True
        power_dens: 1e6 # power density W/cm^2
        t_pulse: 1e-8 # pulse width, seconds
        process: Tm(3H6) -> Tm(1G4) # both ion labels are required
        degeneracy: 13/9
        pump_rate: 9.3e-4 # cm2/J
sensitizer_decay:
# lifetimes in s
    ES: 2.5e-3
activator_decay:
# lifetimes in s
    3F4: 12e-3
    3H5: 25e-6
    3H4: 2e-3
    3F3: 2e-6
    1G4: 760e-6
    1D2: 67.5e-6
sensitizer_branching_ratios:
activator_branching_ratios:
'''
    with pytest.warns(
            settings.ConfigWarning):  # "extra_value" in lattice section
        with temp_filename(extra_data) as filename:
            settings.load(filename)
    assert len(recwarn) == 1  # one warning
    warning = recwarn.pop(settings.ConfigWarning)
    assert issubclass(warning.category, settings.ConfigWarning)
    assert 'Some values or sections should not be present in the file.' in str(
        warning.message)
示例#3
0
def test_standard_config(setup_cte):
    ''''Test that the returned Settings instance for a know config file is correct.'''
    filename = os.path.join(test_folder_path, 'test_standard_config.txt')
    cte = settings.load(filename)

    with open(filename, 'rt') as file:
        config_file = file.read()
    setup_cte['config_file'] = config_file
    settings_cte = settings.Settings(setup_cte)

    assert cte['lattice'] == settings_cte.lattice
    assert cte['states'] == settings_cte.states

    assert cte['excitations'] == settings_cte.excitations
    assert cte.decay['branching_S'] == settings_cte.decay['branching_S']
    assert cte.decay['decay_A'] == settings_cte.decay['decay_A']
    assert cte.decay['decay_S'] == settings_cte.decay['decay_S']
    assert cte.decay['branching_A'] == settings_cte.decay['branching_A']
    assert cte.decay == settings_cte.decay

    assert cte == settings_cte
示例#4
0
def test_not_dict_config():
    with pytest.raises(settings.ConfigError) as excinfo:
        with temp_filename('vers') as filename:
            settings.load(filename)
    assert excinfo.match(r"The settings file is empty or otherwise invalid")
    assert excinfo.type == settings.ConfigError
示例#5
0
def test_yaml_error_config(bad_yaml_data):
    with pytest.raises(settings.ConfigError) as excinfo:
        with temp_filename(bad_yaml_data) as filename:
            settings.load(filename)
    assert excinfo.match(r"Error while parsing the config file")
    assert excinfo.type == settings.ConfigError
示例#6
0
def test_version_config():
    with pytest.raises(settings.ConfigError) as excinfo:
        with temp_filename('version: 2') as filename:
            settings.load(filename)
    assert excinfo.match(r"Version number must be 1!")
    assert excinfo.type == settings.ConfigError