Browse Source

refactor: move some tests from test_config.py to config/test_0x12_mdmcfg2.py

Fabian Peter Hammerle 3 years ago
parent
commit
f07e987a67
4 changed files with 78 additions and 51 deletions
  1. 1 1
      .github/workflows/python.yml
  2. 3 0
      tests/config/__init__.py
  3. 73 0
      tests/config/test_0x12_mdmcfg2.py
  4. 1 50
      tests/test_config.py

+ 1 - 1
.github/workflows/python.yml

@@ -50,7 +50,7 @@ jobs:
       env:
         PYTHON_VERSION: ${{ matrix.python-version }}
     - run: pipenv graph
-    - run: pipenv run pytest --cov=cc1101 --cov-report=term-missing --cov-fail-under=85
+    - run: pipenv run pytest --cov=cc1101 --cov-report=term-missing --cov-fail-under=87
     - run: pipenv run pylint --load-plugins=pylint_import_requirements cc1101
     # https://github.com/PyCQA/pylint/issues/352
     - run: pipenv run pylint tests/*

+ 3 - 0
tests/config/__init__.py

@@ -0,0 +1,3 @@
+# workaround for `pylint tests/*`
+# > F0010: error while code parsing: Unable to load file tests/config/__init__.py:
+# > [Errno 2] No such file or directory: 'tests/config/__init__.py' (parse-error)

+ 73 - 0
tests/config/test_0x12_mdmcfg2.py

@@ -0,0 +1,73 @@
+# python-cc1101 - Python Library to Transmit RF Signals via C1101 Transceivers
+#
+# Copyright (C) 2020 Fabian Peter Hammerle <fabian@hammerle.me>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+import unittest.mock
+
+import pytest
+
+from cc1101.options import SyncMode
+
+# pylint: disable=protected-access
+
+
+@pytest.mark.parametrize(
+    ("mdmcfg2", "sync_mode"),
+    [
+        (0b00000000, SyncMode.NO_PREAMBLE_AND_SYNC_WORD),
+        (0b00000001, SyncMode.TRANSMIT_16_MATCH_15_BITS),
+        (0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS),
+        (0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS),
+        (0b00000110, SyncMode.TRANSMIT_16_MATCH_16_BITS),
+        (0b00000111, SyncMode.TRANSMIT_32_MATCH_30_BITS),
+        (0b00001100, SyncMode.NO_PREAMBLE_AND_SYNC_WORD),
+        (0b01101011, SyncMode.TRANSMIT_32_MATCH_30_BITS),
+        (0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS),
+    ],
+)
+def test_get_sync_mode(transceiver, mdmcfg2, sync_mode):
+    transceiver._spi.xfer.return_value = [15, mdmcfg2]
+    assert transceiver.get_sync_mode() == sync_mode
+    transceiver._spi.xfer.assert_called_once_with([0x12 | 0x80, 0])
+
+
+@pytest.mark.parametrize(
+    ("mdmcfg2_before", "mdmcfg2_after", "sync_mode", "threshold_enabled"),
+    [
+        (0b00000010, 0b00000000, SyncMode.NO_PREAMBLE_AND_SYNC_WORD, None),
+        (0b00000010, 0b00000001, SyncMode.TRANSMIT_16_MATCH_15_BITS, None),
+        (0b00000010, 0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS, None),
+        (0b00000010, 0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS, None),
+        (0b01101110, 0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS, None),
+        (0b00000010, 0b00000110, SyncMode.TRANSMIT_16_MATCH_16_BITS, True),
+        (0b00000010, 0b00000111, SyncMode.TRANSMIT_32_MATCH_30_BITS, True),
+        (0b01101110, 0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS, True),
+        (0b00000010, 0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS, False),
+        (0b00000010, 0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS, False),
+        (0b01101110, 0b01101011, SyncMode.TRANSMIT_32_MATCH_30_BITS, False),
+    ],
+)
+def test_set_sync_mode(
+    transceiver, mdmcfg2_before, mdmcfg2_after, sync_mode, threshold_enabled
+):
+    transceiver._spi.xfer.return_value = [15, 15]
+    with unittest.mock.patch.object(
+        transceiver, "_read_single_byte", return_value=mdmcfg2_before
+    ):
+        transceiver.set_sync_mode(
+            sync_mode, _carrier_sense_threshold_enabled=threshold_enabled
+        )
+    transceiver._spi.xfer.assert_called_once_with([0x12 | 0x40, mdmcfg2_after])

+ 1 - 50
tests/test_config.py

@@ -21,7 +21,7 @@ import warnings
 import pytest
 
 import cc1101
-from cc1101.options import PacketLengthMode, SyncMode
+from cc1101.options import PacketLengthMode
 
 # pylint: disable=protected-access
 
@@ -182,55 +182,6 @@ def test__symbol_rate_real_to_floating_point(mantissa, exponent, real):
     )
 
 
-@pytest.mark.parametrize(
-    ("mdmcfg2", "sync_mode"),
-    [
-        (0b00000000, SyncMode.NO_PREAMBLE_AND_SYNC_WORD),
-        (0b00000001, SyncMode.TRANSMIT_16_MATCH_15_BITS),
-        (0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS),
-        (0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS),
-        (0b00000110, SyncMode.TRANSMIT_16_MATCH_16_BITS),
-        (0b00000111, SyncMode.TRANSMIT_32_MATCH_30_BITS),
-        (0b00001100, SyncMode.NO_PREAMBLE_AND_SYNC_WORD),
-        (0b01101011, SyncMode.TRANSMIT_32_MATCH_30_BITS),
-        (0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS),
-    ],
-)
-def test_get_sync_mode(transceiver, mdmcfg2, sync_mode):
-    transceiver._spi.xfer.return_value = [15, mdmcfg2]
-    assert transceiver.get_sync_mode() == sync_mode
-    transceiver._spi.xfer.assert_called_once_with([0x12 | 0x80, 0])
-
-
-@pytest.mark.parametrize(
-    ("mdmcfg2_before", "mdmcfg2_after", "sync_mode", "threshold_enabled"),
-    [
-        (0b00000010, 0b00000000, SyncMode.NO_PREAMBLE_AND_SYNC_WORD, None),
-        (0b00000010, 0b00000001, SyncMode.TRANSMIT_16_MATCH_15_BITS, None),
-        (0b00000010, 0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS, None),
-        (0b00000010, 0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS, None),
-        (0b01101110, 0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS, None),
-        (0b00000010, 0b00000110, SyncMode.TRANSMIT_16_MATCH_16_BITS, True),
-        (0b00000010, 0b00000111, SyncMode.TRANSMIT_32_MATCH_30_BITS, True),
-        (0b01101110, 0b01101111, SyncMode.TRANSMIT_32_MATCH_30_BITS, True),
-        (0b00000010, 0b00000010, SyncMode.TRANSMIT_16_MATCH_16_BITS, False),
-        (0b00000010, 0b00000011, SyncMode.TRANSMIT_32_MATCH_30_BITS, False),
-        (0b01101110, 0b01101011, SyncMode.TRANSMIT_32_MATCH_30_BITS, False),
-    ],
-)
-def test_set_sync_mode(
-    transceiver, mdmcfg2_before, mdmcfg2_after, sync_mode, threshold_enabled
-):
-    transceiver._spi.xfer.return_value = [15, 15]
-    with unittest.mock.patch.object(
-        transceiver, "_read_single_byte", return_value=mdmcfg2_before
-    ):
-        transceiver.set_sync_mode(
-            sync_mode, _carrier_sense_threshold_enabled=threshold_enabled
-        )
-    transceiver._spi.xfer.assert_called_once_with([0x12 | 0x40, mdmcfg2_after])
-
-
 @pytest.mark.parametrize(
     ("mdmcfg1", "length"),
     [