Esempio n. 1
0
def test_main_calls_eddy_scale_case(mocker, scale_file):
    # arrange
    name = 'scale_examples/cylinder_ce.out'
    data = scale_file
    sf = 3.141592
    crit = False
    mocker.patch('eddymc.eddy.get_args', return_value=(
        name,
        data,
        sf,
        crit,
    ))
    mocked_eddy_mcnp_case = mocker.patch(
        'eddymc.mcnp.eddy_mcnp_case.EddyMCNPCase.__init__')
    mocked_eddy_scale_case = mocker.patch(
        'eddymc.scale.eddy_scale_case.EddySCALECase.__init__',
        return_value=None)
    mocker.patch('eddymc.scale.scale_html_writer.get_html',
                 return_value='test_html')
    mocker.patch('eddymc.eddy.write_output')
    # act
    eddy.main(filename=name, scaling_factor=sf)
    # assert
    mocked_eddy_mcnp_case.assert_not_called()
    mocked_eddy_scale_case.assert_called()
Esempio n. 2
0
def test_main_calls_eddy_mcnp_case(mocker, f2_file):
    # arrange
    name = 'mcnp_examples/F2.out'
    data = f2_file
    data = eddy.sanitize_list(data)  # not ideal re-using this in test
    sf = 3.141592
    crit = False
    mocker.patch('eddymc.eddy.get_args', return_value=(
        name,
        data,
        sf,
        crit,
    ))
    mocked_eddy_scale_case = mocker.patch(
        'eddymc.scale.eddy_scale_case.EddySCALECase.__init__')
    mocked_eddy_mcnp_case = mocker.patch(
        'eddymc.mcnp.eddy_mcnp_case.EddyMCNPCase.__init__', return_value=None)
    mocker.patch('eddymc.mcnp.mcnp_html_writer.get_html',
                 return_value='test_html')
    mocker.patch('eddymc.eddy.write_output')
    # act
    eddy.main(filename=name, scaling_factor=sf)
    # assert
    mocked_eddy_mcnp_case.assert_called()
    mocked_eddy_scale_case.assert_not_called()
Esempio n. 3
0
def test_main_with_nonexistent_input_passed(mocker):
    # arrange
    name = 'mcnp_examples/nonexistent_file.txt'
    mocker.patch(
        'eddymc.eddy.argparse.ArgumentParser.parse_args',
        return_value=Namespace(file=None, scaling_factor=None),
    )
    # act, assert
    with pytest.raises(AssertionError):
        eddy.main(name)
Esempio n. 4
0
def test_main_with_non_mc_input(mocker, text_file):
    # arrange
    name = 'mcnp_examples/not_an_mcnp_file.txt'
    data = text_file
    sf = 3.141592
    crit = False
    mocker.patch(
        'eddymc.eddy.argparse.ArgumentParser.parse_args',
        return_value=Namespace(file=None, scaling_factor=None),
    )
    # act, assert
    with pytest.raises(RuntimeError):
        eddy.main(name, sf)
Esempio n. 5
0
def test_main_with_nonexistent_input_passed(mocker):
    # arrange
    name = 'mcnp_examples/nonexistent_file.out'
    mocker.patch(
        'eddymc.eddy.argparse.ArgumentParser.parse_args',
        return_value=Namespace(file=None, scaling_factor=None),
    )
    # act
    # actually fails in get_filename()
    with pytest.raises(AssertionError) as expected_failure:
        eddy.main(name)
    # assert
    assert expected_failure
Esempio n. 6
0
def test_input_file_doesnt_continue(mocker):
    # arrange
    name = 'mcnp_examples/F4.mcnp'
    mocker.patch(
        'eddymc.eddy.argparse.ArgumentParser.parse_args',
        return_value=Namespace(file=None, scaling_factor=None),
    )
    mocked_scale_converter = mocker.patch('eddymc.scale.scale_converter.main')
    mocked_mcnp_converter = mocker.patch('eddymc.mcnp.mcnp_converter.main')
    # act
    with pytest.raises(RuntimeError) as expected_failure:
        eddy.main(filename=name, scaling_factor=1)
    # assert
    mocked_mcnp_converter.assert_not_called()
    mocked_scale_converter.assert_not_called()
    assert expected_failure
