def _test(mod):
    """Performs standard document validation tests."""
    # Set test document/error factories.
    error_setters = (_set_doc_errors_01, _set_doc_errors_02)
    if hasattr(mod, "get_document_error_setters"):
        error_setters += mod.get_document_error_setters()

    # Perform validation test.
    for error_setter in error_setters:
        # ... set valid test document.
        doc = tu.get_doc(mod)

        # ... set expected error count.
        expected_error_count = error_setter(doc)

        # ... validate document.
        errors = pyesdoc.validate(doc)

        # ... print errors if mismatch between expected & actual.
        # if len(errors) == expected_error_count:
        #     for error in errors:
        #         rt.log(error, level=rt.LOG_LEVEL_WARNING)

        # ... assert errors.
        tu.assert_iter(errors, expected_error_count, length_compare=tu.COMPARE_LTE)
Example #2
0
def _test(mod):
    """Performs standard document validation tests."""
    # Set test document/error factories.
    error_setters = (_set_doc_errors_01, _set_doc_errors_02)
    if hasattr(mod, "get_document_error_setters"):
        error_setters += mod.get_document_error_setters()

    # Perform validation test.
    for error_setter in error_setters:
        # ... set valid test document.
        doc = tu.get_doc(mod)

        # ... set expected error count.
        expected_error_count = error_setter(doc)

        # ... validate document.
        errors = pyesdoc.validate(doc)

        # ... print errors if mismatch between expected & actual.
        # if len(errors) == expected_error_count:
        #     for error in errors:
        #         rt.log(error, level=rt.LOG_LEVEL_WARNING)

        # ... assert errors.
        tu.assert_iter(errors, expected_error_count)
Example #3
0
def _assert_doc_content(doc, is_update):
    """Assert content information."""
    tu.assert_iter(doc.content, 1, cim.v1.DataContent)
    c = doc.content[0]
    tu.assert_object(c.topic, cim.v1.DataTopic)
    tu.assert_str(c.topic.description, "missing CF name: tendency_of", True)
    tu.assert_str(c.topic.name, "fossil_fuel_organic_carbon")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_iter(doc.reports, 1)
    r = doc.reports[0]
    tu.assert_date(r.date, '2011-05-01 12:00:00')
    tu.assert_object(r.evaluator, cim.v1.ResponsibleParty)
    tu.assert_str(r.evaluator.individual_name, '*****@*****.**')
    tu.assert_str(r.evaluator.role, 'pointofContact')
def _assert_doc_tile_zcoords(doc, is_update):
    """Assert tile zcoords information."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.zcoords, cim.v1.VerticalCoordinateList)
    z = t.zcoords
    tu.assert_str(z.form, "hybrid height")
    tu.assert_str(z.type, "hybrid")
    tu.assert_iter(z.properties, 1, cim.v1.GridProperty)
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.description, "AMIP (1979 - at least 2008)", True)
    tu.assert_str(doc.experiment_id, "3.3")
    tu.assert_str(doc.long_name, "AMIP")
    tu.assert_iter(doc.rationales, 1, str)
    tu.assert_str(doc.rationales[0], "AMIP. Baseline simulation for", True)
    tu.assert_str(doc.short_name, "amip")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.description, "AMIP (1979 - at least 2008)", True)
    tu.assert_str(doc.experiment_id, "3.3")
    tu.assert_str(doc.long_name, "AMIP")
    tu.assert_iter(doc.rationales, 1, str)
    tu.assert_str(doc.rationales[0], "AMIP. Baseline simulation for", True)
    tu.assert_str(doc.short_name, "amip")
def _assert_doc_tile_zcoords(doc, is_update):
    """Assert tile zcoords information."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.zcoords, cim.v1.VerticalCoordinateList)
    z = t.zcoords
    tu.assert_str(z.form, "hybrid height")
    tu.assert_str(z.type, "hybrid")
    tu.assert_iter(z.properties, 1, cim.v1.GridProperty)
