From 5103e3592bf17a40caa3a1f2af0e88d72f9ca616 Mon Sep 17 00:00:00 2001 From: Felix Divo Date: Sat, 18 May 2019 19:00:41 +0200 Subject: [PATCH 1/2] modernize test cases --- test/back2back_test.py | 2 -- test/listener_test.py | 4 +--- test/logformats_test.py | 14 ++------------ test/message_helper.py | 4 +--- test/network_test.py | 8 ++------ test/notifier_test.py | 7 +------ test/serial_test.py | 4 +--- test/simplecyclic_test.py | 2 -- test/test_detect_available_configs.py | 6 +----- test/test_kvaser.py | 5 +---- test/test_load_file_config.py | 1 + test/test_message_filtering.py | 2 -- test/test_message_sync.py | 2 -- test/test_scripts.py | 6 +----- test/test_slcan.py | 1 + test/test_socketcan.py | 11 +++-------- test/test_socketcan_helpers.py | 4 +--- test/test_systec.py | 5 +---- test/test_viewer.py | 15 ++------------- 19 files changed, 20 insertions(+), 83 deletions(-) diff --git a/test/back2back_test.py b/test/back2back_test.py index 4062d462a..e54ad93e4 100644 --- a/test/back2back_test.py +++ b/test/back2back_test.py @@ -5,8 +5,6 @@ This module tests two virtual buses attached to each other. """ -from __future__ import absolute_import, print_function - import sys import unittest from time import sleep diff --git a/test/listener_test.py b/test/listener_test.py index c25a6fb56..840f687fb 100644 --- a/test/listener_test.py +++ b/test/listener_test.py @@ -4,8 +4,6 @@ """ """ -from __future__ import absolute_import, print_function - from time import sleep import unittest import random @@ -117,7 +115,7 @@ def test_filetype_to_instance(extension, klass): test_filetype_to_instance(".log", can.CanutilsLogReader) # test file extensions that are not supported - with self.assertRaisesRegexp(NotImplementedError, ".xyz_42"): + with self.assertRaisesRegex(NotImplementedError, ".xyz_42"): test_filetype_to_instance(".xyz_42", can.Printer) def testLoggerTypeResolution(self): diff --git a/test/logformats_test.py b/test/logformats_test.py index d9551e5d6..809639e6d 100644 --- a/test/logformats_test.py +++ b/test/logformats_test.py @@ -14,20 +14,12 @@ TODO: implement CAN FD support testing """ -from __future__ import print_function, absolute_import, division - import logging import unittest import tempfile import os from abc import abstractmethod, ABCMeta - -try: - # Python 3 - from itertools import zip_longest -except ImportError: - # Python 2 - from itertools import izip_longest as zip_longest +from itertools import zip_longest import can @@ -39,7 +31,7 @@ logging.basicConfig(level=logging.DEBUG) -class ReaderWriterTest(unittest.TestCase, ComparingMessagesTestCase): +class ReaderWriterTest(unittest.TestCase, ComparingMessagesTestCase, metaclass=ABCMeta): """Tests a pair of writer and reader by writing all data first and then reading all data and checking if they could be reconstructed correctly. Optionally writes some comments as well. @@ -50,8 +42,6 @@ class ReaderWriterTest(unittest.TestCase, ComparingMessagesTestCase): (Source: `*Wojciech B.* on StackOverlfow `_) """ - __metaclass__ = ABCMeta - def __init__(self, *args, **kwargs): unittest.TestCase.__init__(self, *args, **kwargs) self._setup_instance() diff --git a/test/message_helper.py b/test/message_helper.py index 9a4756207..8fb94f48b 100644 --- a/test/message_helper.py +++ b/test/message_helper.py @@ -5,12 +5,10 @@ This module contains a helper for writing test cases that need to compare messages. """ -from __future__ import absolute_import, print_function - from copy import copy -class ComparingMessagesTestCase(object): +class ComparingMessagesTestCase: """ Must be extended by a class also extending a unittest.TestCase. diff --git a/test/network_test.py b/test/network_test.py index f4163329d..1af102ec3 100644 --- a/test/network_test.py +++ b/test/network_test.py @@ -1,17 +1,13 @@ #!/usr/bin/env python # coding: utf-8 -from __future__ import print_function import unittest import threading -try: - import queue -except ImportError: - import Queue as queue +import queue import random - import logging + logging.getLogger(__file__).setLevel(logging.WARNING) # make a random bool: diff --git a/test/notifier_test.py b/test/notifier_test.py index 3ab257cf7..71ac7a944 100644 --- a/test/notifier_test.py +++ b/test/notifier_test.py @@ -3,10 +3,7 @@ import unittest import time -try: - import asyncio -except ImportError: - asyncio = None +import asyncio import can @@ -45,7 +42,6 @@ def test_multiple_bus(self): class AsyncNotifierTest(unittest.TestCase): - @unittest.skipIf(asyncio is None, 'Test requires asyncio') def test_asyncio_notifier(self): loop = asyncio.get_event_loop() bus = can.Bus('test', bustype='virtual', receive_own_messages=True) @@ -60,6 +56,5 @@ def test_asyncio_notifier(self): bus.shutdown() - if __name__ == '__main__': unittest.main() diff --git a/test/serial_test.py b/test/serial_test.py index 5b26ae42a..c49c15354 100644 --- a/test/serial_test.py +++ b/test/serial_test.py @@ -7,8 +7,6 @@ Copyright: 2017 Boris Wenzlaff """ -from __future__ import division - import unittest from mock import patch @@ -18,7 +16,7 @@ from .message_helper import ComparingMessagesTestCase -class SerialDummy(object): +class SerialDummy: """ Dummy to mock the serial communication """ diff --git a/test/simplecyclic_test.py b/test/simplecyclic_test.py index a10871648..06712e921 100644 --- a/test/simplecyclic_test.py +++ b/test/simplecyclic_test.py @@ -5,8 +5,6 @@ This module tests cyclic send tasks. """ -from __future__ import absolute_import - from time import sleep import unittest import gc diff --git a/test/test_detect_available_configs.py b/test/test_detect_available_configs.py index ca2d82c15..69addafb3 100644 --- a/test/test_detect_available_configs.py +++ b/test/test_detect_available_configs.py @@ -6,12 +6,8 @@ :meth:`can.BusABC.detect_available_configs`. """ -from __future__ import absolute_import - import sys import unittest -if sys.version_info.major > 2: - basestring = str from can import detect_available_configs @@ -33,7 +29,7 @@ def test_general_values(self): for config in configs: self.assertIn('interface', config) self.assertIn('channel', config) - self.assertIsInstance(config['interface'], basestring) + self.assertIsInstance(config['interface'], str) def test_content_virtual(self): configs = detect_available_configs(interfaces='virtual') diff --git a/test/test_kvaser.py b/test/test_kvaser.py index 3e0bcf396..106ce7dc5 100644 --- a/test/test_kvaser.py +++ b/test/test_kvaser.py @@ -8,10 +8,7 @@ import time import logging import unittest -try: - from unittest.mock import Mock, patch -except ImportError: - from mock import patch, Mock +from unittest.mock import Mock, patch import pytest diff --git a/test/test_load_file_config.py b/test/test_load_file_config.py index 52a45d734..dbd7673cb 100644 --- a/test/test_load_file_config.py +++ b/test/test_load_file_config.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # coding: utf-8 + import shutil import tempfile import unittest diff --git a/test/test_message_filtering.py b/test/test_message_filtering.py index 1419a4439..1b498b95e 100644 --- a/test/test_message_filtering.py +++ b/test/test_message_filtering.py @@ -5,8 +5,6 @@ This module tests :meth:`can.BusABC._matches_filters`. """ -from __future__ import absolute_import - import unittest from can import Bus, Message diff --git a/test/test_message_sync.py b/test/test_message_sync.py index ec21a0660..ba2332776 100644 --- a/test/test_message_sync.py +++ b/test/test_message_sync.py @@ -5,8 +5,6 @@ This module tests :class:`can.MessageSync`. """ -from __future__ import absolute_import - from copy import copy from time import time import gc diff --git a/test/test_scripts.py b/test/test_scripts.py index 74ae71489..11dc06991 100644 --- a/test/test_scripts.py +++ b/test/test_scripts.py @@ -5,8 +5,6 @@ This module tests that the scripts are all callable. """ -from __future__ import absolute_import - import subprocess import unittest import sys @@ -16,9 +14,7 @@ from .config import * -class CanScriptTest(unittest.TestCase): - - __metaclass__ = ABCMeta +class CanScriptTest(unittest.TestCase, metaclass=ABCMeta): @classmethod def setUpClass(cls): diff --git a/test/test_slcan.py b/test/test_slcan.py index 29869cb1c..43703b3f0 100644 --- a/test/test_slcan.py +++ b/test/test_slcan.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # coding: utf-8 + import unittest import can diff --git a/test/test_socketcan.py b/test/test_socketcan.py index 828a67307..32389ff9f 100644 --- a/test/test_socketcan.py +++ b/test/test_socketcan.py @@ -3,14 +3,9 @@ """ import unittest -try: - from unittest.mock import Mock - from unittest.mock import patch - from unittest.mock import call -except ImportError: - from mock import Mock - from mock import patch - from mock import call +from unittest.mock import Mock +from unittest.mock import patch +from unittest.mock import call import ctypes diff --git a/test/test_socketcan_helpers.py b/test/test_socketcan_helpers.py index f1462549a..cc12eb415 100644 --- a/test/test_socketcan_helpers.py +++ b/test/test_socketcan_helpers.py @@ -5,8 +5,6 @@ Tests helpers in `can.interfaces.socketcan.socketcan_common`. """ -from __future__ import absolute_import - import unittest from can.interfaces.socketcan.utils import \ @@ -36,7 +34,7 @@ def test_find_available_interfaces(self): result = list(find_available_interfaces()) self.assertGreaterEqual(len(result), 0) for entry in result: - self.assertRegexpMatches(entry, r"v?can\d+") + self.assertRegex(entry, r"v?can\d+") if TEST_INTERFACE_SOCKETCAN: self.assertGreaterEqual(len(result), 1) self.assertIn("vcan0", result) diff --git a/test/test_systec.py b/test/test_systec.py index ce5dda4a7..0cd38da0d 100644 --- a/test/test_systec.py +++ b/test/test_systec.py @@ -2,10 +2,7 @@ # coding: utf-8 import unittest -try: - from unittest.mock import Mock, patch -except ImportError: - from mock import Mock, patch +from unittest.mock import Mock, patch import can from can.interfaces.systec import ucan, ucanbus diff --git a/test/test_viewer.py b/test/test_viewer.py index c4b7aa45f..9420b6d37 100644 --- a/test/test_viewer.py +++ b/test/test_viewer.py @@ -23,8 +23,6 @@ # Web : http://www.lauszus.com # e-mail : lauszus@gmail.com -from __future__ import absolute_import - import argparse import can import curses @@ -36,15 +34,8 @@ import unittest import os import six - from typing import Dict, Tuple, Union - -try: - # noinspection PyCompatibility - from unittest.mock import Mock, patch -except ImportError: - # noinspection PyPackageRequirements - from mock import Mock, patch +from unittest.mock import Mock, patch from can.viewer import KEY_ESC, KEY_SPACE, CanViewer, parse_args @@ -337,9 +328,7 @@ def test_pack_unpack(self): parsed_data = CanViewer.unpack_data(CANOPEN_TPDO4 + 2, data_structs, raw_data) self.assertListEqual(parsed_data, [0xFFFFFF, 0xFFFFFFFF]) - # See: http://python-future.org/compatible_idioms.html#long-integers - from past.builtins import long - self.assertTrue(all(isinstance(d, (int, long)) for d in parsed_data)) + self.assertTrue(all(isinstance(d, int) for d in parsed_data)) # Make sure that the ValueError exception is raised with self.assertRaises(ValueError): From d8828ca69d92874e994daaf34bc601979d737203 Mon Sep 17 00:00:00 2001 From: Felix Divo Date: Sun, 19 May 2019 14:06:29 +0200 Subject: [PATCH 2/2] remove unused mock and future dependencies; six will be done in a seperate PR --- setup.py | 2 -- test/serial_test.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index a5d452370..805b582be 100644 --- a/setup.py +++ b/setup.py @@ -29,12 +29,10 @@ } tests_require = [ - 'mock~=2.0', 'pytest~=4.3', 'pytest-timeout~=1.3', 'pytest-cov~=2.6', 'codecov~=2.0', - 'future', 'six', 'hypothesis' ] + extras_require['serial'] diff --git a/test/serial_test.py b/test/serial_test.py index c49c15354..a29379511 100644 --- a/test/serial_test.py +++ b/test/serial_test.py @@ -8,7 +8,7 @@ """ import unittest -from mock import patch +from unittest.mock import patch import can from can.interfaces.serial.serial_can import SerialBus