@@ -85,15 +85,23 @@ def test_digital_channels_missing_talkgroup():
8585 assert ch0tg .timeslot == Timeslot .ONE
8686
8787
88- def test_analog_weird_values ():
88+ @pytest .fixture (params = [True , False ])
89+ def require_valid_tone (request , monkeypatch ):
90+ import dzcb .tone
91+
92+ monkeypatch .setattr (dzcb .tone , "REQUIRE_VALID_TONE" , request .param )
93+ return request .param
94+
95+
96+ def test_analog_weird_values (require_valid_tone ):
8997 """
9098 test validation of fields in the csv file
9199 """
92100
93101 cp = codeplug_from_relative_dir ("analog-weird-values" ).filter ()
94102
95- assert len (cp .zones ) == 6
96- assert len (cp .channels ) == 6
103+ assert len (cp .zones ) == 6 if require_valid_tone else 9
104+ assert len (cp .channels ) == 6 if require_valid_tone else 9
97105
98106 for ch in cp .channels :
99107 if ch .name in ("off" , "blank" ):
@@ -111,6 +119,20 @@ def test_analog_weird_values():
111119 elif ch .name == "split-tone" :
112120 assert ch .tone_decode == "74.4"
113121 assert ch .tone_encode == "254.1"
122+ if require_valid_tone :
123+ assert ch .name != "restricted-in"
124+ assert ch .name != "restricted-out"
125+ assert ch .name != "sixty-nine"
126+ else :
127+ if ch .name == "restricted-in" :
128+ assert ch .tone_decode == "restricted"
129+ assert ch .tone_encode is None
130+ elif ch .name == "restricted-out" :
131+ assert ch .tone_decode is None
132+ assert ch .tone_encode == "restricted"
133+ elif ch .name == "sixty-nine" :
134+ assert ch .tone_decode == "69.0"
135+ assert ch .tone_encode == "69.0"
114136
115137
116138def test_digital_repeaters_private_contacts ():
0 commit comments