def _assert_doc_tile_vertical_resolution(doc, is_update):
    """Assert tile vertical resolution."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.vertical_resolution, cim.v1.GridTileResolutionType)
    vr = t.vertical_resolution
    tu.assert_iter(vr.properties, 4, cim.v1.GridProperty)
    p = vr.properties[0]
    tu.assert_str(p.name, "TopModelLevel")
    tu.assert_str(p.value, "39254.8")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.long_name, "Machine IBM Power 6 and compiler Other")
    tu.assert_str(doc.short_name, "IBM Power 6_Other")
    tu.assert_iter(doc.contacts, 1, cim.v1.ResponsibleParty)
    tu.assert_str(doc.contacts[0].abbreviation, "MOHC")
    tu.assert_str(doc.contacts[0].organisation_name, "UK Met Office Hadley Centre")
    tu.assert_str(doc.contacts[0].role, "contact")
    tu.assert_iter(doc.units, 1, cim.v1.MachineCompilerUnit)
def _assert_doc_tile_vertical_resolution(doc, is_update):
    """Assert tile vertical resolution."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.vertical_resolution, cim.v1.GridTileResolutionType)
    vr = t.vertical_resolution
    tu.assert_iter(vr.properties, 4, cim.v1.GridProperty)
    p = vr.properties[0]
    tu.assert_str(p.name, "TopModelLevel")
    tu.assert_str(p.value, "39254.8")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    if not is_update:
        tu.assert_str(doc.description, "Six element ensemble", True)
    tu.assert_iter(doc.members, 6, cim.v1.EnsembleMember)
    tu.assert_str(doc.long_name, "3.3 AMIP and AMIP Ensemble")
    tu.assert_str(doc.short_name, "amip")
    tu.assert_iter(doc.types, 1)
    tu.assert_str(doc.types[0], "Initial Condition")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.long_name, "Machine IBM Power 6 and compiler Other")
    tu.assert_str(doc.short_name, "IBM Power 6_Other")
    tu.assert_iter(doc.contacts, 1, cim.v1.ResponsibleParty)
    tu.assert_str(doc.contacts[0].abbreviation, "MOHC")
    tu.assert_str(doc.contacts[0].organisation_name,
                  "UK Met Office Hadley Centre")
    tu.assert_str(doc.contacts[0].role, "contact")
    tu.assert_iter(doc.units, 1, cim.v1.MachineCompilerUnit)
