LAMA to Dask: towards a full test suite pass

The next step to close #182 is to get all remaining (metadata-focused) tests to pass after ('alpha' like) completion of the migration from LAMA to Dask of the Data modules and hence object (see #295). This PR enumerates all tests and their status so we can manage aspects in the codebase that need to be tweaked in light of the Data object migration, where one issue is likely to affect multiple tests so it is helpful to see what is hitting what and so on.


Test suite pass/fail listing

Test module name Passes fully? (Bool as emoji) Relevant PR tag(s) if relevant) Failing test methods, if any Erroring test methods, if any Notes
setup_create_field ✔️ #570 . . .
test_AuxiliaryCoordinate ✔️ . . . .
test_CellMeasure ✔️ . . . .
test_CellMethod ✔️ . . . .
test_Constructs ✔️ . . . .
test_CoordinateReference ✔️ . . . .
test_Count ✔️ . . . .
test_Data ✔️ #548, #553 . . One skip.
test_Data_utils ✔️ . . . .
test_Datetime ✔️ . . . .
test_DimensionCoordinate ✔️ #543, #553 . . .
test_Domain ✔️ . . . .
test_DomainAncillary ✔️ . . . .
test_DomainAxis ✔️ . . . .
test_Field ✔️ #506, #531, #532, #557 . . .
test_FieldAncillary ✔️ . . . .
test_FieldList ✔️ #504 . . .
test_Index ✔️ . . . .
test_List ✔️ . . . .
test_Maths ✔️ . . . .
test_Query ✔️ . . . .
test_RegridOperator ✔️ #438 . . .
test_TimeDuration ✔️ . . . .
test_aggregate ✔️ #572 . . .
test_cfa ✔️ #515 . . .
test_collapse ✔️ #532 . . .
test_decorators ✔️ #503. . . .
test_docstring ✔️ : #550, #551, #552 . . .
test_dsg ✔️ . . . .
test_external ✔️ . . . .
test_formula_terms ✔️ . . . .
test_functions ✔️ #554 . . .
test_gathering ✔️ . . . .
test_general ✔️ #489 . . .
test_geometry ✔️ #498, #504 . . .
test_groups ✔️ #517 . . .
test_pp ✔️ . . . .
test_read_write ✔️ #506, #522, NCAS-CMS/cfdm#234, #510 . . .
test_regrid ✔️ #438 . . .
test_style ✔️ #503. . . .
test_subsampling ✔️ #502, NCAS-CMS/cfdm#235 . . .

Notes: code to regenerate table structure

from os import listdir
from tabulate import tabulate

TEST_DIR_PATH = "."  # set this to the location of 'cf/test' relative to $PWD


# List out all of the Python files under the 'cf/test' directory
all_test_files = [
    f[:-3] for f in listdir(TEST_DIR_PATH) if
    f.startswith("test_") and f.endswith(".py")
]
all_test_files.sort()  # alphabetise rows listing in table
### print(all_test_files)

# Processing
complete_convert_to_emoji = {
    f: ":heavy_multiplication_x:" for f in all_test_files
}

blank_methods_list = [
    [f"`{m}`", v, ".", ".", ".", "."] for
    m, v in complete_convert_to_emoji.items()
]
print(tabulate(
    blank_methods_list, tablefmt="github",
    headers=[
        "Test module name", "Passes fully? (Bool as emoji)",
        "Relevant PR tag(s) if relevant)",
        "Failing test methods, if any",
        "Erroring test methods, if any",
        "Notes"
    ]
))
# Copy and paste output of above call into comment.
# THEN update the columns to reflect status of test modules based on running them.