mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-30 10:46:54 +00:00
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""Tests for the flake8.exceptions module."""
|
|
import pickle
|
|
|
|
import entrypoints
|
|
|
|
from flake8 import exceptions
|
|
from flake8.plugins import manager as plugins_manager
|
|
|
|
|
|
class _ExceptionTest:
|
|
def test_pickleable(self):
|
|
"""Test that the exception is round-trip pickleable."""
|
|
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
|
new_err = pickle.loads(pickle.dumps(self.err, protocol=proto))
|
|
assert str(self.err) == str(new_err)
|
|
orig_e = self.err.original_exception
|
|
new_e = new_err.original_exception
|
|
assert (type(orig_e), orig_e.args) == (type(new_e), new_e.args)
|
|
|
|
|
|
class TestFailedToLoadPlugin(_ExceptionTest):
|
|
"""Tests for the FailedToLoadPlugin exception."""
|
|
|
|
err = exceptions.FailedToLoadPlugin(
|
|
plugin=plugins_manager.Plugin(
|
|
'plugin_name',
|
|
entrypoints.EntryPoint('plugin_name', 'os.path', None),
|
|
),
|
|
exception=ValueError('boom!'),
|
|
)
|
|
|
|
|
|
class TestInvalidSyntax(_ExceptionTest):
|
|
"""Tests for the InvalidSyntax exception."""
|
|
|
|
err = exceptions.InvalidSyntax(exception=ValueError('Unexpected token: $'))
|
|
|
|
|
|
class TestPluginRequestedUnknownParameters(_ExceptionTest):
|
|
"""Tests for the PluginRequestedUnknownParameters exception."""
|
|
|
|
err = exceptions.PluginRequestedUnknownParameters(
|
|
plugin={'plugin_name': 'plugin_name'},
|
|
exception=ValueError('boom!'),
|
|
)
|
|
|
|
|
|
class TestPluginExecutionFailed(_ExceptionTest):
|
|
"""Tests for the PluginExecutionFailed exception."""
|
|
|
|
err = exceptions.PluginExecutionFailed(
|
|
plugin={'plugin_name': 'plugin_name'},
|
|
exception=ValueError('boom!'),
|
|
)
|