def _assert_doc_tile_horizontal_resolution(doc, is_update):
    """Assert tile horizontal resolution."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.horizontal_resolution, cim.v1.GridTileResolutionType)
    hr = t.horizontal_resolution
    tu.assert_str(hr.description, "1.875 degrees in longitude", True)
    tu.assert_iter(hr.properties, 2, cim.v1.GridProperty)
    p = hr.properties[0]
    tu.assert_str(p.name, "NumberOfLatitudinalGridCells")
    tu.assert_str(p.value, "145")
def _assert_doc_tile(doc, is_update):
    """Assert tile information."""
    g = doc.esm_model_grids[0]
    tu.assert_int(g.tile_count, 1)
    tu.assert_iter(g.tiles, 1, cim.v1.GridTile)
    tu.assert_object(g.tiles[0], cim.v1.GridTile)
    t = g.tiles[0]
    tu.assert_str(t.description, "Horizontal properties: The N96", True)
    tu.assert_str(t.discretization_type, "logically_rectangular")
    tu.assert_str(t.mnemonic, "N96")
def _assert_doc_tile(doc, is_update):
    """Assert tile information."""
    g = doc.esm_model_grids[0]
    tu.assert_int(g.tile_count, 1)
    tu.assert_iter(g.tiles, 1, cim.v1.GridTile)
    tu.assert_object(g.tiles[0], cim.v1.GridTile)
    t = g.tiles[0]
    tu.assert_str(t.description, "Horizontal properties: The N96", True)
    tu.assert_str(t.discretization_type, "logically_rectangular")
    tu.assert_str(t.mnemonic, "N96")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.acronym, "fossil_fuel_organic_carbon")
    tu.assert_str(doc.data_status, "complete")
    tu.assert_str(doc.description, "2D gridded monthly-mean", True)
    tu.assert_iter(doc.storage, 1)
    storage = doc.storage[0]
    tu.assert_object(storage, cim.v1.DataStorageIp)
    tu.assert_str(storage.format, "ASCII")
    tu.assert_str(storage.file_name, "emissions of organic", True)
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_iter(doc.esm_model_grids, 1, cim.v1.GridMosaic)
    g = doc.esm_model_grids[0]
    tu.assert_iter(g.citations, 2, cim.v1.Citation)
    tu.assert_str(g.description, "Specification of the atmosphere", True)
    tu.assert_bool(g.is_leaf, True)
    tu.assert_str(g.long_name, "Met Office Unified Model 192", True)
    tu.assert_str(g.short_name, "UM N96L38 ATM Grid System")
    tu.assert_str(g.type, "regular_lat_lon")
def _assert_doc_tile_horizontal_resolution(doc, is_update):
    """Assert tile horizontal resolution."""
    t = doc.esm_model_grids[0].tiles[0]
    tu.assert_object(t.horizontal_resolution, cim.v1.GridTileResolutionType)
    hr = t.horizontal_resolution
    tu.assert_str(hr.description, "1.875 degrees in longitude", True)
    tu.assert_iter(hr.properties, 2, cim.v1.GridProperty)
    p = hr.properties[0]
    tu.assert_str(p.name, "NumberOfLatitudinalGridCells")
    tu.assert_str(p.value, "145")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_iter(doc.esm_model_grids, 1, cim.v1.GridMosaic)
    g = doc.esm_model_grids[0]
    tu.assert_iter(g.citations, 2, cim.v1.Citation)
    tu.assert_str(g.description, "Specification of the atmosphere", True)
    tu.assert_bool(g.is_leaf, True)
    tu.assert_str(g.long_name, "Met Office Unified Model 192", True)
    tu.assert_str(g.short_name, "UM N96L38 ATM Grid System")
    tu.assert_str(g.type, "regular_lat_lon")
def _assert_doc_deployments(doc, is_update):
    """Assert simulation deployments."""
    tu.assert_iter(doc.deployments, 1, cim.v1.Deployment)

    dep = doc.deployments[0]
    tu.assert_str(dep.description, "The resources(deployment) on which", True)
    tu.assert_object(dep.platform_reference, cim.v1.DocReference)
    ref = dep.platform_reference
    tu.assert_str(ref.description, "Reference to a platform", True)
    tu.assert_uuid(ref.id, "b765775a-e2ac-11df-9efb-00163e9152a5")
    tu.assert_str(ref.name, "IBM Power 6")
    tu.assert_str(ref.type, "platform")
    tu.assert_int(ref.version, 1)
def assert_meta_info(meta):
    """Asserts a document's meta-information.

    :param object meta: Document meta information.

    """
    tu.assert_iter(meta.genealogy.relationships, 1, cim.v1.DocRelationship)

    r = meta.genealogy.relationships[0]
    tu.assert_str(r.description, "The HadGEM2-A model", True)
    tu.assert_str(r.direction, "toTarget")
    tu.assert_str(r.type, "previousVersionOf")
    tu.assert_str(r.target.reference.name, "HadGEM1")
def _assert_doc_machine(doc, is_update):
    """Assert machine information."""
    tu.assert_object(doc.units[0].machine, cim.v1.Machine)
    m = doc.units[0].machine
    tu.assert_int(m.cores_per_processor, 32)
    tu.assert_str(m.interconnect, "Infiniband")
    tu.assert_str(m.name, "IBM Power 6")
    tu.assert_iter(m.libraries, 0)
    tu.assert_int(m.maximum_processors, 2)
    tu.assert_str(m.operating_system, "AIX")
    tu.assert_str(m.system, "Parallel")
    tu.assert_str(m.vendor, "IBM")
    tu.assert_str(m.processor_type, "Other")
def _assert_doc_deployments(doc, is_update):
    """Assert simulation deployments."""
    tu.assert_iter(doc.deployments, 1, cim.v1.Deployment)

    dep = doc.deployments[0]
    tu.assert_str(dep.description, "The resources(deployment) on which", True)
    tu.assert_object(dep.platform_reference, cim.v1.DocReference)
    ref = dep.platform_reference
    tu.assert_str(ref.description, "Reference to a platform", True)
    tu.assert_uuid(ref.id, "b765775a-e2ac-11df-9efb-00163e9152a5")
    tu.assert_str(ref.name, "IBM Power 6")
    tu.assert_str(ref.type, "platform")
    tu.assert_int(ref.version, 1)
def _assert_doc_machine(doc, is_update):
    """Assert machine information."""
    tu.assert_object(doc.units[0].machine, cim.v1.Machine)
    m = doc.units[0].machine
    tu.assert_int(m.cores_per_processor, 32)
    tu.assert_str(m.interconnect, "Infiniband")
    tu.assert_str(m.name, "IBM Power 6")
    tu.assert_iter(m.libraries, 0)
    tu.assert_int(m.maximum_processors, 2)
    tu.assert_str(m.operating_system, "AIX")
    tu.assert_str(m.system, "Parallel")
    tu.assert_str(m.vendor, "IBM")
    tu.assert_str(m.processor_type, "Other")
def _assert_doc_member_change(doc, is_update):
    """Assert ensemble members information."""
    member = doc.members[1]
    
    tu.assert_iter(member.simulation_reference.changes, 1, cim.v1.Change)
    c = member.simulation_reference.changes[0]
    tu.assert_str(c.name, "IC mod")
    tu.assert_str(c.type, "InitialCondition")
    tu.assert_date(c.date, "1850-01-01T00:00:00Z")

    tu.assert_iter(c.details, 1, cim.v1.ChangeProperty)
    cp = c.details[0]
    tu.assert_str(cp.description, "ICs come from different points in the control run")
def assert_meta_info(meta):
    """Asserts a document's meta-information.

    :param object meta: Document meta information.

    """
    tu.assert_iter(meta.genealogy.relationships, 1, cim.v1.DocRelationship)

    r = meta.genealogy.relationships[0]
    tu.assert_str(r.description, "The HadGEM2-A model", True)
    tu.assert_str(r.direction, "toTarget")
    tu.assert_str(r.type, "previousVersionOf")
    tu.assert_str(r.target.reference.name, "HadGEM1")
def assert_meta_info(meta):
    """Asserts a document's meta-information.

    :param object meta: Document meta information.

    """
    tu.assert_iter(meta.external_ids, 2, cim.v1.StandardName)
    id = meta.external_ids[0]
    tu.assert_bool(id.is_open, True)
    tu.assert_iter(id.standards, 1, cim.v1.Standard)
    tu.assert_str(id.value, "MOHC_HadGEM2-A_amip_r1i1p1_1978")
    std = id.standards[0]
    tu.assert_str(std.description, "The QN_DRS value allows", True)
    tu.assert_str(std.name, "QN_DRS")
def assert_meta_info(meta):
    """Asserts a document's meta-information.

    :param object meta: Document meta information.

    """
    tu.assert_iter(meta.external_ids, 2, cim.v1.StandardName)
    id = meta.external_ids[0]
    tu.assert_bool(id.is_open, True)
    tu.assert_iter(id.standards, 1, cim.v1.Standard)
    tu.assert_str(id.value, "MOHC_HadGEM2-A_amip_r1i1p1_1978")
    std = id.standards[0]
    tu.assert_str(std.description, "The QN_DRS value allows", True)
    tu.assert_str(std.name, "QN_DRS")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.authors, "C. Jones, J. Hughes", True)
    tu.assert_object(doc.date_range, cim.v1.ClosedDateRange)
    tu.assert_str(doc.date_range.duration, "P30Y")
    tu.assert_date(doc.date_range.start, "1978-12-01 00:00:00+00:00")
    tu.assert_str(doc.description, "Main amip ensemble simulations", True)
    tu.assert_str(doc.long_name, "3.3 AMIP and AMIP Ensemble", True)
    tu.assert_iter(doc.projects, 1, str)
    tu.assert_str(doc.projects[0], "CMIP5")
    tu.assert_iter(doc.responsible_parties, 4, cim.v1.ResponsibleParty)
    tu.assert_str(doc.short_name, "amip")
    tu.assert_object(doc.spinup_date_range, cim.v1.ClosedDateRange)
    tu.assert_str(doc.spinup_date_range.duration, "P30Y")
    tu.assert_date(doc.spinup_date_range.start, "1978-12-01 00:00:00+00:00")
def _assert_doc_member(doc, is_update):
    """Assert ensemble members information."""
    # ... ensemble member id.
    member = doc.members[0]
    tu.assert_iter(member.ensemble_ids, 1, cim.v1.StandardName)
    tu.assert_str(member.ensemble_ids[0].is_open, True)
    tu.assert_str(member.ensemble_ids[0].value, "r1i1p1")

    # ... ensemble member simulation reference.
    tu.assert_object(member.simulation_reference, cim.v1.DocReference)
    ref = member.simulation_reference
    tu.assert_str(ref.description, "Reference to a simulation called amip")
    tu.assert_uuid(ref.id, "e4155a28-268e-11e1-9a0e-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "simulation")
    tu.assert_str(ref.version, 2)
def _assert_doc_conformances(doc, is_update):
    """Assert simulation conformances."""
    tu.assert_iter(doc.conformances, 13, cim.v1.Conformance)

    c = doc.conformances[0]
    tu.assert_str(c.type, "standard config")
    tu.assert_iter(c.requirements_references, 1, cim.v1.DocReference)
    ref = c.requirements_references[0]
    tu.assert_str(ref.description, "Reference to a NumericalRequirement", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "ic.003")
    tu.assert_str(ref.type, "NumericalRequirement")
    tu.assert_int(ref.version, 1)

    c = doc.conformances[7]
    tu.assert_str(c.description, "Prescribed land use", True)
    tu.assert_bool(c.is_conformant, True)
    tu.assert_str(c.type, "via inputs")
def _assert_doc_conformances(doc, is_update):
    """Assert simulation conformances."""
    tu.assert_iter(doc.conformances, 13, cim.v1.Conformance)

    c = doc.conformances[0]
    tu.assert_str(c.type, "standard config")
    tu.assert_iter(c.requirements_references, 1, cim.v1.DocReference)
    ref = c.requirements_references[0]
    tu.assert_str(ref.description, "Reference to a NumericalRequirement", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "ic.003")
    tu.assert_str(ref.type, "NumericalRequirement")
    tu.assert_int(ref.version, 1)

    c = doc.conformances[7]
    tu.assert_str(c.description, "Prescribed land use", True)
    tu.assert_bool(c.is_conformant, True)
    tu.assert_str(c.type, "via inputs")
def _assert_doc_requirements(doc, is_update):
    """Assert experiment requirements."""
    tu.assert_iter(doc.requirements, 13, cim.v1.NumericalRequirement)

    # Initial condition.
    req = doc.requirements[0]
    tu.assert_object(req, cim.v1.InitialCondition)
    tu.assert_str(req.description, "Initial conditions are from", True)
    tu.assert_str(req.id, "ic.003")
    tu.assert_str(req.name, "3.3.ic")
    tu.assert_str(req.requirement_type, "initialCondition")

    # Boundary condition.
    req = doc.requirements[1]
    tu.assert_object(req, cim.v1.BoundaryCondition)
    tu.assert_str(req.requirement_type, "boundaryCondition")
    tu.assert_str(req.description, "Imposed changing concentrations", True)
    tu.assert_none(req.id)
    tu.assert_str(req.name, "3.3.bc.sls")

    # Boundary condition - options.
    tu.assert_iter(req.options, 2, cim.v1.NumericalRequirementOption)
    opt = req.options[0]
    tu.assert_str(opt.relationship, "XOR")
    tu.assert_object(opt.requirement, cim.v1.BoundaryCondition)
    # ... sub-requirement
    req = opt.requirement
    tu.assert_str(req.requirement_type, "boundaryCondition")
    tu.assert_str(req.description, "Concentrations")
    tu.assert_str(req.id, "bc.013")
    tu.assert_str(req.name, "3.3.bc.sls_conc")

    # Spatio Temporal Constraint.
    req = doc.requirements[12]
    tu.assert_object(req, cim.v1.SpatioTemporalConstraint)
    tu.assert_object(req.date_range, cim.v1.ClosedDateRange)
    tu.assert_str(req.date_range.duration, "P30Y")
    tu.assert_date(req.date_range.end, "2008-12-30 00:00:00+00:00")
    tu.assert_date(req.date_range.start, "1979-01-01 00:00:00+00:00")
    tu.assert_str(req.description, "Begin in 1979 and", True)
    tu.assert_str(req.id, "stc.027")
    tu.assert_str(req.name, "3.3.stc.1979_30yr")
    tu.assert_str(req.requirement_type, "spatioTemporalConstraint")
def _assert_doc_references(doc, is_update):
    """Assert simulation references."""
    # Model reference.
    tu.assert_object(doc.model_reference, cim.v1.DocReference)
    ref = doc.model_reference
    tu.assert_str(ref.description, "Reference to a modelComponent", True)
    tu.assert_uuid(ref.id, "7a2b64cc-03ca-11e1-a36a-00163e9152a5")
    tu.assert_str(ref.name, "HadGEM2-A")
    tu.assert_str(ref.type, "modelComponent")
    tu.assert_int(ref.version, 1)

    # Experiment reference.
    tu.assert_iter(doc.supports_references, 1, cim.v1.DocReference)
    ref = doc.supports_references[0]
    tu.assert_str(ref.description, "Reference to an Experiment", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "experiment")
    tu.assert_int(ref.version, 1)
def _assert_doc_references(doc, is_update):
    """Assert simulation references."""
    # Model reference.
    tu.assert_object(doc.model_reference, cim.v1.DocReference)
    ref = doc.model_reference
    tu.assert_str(ref.description, "Reference to a modelComponent", True)
    tu.assert_uuid(ref.id, "7a2b64cc-03ca-11e1-a36a-00163e9152a5")
    tu.assert_str(ref.name, "HadGEM2-A")
    tu.assert_str(ref.type, "modelComponent")
    tu.assert_int(ref.version, 1)

    # Experiment reference.
    tu.assert_iter(doc.supports_references, 1, cim.v1.DocReference)
    ref = doc.supports_references[0]
    tu.assert_str(ref.description, "Reference to an Experiment", True)
    tu.assert_uuid(ref.id, "9fa513fc-d3a5-11df-837f-00163e9152a5")
    tu.assert_str(ref.name, "amip")
    tu.assert_str(ref.type, "experiment")
    tu.assert_int(ref.version, 1)
def assert_doc(doc, is_update=False):
    """Asserts a document.

    :param object doc: Document being tested.
    :param bool is_update: Flag indicating whether document has been updated.

    """
    tu.assert_iter(doc.data, 18, cim.v1.DataObject)
    tu.assert_iter(doc.ensembles, 1, cim.v1.Ensemble)
    tu.assert_object(doc.experiment, cim.v1.NumericalExperiment)
    tu.assert_iter(doc.grids, 1, cim.v1.GridSpec)
    tu.assert_object(doc.model, cim.v1.ModelComponent)
    tu.assert_object(doc.platform, cim.v1.Platform)
    tu.assert_object(doc.simulation, cim.v1.SimulationRun)
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_str(doc.authors, "C. Jones, J. Hughes", True)
    tu.assert_object(doc.date_range, cim.v1.ClosedDateRange)
    tu.assert_str(doc.date_range.duration, "P30Y")
    tu.assert_date(doc.date_range.start, "1978-12-01 00:00:00+00:00")
    tu.assert_str(doc.description, "Main amip ensemble simulations", True)
    tu.assert_str(doc.long_name, "3.3 AMIP and AMIP Ensemble", True)
    tu.assert_iter(doc.projects, 1, str)
    tu.assert_iter(doc.projects[0], "CMIP5")
    tu.assert_iter(doc.responsible_parties, 4, cim.v1.ResponsibleParty)
    tu.assert_str(doc.short_name, "amip")
    tu.assert_object(doc.spinup_date_range, cim.v1.ClosedDateRange)
    tu.assert_str(doc.spinup_date_range.duration, "P30Y")
    tu.assert_date(doc.spinup_date_range.start, "1978-12-01 00:00:00+00:00")
Example #39
0
def _test_custom_extender_count():
    """Test number of extenders."""
    tu.assert_iter(pyesdoc.extensions.SUPPORTED, length=10)
Example #40
0
def _test_custom_extender_count():
    """Test number of extenders."""
    tu.assert_iter(pyesdoc.extensions.SUPPORTED, length=9)
def _assert_doc_compiler(doc, is_update):
    """Assert compiler information."""
    tu.assert_iter(doc.units[0].compilers, 1, cim.v1.Compiler)
    c = doc.units[0].compilers[0]
    tu.assert_str(c.name, "Other")
    tu.assert_str(c.version, "12.1.0.0")
def _assert_doc_inputs(doc, is_update):
    """Assert simulation inputs."""
    tu.assert_iter(doc.inputs, 56, cim.v1.Coupling)
def _assert_doc_compiler(doc, is_update):
    """Assert compiler information."""
    tu.assert_iter(doc.units[0].compilers, 1, cim.v1.Compiler)
    c = doc.units[0].compilers[0]
    tu.assert_str(c.name, "Other")
    tu.assert_str(c.version, "12.1.0.0")
def _assert_doc_core(doc, is_update):
    """Assert core information."""
    tu.assert_iter(doc.citations, 2, cim.v1.Citation)
def _assert_doc_inputs(doc, is_update):
    """Assert simulation inputs."""
    tu.assert_iter(doc.inputs, 56, cim.v1.Coupling)
def _assert_doc_content(doc, is_update):
    """Assert content information."""
    tu.assert_iter(doc.content, 1, cim.v1.DataContent)
    c = doc.content[0]
    tu.assert_str(c.aggregation, "sum")
    tu.assert_str(c.frequency, "Other")
def _assert_doc_data_properties(doc, is_update):
    """Assert properties."""
    tu.assert_iter(doc.properties, 2, cim.v1.DataProperty)
    p = doc.properties[0]
    tu.assert_str(p.name, "TestProperty1")
    tu.assert_str(p.value, "1")