Example #1
0
def test_check_index_valid_size_no_order_error(_mocked_exists,
                                               mocked_data_file,
                                               mocked_index_file, mocker,
                                               index, is_sorted, valid,
                                               malformed_headers):
    """Check generated headers sequence with eblob_kit.BlobRepairer.check_index.

    :param List[eblob_kit.DiskControl] index:
    :param bool is_sorted:
    :param bool valid:
    :param int malformed_headers:

    """
    mocked_index_file.return_value.__iter__.return_value = iter(index)

    type(mocked_index_file.return_value).sorted = mocker.PropertyMock(
        return_value=is_sorted)

    # Need to set some abstract value in order to make inner
    # check_header return True.
    mocked_data_file.return_value.__len__.return_value = 256

    blob_repairer = BlobRepairer(TEST_BLOB_PATH)

    assert blob_repairer.valid
    assert not blob_repairer.stat.index_order_error

    blob_repairer.check_index(True)

    assert blob_repairer.valid == valid

    assert not blob_repairer.stat.invalid_index_size
    assert not blob_repairer.stat.index_order_error

    assert blob_repairer.stat.index_malformed_headers == malformed_headers
Example #2
0
def test_check_index_non_valid(_mocked_exists,
                               mocked_data_file,
                               mocked_index_file,
                               mocker,
                               index,
                               sorted,
                               invalid_index_size,
                               index_order_error):
    """Check generated headers sequence with eblob_kit.BlobRepairer.check_index.

    TODO(karapuz): add test cases.

    :param List[eblob_kit.DiskControl] index:
    :param bool sorted:
    :param bool invalid_index_size:
    :param bool index_order_error:

    """
    if isinstance(index, Exception):
        mocked_index_file.return_value.__iter__.side_effect = index
    else:
        mocked_index_file.return_value.__iter__.return_value = iter(index)

    type(mocked_index_file.return_value).sorted = mocker.PropertyMock(return_value=sorted)

    # Need to set some abstract value in order to make inner
    # check_header return True.
    mocked_data_file.return_value.__len__.return_value = 256

    blob_repairer = BlobRepairer(TEST_BLOB_PATH)

    assert blob_repairer.valid
    assert not blob_repairer.stat.index_order_error

    blob_repairer.check_index(True)

    assert not blob_repairer.valid
    assert blob_repairer.stat.invalid_index_size == invalid_index_size

    assert blob_repairer.stat.index_order_error == index_order_error

    assert blob_repairer.stat.index_malformed_headers == 0
Example #3
0
def test_check_index_non_valid(_mocked_exists, mocked_data_file,
                               mocked_index_file, mocker, index, sorted,
                               invalid_index_size, index_order_error):
    """Check generated headers sequence with eblob_kit.BlobRepairer.check_index.

    TODO(karapuz): add test cases.

    :param List[eblob_kit.DiskControl] index:
    :param bool sorted:
    :param bool invalid_index_size:
    :param bool index_order_error:

    """
    if isinstance(index, Exception):
        mocked_index_file.return_value.__iter__.side_effect = index
    else:
        mocked_index_file.return_value.__iter__.return_value = iter(index)

    type(mocked_index_file.return_value).sorted = mocker.PropertyMock(
        return_value=sorted)

    # Need to set some abstract value in order to make inner
    # check_header return True.
    mocked_data_file.return_value.__len__.return_value = 256

    blob_repairer = BlobRepairer(TEST_BLOB_PATH)

    assert blob_repairer.valid
    assert not blob_repairer.stat.index_order_error

    blob_repairer.check_index(True)

    assert not blob_repairer.valid
    assert blob_repairer.stat.invalid_index_size == invalid_index_size

    assert blob_repairer.stat.index_order_error == index_order_error

    assert blob_repairer.stat.index_malformed_headers == 0
Example #4
0
def test_check_index_valid_size_no_order_error(_mocked_exists,
                                               mocked_data_file,
                                               mocked_index_file,
                                               mocker,
                                               index,
                                               is_sorted,
                                               valid,
                                               malformed_headers):
    """Check generated headers sequence with eblob_kit.BlobRepairer.check_index.

    :param List[eblob_kit.DiskControl] index:
    :param bool is_sorted:
    :param bool valid:
    :param int malformed_headers:

    """
    mocked_index_file.return_value.__iter__.return_value = iter(index)

    type(mocked_index_file.return_value).sorted = mocker.PropertyMock(return_value=is_sorted)

    # Need to set some abstract value in order to make inner
    # check_header return True.
    mocked_data_file.return_value.__len__.return_value = 256

    blob_repairer = BlobRepairer(TEST_BLOB_PATH)

    assert blob_repairer.valid
    assert not blob_repairer.stat.index_order_error

    blob_repairer.check_index(True)

    assert blob_repairer.valid == valid

    assert not blob_repairer.stat.invalid_index_size
    assert not blob_repairer.stat.index_order_error

    assert blob_repairer.stat.index_malformed_headers == malformed_headers