Esempio n. 7
0
def test_main_calls_mcnp_converter(mocker, f2_file):
    # arrange
    name = 'mcnp_examples/F2.out'
    data = f2_file
    sf = 3.141592
    crit = False
    mocker.patch(
        'eddymc.eddy.argparse.ArgumentParser.parse_args',
        return_value=Namespace(file=None, scaling_factor=None),
    )
    mocked_scale_converter = mocker.patch('eddymc.scale.scale_converter.main')
    mocked_mcnp_converter = mocker.patch('eddymc.mcnp.mcnp_converter.main')
    # act
    eddy.main(filename=name, scaling_factor=sf)
    # assert
    mocked_mcnp_converter.assert_called_with(name, sf, crit)
    mocked_scale_converter.assert_not_called()
Esempio n. 8
0
def test_main_with_non_mc_input(mocker, text_file):
    # arrange
    name = 'mcnp_examples/not_an_mcnp_file.out'
    data = text_file
    sf = 3.141592
    crit = False
    mocker.patch('eddymc.eddy.get_args', return_value=(
        name,
        data,
        sf,
        crit,
    ))
    # act
    with pytest.raises(eddy.NotAcceptedFileTypeError) as expected_failure:
        eddy.main(name, sf)
    # assert
    assert expected_failure
Esempio n. 9
0
def test_examples_run():
    # try to run all the mcnp example cases
    for file in glob.glob('mcnp_examples/*.out'):
        try:
            eddy.main(file, scaling_factor=1.5)
        except eddy.NotAcceptedFileTypeError:
            pass
        except:
            print(f"Exception thrown when running {file}")
            raise

    # try to run all the scale example cases
    for file in glob.glob('scale_examples/*.out'):
        try:
            eddy.main(file, scaling_factor=1.5)
        except:
            print(f"Exception thrown when running {file}")
            raise
Esempio n. 10
0
def test_main_calls_html_writer(mocker, f2_file):
    # arrange
    name = 'mcnp_examples/F2.out'
    sf = 1234
    data = f2_file
    crit = False
    mocker.patch('eddymc.eddy.get_args', return_value=(
        name,
        data,
        sf,
        crit,
    ))
    mocked_html_writer = mocker.patch('eddymc.mcnp.mcnp_html_writer.get_html',
                                      return_value=None)
    mocker.patch('eddymc.mcnp.eddy_mcnp_case.EddyMCNPCase.__init__',
                 return_value=None)
    mocker.patch('eddymc.eddy.write_output')
    # act
    eddy.main(filename=name, scaling_factor=sf)
    # assert
    mocked_html_writer.assert_called()
Esempio n. 11
0
def test_mcnp_input_file_doesnt_continue(mocker, mcnp_input):
    # arrange
    name = 'mcnp_examples/F4.mcnp'
    sf = 2
    data = mcnp_input
    crit = False
    mocker.patch('eddymc.eddy.get_args', return_value=(
        name,
        data,
        sf,
        crit,
    ))
    mocked_eddy_scale_case = mocker.patch(
        'eddymc.scale.eddy_scale_case.EddySCALECase.__init__')
    mocked_eddy_mcnp_case = mocker.patch(
        'eddymc.mcnp.eddy_mcnp_case.EddyMCNPCase.__init__.__init__')
    # act
    with pytest.raises(eddy.NotAcceptedFileTypeError) as expected_failure:
        eddy.main(filename=name, scaling_factor=1)
    # assert
    mocked_eddy_mcnp_case.assert_not_called()
    mocked_eddy_scale_case.assert_not_called()
    assert expected_failure