def test_error_if_data_block_not_given_for_multi_data_blocks(self, mocker):
        input_dict = fake_cif_data(NUMERICAL_DATA_NAMES + TEXTUAL_DATA_NAMES, no_data_blocks=5)
        mocker.patch("diffraction.cif.helpers.load_cif", return_value=input_dict)

        with pytest.raises(TypeError) as exception_info:
            load_data_block("multi/data/block/cif")
        assert str(exception_info.value) == \
            ("__init__() missing keyword argument: 'data_block'. "
             "Required when input CIF has multiple data blocks.")
    def test_data_block_loads_for_multi_data_blocks(self, mocker):
        input_dict = fake_cif_data(NUMERICAL_DATA_NAMES + TEXTUAL_DATA_NAMES, no_data_blocks=5)
        mocker.patch("diffraction.cif.helpers.load_cif", return_value=input_dict)

        assert load_data_block("multi/data/block/cif", "data_block_0") == \
            input_dict["data_block_0"]
    def test_single_datablock_loaded_automatically(self, mocker):
        input_dict = fake_cif_data(NUMERICAL_DATA_NAMES + TEXTUAL_DATA_NAMES)
        mocker.patch("diffraction.cif.helpers.load_cif", return_value=input_dict)

        data_items = load_data_block("single/data/block/cif")
        assert data_items == input_dict["data_block_0"]