Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)
Esempio n. 7
0
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
Esempio n. 8
0
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
Esempio n. 9
0
    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)
Esempio n. 10
0
 def run_one(self, drv_name):
     return self.run_rclass_image(directory.get_radio(drv_name),
                                  os.path.join("images",
                                               "%s.img" % drv_name))
Esempio n. 11
0
        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:
Esempio n. 12
0
 def run_one(self, drv_name):
     return self.run_rclass_image(directory.get_radio(drv_name),
                                  os.path.join("images",
                                               "%s.img" % drv_name))
Esempio n. 13
0
File: chirp.py Progetto: cl4u2/chirp
			      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:
Esempio n. 14
0
 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)
Esempio n. 15
0
 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)
Esempio n. 16
0
        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))