# HG changeset patch

# User Brad Schuler <brad@schuler.ws>

# Date 1605593121 25200

#      Mon Nov 16 23:05:21 2020 -0700

# Node ID 2df5ebf6cb44272135be7174f0df8c4325667889

# Parent  ea826afbd7489de236b7d1895f4552a32d78fb04

[anytone_iii] Modifications necessary to pass standard CHIRP automated testing

 

Related to issue #3941

 

diff -r ea826afbd748 -r 2df5ebf6cb44 chirp/drivers/anytone_iii.py

--- a/chirp/drivers/anytone_iii.py              Thu Nov 12 00:09:58 2020 -0700

+++ b/chirp/drivers/anytone_iii.py          Mon Nov 16 23:05:21 2020 -0700

@@ -39,7 +39,7 @@

     def __init__(self, radio, name='Banks'):

         super(ATBankModel, self).__init__(radio, name)

         self._banks = []

-        self._memBounds = (0, 760)

+        self._memBounds = range(0, 750)

         for i in range(0, 10):

             self._banks.append(chirp_common.Bank(self, i, string.uppercase[i]))

@@ -53,6 +53,13 @@

         self._radio.set_bank(memory.number, bank.get_index())

     def remove_memory_from_mapping(self, memory, mapping):

+        # I would argue that removing a memory from a mapping in which it does not exist should not throw an error.

+        # The end result is the requested result.  The memory is not in the mapping.

+        # However, to pass the CHIRP TestCaseBanks, I must throw an error.  This causes more code to execute than necessary.

+        # I could just call _radio.clr_bank, but now I must get_bank and compare.

+        index = self._radio.get_bank(memory.number)

+        if (index is None or index != mapping.get_index()):

+            raise Exception("Memory %d is not in bank %s" % (memory.number, bank.get_name()))

         self._radio.clr_bank(memory.number)

     def get_mapping_memories(self, bank):

@@ -765,6 +772,7 @@

         rf.has_settings = True

         rf.valid_modes = MODES + ['AM']

         rf.valid_tmodes = ['', 'Tone', 'TSQL', 'DTCS', 'Cross']

+        rf.valid_cross_modes = ["Tone->Tone", "DTCS->", "->DTCS", "Tone->DTCS", "DTCS->Tone", "->Tone", "DTCS->DTCS"]

         rf.valid_duplexes = DUPLEXES

         rf.valid_tuning_steps = TUNING_STEPS

         rf.valid_bands = BANDS

@@ -1239,6 +1247,8 @@

                 dtmfId = element.value

             elif name == "5ToneId":

                 fiveToneId = element.value

+            elif isinstance(element.value, _RadioSettingValueOffsetInt):

+                setattr(_emergency, name, int(element.value) + element.value.offset)

             else:

                 setattr(_emergency, name, element.value)

         if EMER_ENI_TYPES[_emergency.eniType] == 'DTMF':