예제 #1
0
 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")
예제 #2
0
  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)