コード例 #1
0
    def test_identifies_nested_end_devices(self, get_all_usb_devices_data):
        plist = b"""<plist version="1.0">
            <array>
                <dict>
                    <key>_items</key>
                    <array>
                        <dict>
                            <key>_name</key>
                            <string>USB Mouse</string>
                            <key>vendor_id</key>
                            <string>1234</string>
                        </dict>
                    </array>
                </dict>
                <dict>
                    <key>_name</key>
                    <string>USB2.0 Hub</string>
                    <key>_items</key>
                    <array>
                        <dict>
                            <key>_name</key>
                            <string>USB Flash</string>
                            <key>vendor_id</key>
                            <string>5678</string>
                        </dict>
                    </array>
                </dict>
            </array>
        </plist>"""
        get_all_usb_devices_data.return_value = plistlib.loads(plist)

        result = get_end_usb_devices_data()

        self.assertIn({"_name": "USB Mouse", "vendor_id": "1234"}, result)
        self.assertIn({"_name": "USB Flash", "vendor_id": "5678"}, result)
コード例 #2
0
 def find_candidates(self) -> List[CandidateDevice]:
     """Return a list of CandidateDevices."""
     usb_devices_data = system_profiler.get_end_usb_devices_data()
     candidates = []
     for device_data in usb_devices_data:
         logging.debug(f"Building from: {device_data}.")
         try:
             candidate = _build_candidate(device_data)
         except InvalidCandidateDeviceDataError:
             pass
         else:
             logging.debug(f"Built candidate: {candidate}.")
             candidates.append(candidate)
     return candidates
コード例 #3
0
    def test_identifies_flat_end_devices(self, get_all_usb_devices_data):
        plist = b"""<plist version="1.0">
            <array>
                <dict>
                    <key>_name</key>
                    <string>USB Receiver</string>
                    <key>vendor_id</key>
                    <string>0xc53f</string>
                </dict>
            </array>
        </plist>"""
        get_all_usb_devices_data.return_value = plistlib.loads(plist)

        self.assertEqual(get_end_usb_devices_data(), [{
            "_name": "USB Receiver",
            "vendor_id": "0xc53f"
        }])
コード例 #4
0
    def test_does_not_list_usb_hubs_or_buses(self, get_all_usb_devices_data):
        plist = b"""<plist version="1.0">
            <array>
                <dict>
                    <key>_name</key>
                    <string>USB31Bus</string>
                    <key>_items</key>
                    <array>
                        <dict>
                            <key>_name</key>
                            <string>USB3.0 Hub</string>
                        </dict>
                    </array>
                </dict>
                <dict>
                    <key>_name</key>
                    <string>USB20Bus</string>
                </dict>
            </array>
        </plist>"""
        get_all_usb_devices_data.return_value = plistlib.loads(plist)

        self.assertEqual(get_end_usb_devices_data(), [])