I have not run tox on this driver. Fedora has dropped support for Tox on any python installation < 3.0. Adding a downrev tox is not an option on my system.
You don't have pip either? That's hard to believe :)
pip install tox
...should be all you need. Even if they've dropped their pip package:
https://github.com/pypa/get-pip
Also note that you can still use the tests/run_tests script for the time being, sans tox, which will get you the driver tests part.
Sorry. I will fix any problems uncovered by the test system. The image file is an attachement to the issue.
The first thing is that your mailer is line-wrapping the plaintext version of your diff, which requires manual fixing in order for it to apply. I did that this once, but please fix it for next time. If you fix your patch to avoid the long lines you may avoid that altogether.
Here's your only driver failure, which looks to be two fails for the same issue:
====================================================================== ERROR: test_brute_force (tests.TestCase_WouxunKGUV9DPlus) Testing Wouxun KG-UV9D Plus brute force
Traceback (most recent call last): File "tests/__init__.py", line 50, in test_brute_force self._runtest(run_tests.TestCaseBruteForce) File "tests/__init__.py", line 40, in _runtest testcase.run() File "tests/run_tests.py", line 484, in run test(clean_mem(), rf) File "tests/run_tests.py", line 353, in do_tone self.set_and_compare(m) File "tests/run_tests.py", line 328, in set_and_compare self.compare_mem(m, ret_m) File "tests/run_tests.py", line 246, in compare_mem raise TestFailedError(msg, details) TestFailedError: Field `name' is `', expected `'
====================================================================== ERROR: test_edges (tests.TestCase_WouxunKGUV9DPlus) Testing Wouxun KG-UV9D Plus edges
Traceback (most recent call last): File "tests/__init__.py", line 53, in test_edges self._runtest(run_tests.TestCaseEdges) File "tests/__init__.py", line 40, in _runtest testcase.run() File "tests/run_tests.py", line 587, in run self.do_bandedges(rf) File "tests/run_tests.py", line 555, in do_bandedges self.compare_mem(m, n) File "tests/run_tests.py", line 246, in compare_mem raise TestFailedError(msg, details) TestFailedError: Field `name' is `', expected `'
Here are your style failures:
./chirp/drivers/kguv9dplus.py:29:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:36:10: E221 multiple spaces before operator ./chirp/drivers/kguv9dplus.py:38:10: E221 multiple spaces before operator ./chirp/drivers/kguv9dplus.py:39:10: E221 multiple spaces before operator ./chirp/drivers/kguv9dplus.py:40:10: E221 multiple spaces before operator ./chirp/drivers/kguv9dplus.py:41:10: E221 multiple spaces before operator ./chirp/drivers/kguv9dplus.py:44:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:45:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:46:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:47:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:48:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:49:15: E203 whitespace before ':' ./chirp/drivers/kguv9dplus.py:50:6: W291 trailing whitespace ./chirp/drivers/kguv9dplus.py:56:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:57:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:60:15: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:81:23: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:82:23: E262 inline comment should start with '# ' ./chirp/drivers/kguv9dplus.py:83:23: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:83:23: E262 inline comment should start with '# ' ./chirp/drivers/kguv9dplus.py:84:23: E262 inline comment should start with '# ' ./chirp/drivers/kguv9dplus.py:348:80: E501 line too long (82 > 79 characters) ./chirp/drivers/kguv9dplus.py:352:22: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:354:22: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:366:29: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:377:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:378:80: E501 line too long (86 > 79 characters) ./chirp/drivers/kguv9dplus.py:379:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:382:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:398:47: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:398:80: E501 line too long (87 > 79 characters) ./chirp/drivers/kguv9dplus.py:405:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:416:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:427:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:428:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:439:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:446:44: E225 missing whitespace around operator ./chirp/drivers/kguv9dplus.py:451:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:457:25: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:464:52: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:467:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:474:26: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:475:30: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:475:31: E262 inline comment should start with '# ' ./chirp/drivers/kguv9dplus.py:482:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:483:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:492:21: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:493:18: E703 statement ends with a semicolon ./chirp/drivers/kguv9dplus.py:499:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:505:80: E501 line too long (89 > 79 characters) ./chirp/drivers/kguv9dplus.py:507:80: E501 line too long (82 > 79 characters) ./chirp/drivers/kguv9dplus.py:515:24: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:521:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:530:21: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:531:18: E703 statement ends with a semicolon ./chirp/drivers/kguv9dplus.py:538:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:544:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:551:24: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:554:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:566:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:577:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:590:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:591:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:599:22: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:610:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:611:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:623:10: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:685:50: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:698:53: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:699:30: E225 missing whitespace around operator ./chirp/drivers/kguv9dplus.py:701:38: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:716:1: E302 expected 2 blank lines, found 1 ./chirp/drivers/kguv9dplus.py:718:19: E128 continuation line under-indented for visual indent ./chirp/drivers/kguv9dplus.py:736:80: E501 line too long (92 > 79 characters) ./chirp/drivers/kguv9dplus.py:737:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:738:80: E501 line too long (87 > 79 characters) ./chirp/drivers/kguv9dplus.py:741:44: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:741:80: E501 line too long (82 > 79 characters) ./chirp/drivers/kguv9dplus.py:749:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:751:53: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:751:80: E501 line too long (93 > 79 characters) ./chirp/drivers/kguv9dplus.py:753:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:757:41: E251 unexpected spaces around keyword / parameter equals ./chirp/drivers/kguv9dplus.py:757:43: E251 unexpected spaces around keyword / parameter equals ./chirp/drivers/kguv9dplus.py:763:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:764:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:765:5: E303 too many blank lines (2) ./chirp/drivers/kguv9dplus.py:768:80: E501 line too long (95 > 79 characters) ./chirp/drivers/kguv9dplus.py:774:80: E501 line too long (96 > 79 characters) ./chirp/drivers/kguv9dplus.py:775:80: E501 line too long (82 > 79 characters) ./chirp/drivers/kguv9dplus.py:776:80: E501 line too long (95 > 79 characters) ./chirp/drivers/kguv9dplus.py:777:80: E501 line too long (97 > 79 characters) ./chirp/drivers/kguv9dplus.py:778:80: E501 line too long (97 > 79 characters) ./chirp/drivers/kguv9dplus.py:779:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:784:80: E501 line too long (90 > 79 characters) ./chirp/drivers/kguv9dplus.py:790:80: E501 line too long (88 > 79 characters) ./chirp/drivers/kguv9dplus.py:812:14: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:812:15: E262 inline comment should start with '# ' ./chirp/drivers/kguv9dplus.py:813:80: E501 line too long (95 > 79 characters) ./chirp/drivers/kguv9dplus.py:815:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:818:80: E501 line too long (91 > 79 characters) ./chirp/drivers/kguv9dplus.py:836:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:849:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:850:80: E501 line too long (90 > 79 characters) ./chirp/drivers/kguv9dplus.py:851:80: E501 line too long (89 > 79 characters) ./chirp/drivers/kguv9dplus.py:852:80: E501 line too long (91 > 79 characters) ./chirp/drivers/kguv9dplus.py:853:80: E501 line too long (88 > 79 characters) ./chirp/drivers/kguv9dplus.py:854:80: E501 line too long (90 > 79 characters) ./chirp/drivers/kguv9dplus.py:855:80: E501 line too long (87 > 79 characters) ./chirp/drivers/kguv9dplus.py:857:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:858:80: E501 line too long (92 > 79 characters) ./chirp/drivers/kguv9dplus.py:859:80: E501 line too long (92 > 79 characters) ./chirp/drivers/kguv9dplus.py:860:80: E501 line too long (89 > 79 characters) ./chirp/drivers/kguv9dplus.py:871:80: E501 line too long (91 > 79 characters) ./chirp/drivers/kguv9dplus.py:876:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:878:80: E501 line too long (91 > 79 characters) ./chirp/drivers/kguv9dplus.py:889:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:892:80: E501 line too long (84 > 79 characters) ./chirp/drivers/kguv9dplus.py:893:80: E501 line too long (83 > 79 characters) ./chirp/drivers/kguv9dplus.py:894:80: E501 line too long (89 > 79 characters) ./chirp/drivers/kguv9dplus.py:897:15: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:898:39: E225 missing whitespace around operator ./chirp/drivers/kguv9dplus.py:904:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:905:45: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:922:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:964:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:979:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:983:39: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:993:39: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:1010:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1152:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1159:1: E266 too many leading '#' for block comment ./chirp/drivers/kguv9dplus.py:1160:1: E266 too many leading '#' for block comment ./chirp/drivers/kguv9dplus.py:1167:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1169:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1186:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:1208:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:1211:65: W291 trailing whitespace ./chirp/drivers/kguv9dplus.py:1253:47: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:1253:80: E501 line too long (94 > 79 characters) ./chirp/drivers/kguv9dplus.py:1282:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:1315:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1326:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1347:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1354:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:1363:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1368:25: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:1371:80: E501 line too long (90 > 79 characters) ./chirp/drivers/kguv9dplus.py:1374:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1376:80: E501 line too long (91 > 79 characters) ./chirp/drivers/kguv9dplus.py:1385:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1392:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1394:26: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:1396:45: E231 missing whitespace after ',' ./chirp/drivers/kguv9dplus.py:1398:36: E127 continuation line over-indented for visual indent ./chirp/drivers/kguv9dplus.py:1455:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1471:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1522:36: E225 missing whitespace around operator ./chirp/drivers/kguv9dplus.py:1528:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1536:80: E501 line too long (80 > 79 characters) ./chirp/drivers/kguv9dplus.py:1541:32: E127 continuation line over-indented for visual indent ./chirp/drivers/kguv9dplus.py:1542:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:1548:80: E501 line too long (86 > 79 characters) ./chirp/drivers/kguv9dplus.py:1565:80: E501 line too long (89 > 79 characters) ./chirp/drivers/kguv9dplus.py:1567:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1574:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1578:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1605:80: E501 line too long (94 > 79 characters) ./chirp/drivers/kguv9dplus.py:1605:95: W291 trailing whitespace ./chirp/drivers/kguv9dplus.py:1611:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:1614:80: E501 line too long (84 > 79 characters) ./chirp/drivers/kguv9dplus.py:1617:80: E501 line too long (84 > 79 characters) ./chirp/drivers/kguv9dplus.py:1621:80: E501 line too long (82 > 79 characters) ./chirp/drivers/kguv9dplus.py:1625:80: E501 line too long (84 > 79 characters) ./chirp/drivers/kguv9dplus.py:1627:80: E501 line too long (83 > 79 characters) ./chirp/drivers/kguv9dplus.py:1630:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1632:80: E501 line too long (83 > 79 characters) ./chirp/drivers/kguv9dplus.py:1648:9: E303 too many blank lines (3) ./chirp/drivers/kguv9dplus.py:1664:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1671:37: E201 whitespace after '(' ./chirp/drivers/kguv9dplus.py:1678:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1716:1: W293 blank line contains whitespace ./chirp/drivers/kguv9dplus.py:1728:58: E261 at least two spaces before inline comment ./chirp/drivers/kguv9dplus.py:1728:80: E501 line too long (81 > 79 characters) ./chirp/drivers/kguv9dplus.py:1750:80: E501 line too long (85 > 79 characters) ./chirp/drivers/kguv9dplus.py:1752:1: W391 blank line at end of file
Thanks!
--Dan