Пример #1
0
def test_error_message(patch):
    patch.many(ErrorCodes, ['is_error', 'get_error'])
    e = CompilerError(None, message='test error')
    assert str(e) == 'test error'

    ErrorCodes.is_error.return_value = True
    ErrorCodes.get_error.return_value = [None, 'foo']
    e2 = CompilerError('my_custom_error')
    assert str(e2) == 'foo'

    ErrorCodes.is_error.return_value = False
    e3 = CompilerError(None)
    assert str(e3) == 'Unknown compiler error'
Пример #2
0
def test_cli_compile_not_found(patch, runner, echo, app):
    """
    Ensures the compile command catches errors
    """
    ce = CompilerError(None)
    app.compile.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.compile, ['/a/non/existent/file'])
    assert e.exit_code == 1
    click.echo.assert_called_with(f'E0001: {StoryError._internal_error(ce)}')
Пример #3
0
def test_cli_compile_not_found(runner, echo, app):
    """
    Ensures the compile command catches errors
    """
    ce = CompilerError(None, message='error')
    app.compile.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.compile, ['/a/non/existent/file'])
    assert e.exit_code == 1
    click.echo.assert_called_with('error')
Пример #4
0
def test_cli_compile_not_found_debug(runner, echo, app):
    """
    Ensures the compile command raises errors with debug=True
    """
    ce = CompilerError(None)
    app.compile.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.compile, ['--debug', '/a/non/existent/file'])
    assert e.exit_code == 1
    assert isinstance(e.exception, CompilerError)
    assert e.exception.message() == 'Unknown compiler error'
Пример #5
0
def test_cli_parse_not_found(runner, echo, app, patch):
    """
    Ensures the parse command catches errors
    """
    patch.object(StoryError, 'message')
    ce = CompilerError(None)
    app.parse.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.parse, ['/a/non/existent/file'])
    assert e.exit_code == 1
    click.echo.assert_called_with(StoryError.message())
Пример #6
0
def test_cli_lex_not_found(patch, runner, echo, app):
    """
    Ensures the compile command catches errors
    """
    ce = CompilerError(None, message='error')
    patch.object(App, 'lex')
    App.lex.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.lex, ['/a/non/existent/file'])
    assert e.exit_code == 1
    click.echo.assert_called_with('error')
Пример #7
0
def test_cli_format_not_found_debug(patch, runner, echo, app):
    """
    Ensures the format command raises errors with debug=True
    """
    ce = CompilerError(None)
    patch.object(App, 'format')
    App.format.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.format, ['--debug', '/a/non/existent/file'])
    assert e.exit_code == 1
    assert isinstance(e.exception, CompilerError)
    assert e.exception.message() == 'Unknown compiler error'
Пример #8
0
def test_cli_format_not_found(patch, runner, echo, app):
    """
    Ensures the format command catches errors
    """
    patch.object(StoryError, 'message')
    ce = CompilerError(None)
    patch.object(App, 'format')
    App.format.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.format, ['/a/non/existent/file'])
    assert e.exit_code == 1
    click.echo.assert_called_with(StoryError.message())
Пример #9
0
def test_cli_lex_not_found_debug(patch, runner, echo, app):
    """
    Ensures the compile command raises errors with debug=True
    """
    ce = CompilerError(None, message='error')
    patch.object(App, 'lex')
    App.lex.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.lex, ['--debug', '/a/non/existent/file'])
    assert e.exit_code == 1
    assert isinstance(e.exception, StoryError)
    assert e.exception.short_message() == 'E0001: error'
Пример #10
0
def test_cli_parse_debug(runner, echo, app):
    """
    Ensures the parse command supports raises errors with debug=True
    """
    runner.invoke(Cli.parse, ['--debug'])
    ce = CompilerError(None, message='unexpected error')
    app.parse.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.parse, ['--debug', '/a/non/existent/file'])
    assert e.exit_code == 1
    assert isinstance(e.exception, StoryError)
    assert e.exception.short_message() == 'E0001: unexpected error'
Пример #11
0
def test_cli_lex_not_found_debug(patch, runner, echo, app):
    """
    Ensures the lex command raises errors with debug=True
    """
    ce = CompilerError(None)
    patch.object(App, "lex")
    App.lex.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.lex, ["--debug", "/a/non/existent/file"])
    assert e.exit_code == 1
    assert isinstance(e.exception, CompilerError)
    assert e.exception.message() == "Unknown compiler error"
Пример #12
0
def test_cli_lex_not_found(patch, runner, echo, app):
    """
    Ensures the lex command catches errors
    """
    patch.object(StoryError, "message")
    ce = CompilerError(None)
    patch.object(App, "lex")
    App.lex.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.lex, ["/a/non/existent/file"])
    assert e.exit_code == 1
    click.echo.assert_called_with(StoryError.message())
Пример #13
0
def test_cli_parse_debug(runner, echo, app):
    """
    Ensures the parse command supports raises errors with debug=True
    """
    runner.invoke(Cli.parse, ["--debug"])
    ce = CompilerError(None)
    app.parse.side_effect = StoryError(ce, None)
    e = runner.invoke(Cli.parse, ["--debug", "/a/non/existent/file"])
    assert e.exit_code == 1
    assert isinstance(e.exception, CompilerError)
    assert e.exception.message() == "Unknown compiler error"
Пример #14
0
def test_compiler_error_extra_parameters():
    e2 = CompilerError('my_custom_error', my_param='p1', my_param2='p2')
    assert e2.extra.my_param == 'p1'
    assert e2.extra.my_param2 == 'p2'