def test_function_scan_physical_drive_unknown_drive_status():
    with mock.patch('check_megaraid.sys.exit') as exit_mock:
        scan_physical_drive(("Adapter #0\n\n"
                             "Enclosure Device ID: 32\n"
                             "Slot Number: 0\n"
                             "Enclosure position: 0\n"
                             "Device Id: 0\n"
                             "Sequence Number: 2\n"
                             "Media Error Count: 0\n"
                             "Other Error Count: 0\n"
                             "Predictive "
                             "Failure Count: 0\n"
                             "Last Predictive Failure "
                             "Event Seq Number: 0\n"
                             "PD Type: SATA\n"
                             "Raw Size: 93.160 GB "
                             "[0xba52230 Sectors]\n"
                             "Non Coerced Size: 92.660 "
                             "GB [0xb952230 Sectors]\n"
                             "Coerced Size: 92.625 GB "
                             "[0xb940000 Sectors]\n"
                             "Firmware state: UnknownDriveStatus, "
                             "Spun Up\n"
                             "SAS Address(0): "
                             "0x500056b37789abe3\n"
                             "Connected Port Number: "
                             "0(path0)\n"
                             "Inquiry Data:   "
                             "BTTV412301EN100FGNINTEL \n"
                             "SSDSC2BA100G3T\t5DV1DL05\n"
                             "FDE Capable: Not Capable\n"
                             "FDE Enable: Disable\n"
                             "Secured: Unsecured\n"
                             "Locked: Unlocked\n"
                             "Needs EKM Attention: No\n"
                             "Foreign State: None\n"
                             "Device Speed: 3.0Gb/s\n"
                             "Link Speed: 3.0Gb/s\n"
                             "Media Type: Solid State "
                             "Device\n"
                             "Drive Temperature :25C "
                             "(77.00 F)\n"))
        assert exit_mock.called
def test_function_scan_physical_drive_unknown_drive_status():
    with mock.patch('check_megaraid.sys.exit') as exit_mock:
        scan_physical_drive(("Adapter #0\n\n"
                             "Enclosure Device ID: 32\n"
                             "Slot Number: 0\n"
                             "Enclosure position: 0\n"
                             "Device Id: 0\n"
                             "Sequence Number: 2\n"
                             "Media Error Count: 0\n"
                             "Other Error Count: 0\n"
                             "Predictive "
                             "Failure Count: 0\n"
                             "Last Predictive Failure "
                             "Event Seq Number: 0\n"
                             "PD Type: SATA\n"
                             "Raw Size: 93.160 GB "
                             "[0xba52230 Sectors]\n"
                             "Non Coerced Size: 92.660 "
                             "GB [0xb952230 Sectors]\n"
                             "Coerced Size: 92.625 GB "
                             "[0xb940000 Sectors]\n"
                             "Firmware state: UnknownDriveStatus, "
                             "Spun Up\n"
                             "SAS Address(0): "
                             "0x500056b37789abe3\n"
                             "Connected Port Number: "
                             "0(path0)\n"
                             "Inquiry Data:   "
                             "BTTV412301EN100FGNINTEL \n"
                             "SSDSC2BA100G3T\t5DV1DL05\n"
                             "FDE Capable: Not Capable\n"
                             "FDE Enable: Disable\n"
                             "Secured: Unsecured\n"
                             "Locked: Unlocked\n"
                             "Needs EKM Attention: No\n"
                             "Foreign State: None\n"
                             "Device Speed: 3.0Gb/s\n"
                             "Link Speed: 3.0Gb/s\n"
                             "Media Type: Solid State "
                             "Device\n"
                             "Drive Temperature :25C "
                             "(77.00 F)\n"))
        assert exit_mock.called
def test_function_scan_physical_drive_predictive_errors():
    assert_equals(scan_physical_drive("Adapter #0\n\n"
                                      + "Enclosure Device ID: 32\n"
                                      + "Slot Number: 0\n"
                                      + "Enclosure position: 0\n"
                                      + "Device Id: 0\n"
                                      + "Sequence Number: 2\n"
                                      + "Media Error Count: 0\n"
                                      + "Other Error Count: 0\n"
                                      + "Predictive "
                                      + "Failure Count: 3\n"
                                      + "Last Predictive Failure "
                                      + "Event Seq Number: 0\n"
                                      + "PD Type: SATA\n"
                                      + "Raw Size: 93.160 GB "
                                      + "[0xba52230 Sectors]\n"
                                      + "Non Coerced Size: 92.660 "
                                      + "GB [0xb952230 Sectors]\n"
                                      + "Coerced Size: 92.625 GB "
                                      + "[0xb940000 Sectors]\n"
                                      + "Firmware state: Online, "
                                      + "Spun Up\n"
                                      + "SAS Address(0): "
                                      + "0x500056b37789abe3\n"
                                      + "Connected Port Number: "
                                      + "0(path0)\n"
                                      + "Inquiry Data:   "
                                      + "BTTV412301EN100FGNINTEL \n"
                                      + "SSDSC2BA100G3T\t5DV1DL05\n"
                                      + "FDE Capable: Not Capable\n"
                                      + "FDE Enable: Disable\n"
                                      + "Secured: Unsecured\n"
                                      + "Locked: Unlocked\n"
                                      + "Needs EKM Attention: No\n"
                                      + "Foreign State: None\n"
                                      + "Device Speed: 3.0Gb/s\n"
                                      + "Link Speed: 3.0Gb/s\n"
                                      + "Media Type: Solid State "
                                      + "Device\n"
                                      + "Drive Temperature :25C "
                                      + "(77.00 F)\n"),
                  (0, 0, 3, 0, 0))
def test_function_scan_physical_drive_predictive_errors():
    assert_equals(
        scan_physical_drive(
            "Adapter #0\n\n" + "Enclosure Device ID: 32\n" +
            "Slot Number: 0\n" + "Enclosure position: 0\n" + "Device Id: 0\n" +
            "Sequence Number: 2\n" + "Media Error Count: 0\n" +
            "Other Error Count: 0\n" + "Predictive " + "Failure Count: 3\n" +
            "Last Predictive Failure " + "Event Seq Number: 0\n" +
            "PD Type: SATA\n" + "Raw Size: 93.160 GB " +
            "[0xba52230 Sectors]\n" + "Non Coerced Size: 92.660 " +
            "GB [0xb952230 Sectors]\n" + "Coerced Size: 92.625 GB " +
            "[0xb940000 Sectors]\n" + "Firmware state: Online, " +
            "Spun Up\n" + "SAS Address(0): " + "0x500056b37789abe3\n" +
            "Connected Port Number: " + "0(path0)\n" + "Inquiry Data:   " +
            "BTTV412301EN100FGNINTEL \n" + "SSDSC2BA100G3T\t5DV1DL05\n" +
            "FDE Capable: Not Capable\n" + "FDE Enable: Disable\n" +
            "Secured: Unsecured\n" + "Locked: Unlocked\n" +
            "Needs EKM Attention: No\n" + "Foreign State: None\n" +
            "Device Speed: 3.0Gb/s\n" + "Link Speed: 3.0Gb/s\n" +
            "Media Type: Solid State " + "Device\n" +
            "Drive Temperature :25C " + "(77.00 F)\n"), (0, 0, 3, 0, 0))