def testOSXSPHardwareDataTypeParser(self): parser = osx_file_parser.OSXSPHardwareDataTypeParser() content = open(os.path.join(self.base_path, "system_profiler.xml"), "rb").read() result = list( parser.Parse("/usr/sbin/system_profiler", ["SPHardwareDataType -xml"], content, "", 0, None)) self.assertEqual(result[0].serial_number, "C02JQ0F5F6L9") self.assertEqual(result[0].bios_version, "MBP101.00EE.B02") self.assertEqual(result[0].system_product_name, "MacBookPro10,1")
def testOSXSPHardwareDataTypeParserInvalidInput(self): parser = osx_file_parser.OSXSPHardwareDataTypeParser() response = rdf_client_action.ExecuteResponse() response.request.cmd = "/usr/sbin/system_profiler" response.request.args = ["-xml", "SPHardwareDataType"] response.stdout = "chrzÄ…szcz brzmi w trzcinie".encode("utf-8") response.stdout = b"" response.exit_status = 0 with self.assertRaises(parsers.ParseError) as context: list(parser.ParseResponse(None, response)) exception = context.exception self.assertIsInstance(exception.cause, plistlib.InvalidFileException)