Skip to content

test_legacy_dataset#

test_legacy_dataset_api_version#

Source code in tests/unit/apps/core/models/test_legacy_dataset.py
def test_legacy_dataset_api_version():
    dataset_json_without_version = {
        "research_dataset": {"title": {"en": "Hello"}},
        "metadata_provider_user": "test_user",
        "metadata_provider_org": "test_org",
    }

    # By default, API version comes from dataset_json
    dataset_json = {"api_meta": {"version": 2}, **dataset_json_without_version}
    d = LegacyDataset(dataset_json=dataset_json)
    assert d.api_version == 2
    assert d.title == {"en": "Hello"}

    # Default API version 1 if not in json
    d = LegacyDataset(dataset_json=dataset_json_without_version)
    assert d.api_version == 1
    assert d.title == {"en": "Hello"}

    # Respect API version from kwargs
    d = LegacyDataset(dataset_json=dataset_json, api_version=712)
    assert d.api_version == 712
    assert d.title == {"en": "Hello"}

    # Respect API version from args
    opts = LegacyDataset._meta
    args = [None] * len(opts.concrete_fields)
    args[opts.concrete_fields.index(opts.get_field("dataset_json"))] = dataset_json
    args[opts.concrete_fields.index(opts.get_field("api_version"))] = 1337
    d = LegacyDataset(*args)
    assert d.api_version == 1337
    assert d.title == {"en": "Hello"}