def _make_list(self): run_list = [] images = glob.glob(os.path.join(self._images_dir, "*.img")) for image in sorted(images): drv_name, _ = os.path.splitext(os.path.basename(image)) run_list.append((directory.get_radio(drv_name), image)) return run_list
def _make_list(self): run_list = [] images = glob.glob(os.path.join(self._images_dir, "*.img")) for image in sorted(images): drv_name, _ = os.path.splitext(os.path.basename(image)) run_list.append((directory.get_radio(drv_name), image)) return run_list
def test_get_payload(self): radio = directory.get_radio('Icom_IC-2730A')(None) payload = radio.get_payload(bytes(b'\x00\x10\xFE\x00'), True, True) self.assertEqual(b'\x00\x10\xFF\x0E\x00\xF2', payload) payload = radio.get_payload(bytes(b'\x00\x10\xFE\x00'), True, False) self.assertEqual(b'\x00\x10\xFF\x0E\x00', payload)
def open_file(self, filename, exists=True, select=True): if exists: radio = directory.get_radio_by_image(filename) else: CSVRadio = directory.get_radio('Generic_CSV') radio = CSVRadio(None) editorset = ChirpEditorSet(radio, filename, self._editors) self.add_editorset(editorset, select=select)
def run_one_live(self, drv_name, port): rclass = directory.get_radio(drv_name) pipe = Serial(port=port, baudrate=rclass.BAUD_RATE, timeout=0.5) tw = TestWrapper(rclass, pipe) rf = tw.do("get_features") if rf.has_sub_devices: devices = tw.do("get_sub_devices") failed = 0 for device in devices: failed += self._run_one(device.__class__, pipe) return failed else: return self._run_one(rclass, pipe)
def run_one_live(self, drv_name, port): rclass = directory.get_radio(drv_name) pipe = Serial(port=port, baudrate=rclass.BAUD_RATE, timeout=0.5) tw = TestWrapper(rclass, pipe) rf = tw.do("get_features") if rf.has_sub_devices: devices = tw.do("get_sub_devices") failed = 0 for device in devices: failed += self._run_one(device.__class__, pipe) return failed else: return self._run_one(rclass, pipe)
def load_tests(loader, tests, pattern, suite=None): if not suite: suite = unittest.TestSuite() base = os.path.dirname(os.path.abspath(__file__)) base = os.path.join(base, 'images') images = glob.glob(os.path.join(base, "*")) tests = {img: os.path.splitext(os.path.basename(img))[0] for img in images} if pattern == 'test*.py': # This default is meaningless for us pattern = None for image, test in tests.items(): try: rclass = directory.get_radio(test) except Exception: if six.PY3 and 'CHIRP_DEBUG' in os.environ: LOG.error('Failed to load %s' % test) continue raise for device in _get_sub_devices(rclass, image): class_name = 'TestCase_%s' % (''.join( filter(lambda c: c.isalnum(), device.get_name()))) if isinstance(device, type): dst = None else: dst = device device = device.__class__ tc = TestAdapterMeta( class_name, (TestAdapter, ), dict(RADIO_CLASS=device, SOURCE_IMAGE=image, RADIO_INST=dst)) tests = loader.loadTestsFromTestCase(tc) if pattern: tests = [ t for t in tests if re.search(pattern, '%s.%s' % (class_name, t._testMethodName)) ] suite.addTests(tests) return suite
def load_tests(loader, tests, pattern): suite = unittest.TestSuite() images = glob.glob("tests/images/*.img") tests = [os.path.splitext(os.path.basename(img))[0] for img in images] for test in tests: image = os.path.join('tests', 'images', '%s.img' % test) rclass = directory.get_radio(test) for device in _get_sub_devices(rclass, image): class_name = 'TestCase_%s' % ( filter(lambda c: c.isalnum(), device.get_name())) tc = TestAdapterMeta( class_name, (TestAdapter,), dict(RADIO_CLASS=device, SOURCE_IMAGE=image)) suite.addTests(loader.loadTestsFromTestCase(tc)) return suite
def _update_window_for_editor(self): eset = self.current_editorset can_close = False can_save = False can_saveas = False can_upload = False CSVRadio = directory.get_radio('Generic_CSV') if eset is not None: can_close = True can_save = eset.modified can_saveas = True can_upload = not (isinstance(eset.radio, CSVRadio) and not isinstance(eset.radio, common.LiveAdapter)) items = [ (wx.ID_CLOSE, can_close), (wx.ID_SAVE, can_save), (wx.ID_SAVEAS, can_saveas), (self._upload_menu_item, can_upload), ] for ident, enabled in items: menuitem = self.GetMenuBar().FindItemById(ident) menuitem.Enable(enabled)
def run_one(self, drv_name): return self.run_rclass_image(directory.get_radio(drv_name), os.path.join("images", "%s.img" % drv_name))
s = serial.Serial(port=options.serial, baudrate=9600, timeout=0.5) md = icf.get_model_data(s) print "Model:\n%s" % util.hexprint(md) sys.exit(0) if not options.radio: if options.mmap: rclass = directory.get_radio_by_image(options.mmap).__class__ else: print "Must specify a radio model" sys.exit(1) else: rclass = directory.get_radio(options.radio) if options.serial == "mmap": if options.mmap: s = options.mmap else: s = options.radio + ".img" else: print "opening %s at %i" % (options.serial, rclass.BAUD_RATE) s = serial.Serial(port=options.serial, baudrate=rclass.BAUD_RATE, timeout=0.5) radio = rclass(s) if options.raw:
def run_one(self, drv_name): return self.run_rclass_image(directory.get_radio(drv_name), os.path.join("images", "%s.img" % drv_name))
timeout=0.5) md = icf.get_model_data(s) print "Model:\n%s" % util.hexprint(md) sys.exit(0) if not options.radio: if options.mmap: rclass = directory.get_radio_by_image(options.mmap).__class__ else: print "Must specify a radio model" sys.exit(1) else: rclass = directory.get_radio(options.radio) if options.serial == "mmap": if options.mmap: s = options.mmap else: s = options.radio + ".img" else: print "opening %s at %i" % (options.serial, rclass.BAUD_RATE) s = serial.Serial(port=options.serial, baudrate=rclass.BAUD_RATE, timeout=0.5) radio = rclass(s) if options.raw:
def test_process_frame_payload(self): radio = directory.get_radio('Icom_IC-2730A')(None) data = radio.process_frame_payload(bytes(b'\x00\x10\xFF\x0E\x00')) self.assertEqual(b'\x00\x10\xFE\x00', data)
def setUp(self): self.radio = directory.get_radio(self.RADIO_IDENT)(None) self.simulator = icom_clone_simulator.FakeIcomRadio(self.radio) self.radio.set_pipe(self.simulator)
radio = directory.get_radio('Icom_IC-2730A')(None) data = radio.process_frame_payload(bytes(b'\x00\x10\xFF\x0E\x00')) self.assertEqual(b'\x00\x10\xFE\x00', data) class TestAdapterMeta(type): def __new__(cls, name, parents, dct): return super(TestAdapterMeta, cls).__new__(cls, name, parents, dct) test_file_glob = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'images', 'Icom_*.img') import sys for image_file in glob.glob(test_file_glob): base, _ext = os.path.splitext(os.path.basename(image_file)) try: radio = directory.get_radio(base) except Exception: continue if issubclass(radio, icf.IcomRawCloneModeRadio): # The simulator does not behave like a raw radio continue class_name = 'Test_%s' % base sys.modules[__name__].__dict__[class_name] = \ TestAdapterMeta(class_name, (BaseIcomCloneTest, unittest.TestCase), dict(RADIO_IDENT=base, IMAGE_FILE=image_file))