def test_get_json_data_deprecated_fields():
    with open(
            os.path.join(
                "tests",
                "fixtures",
                "tenders_releases_2_releases_with_deprecated_fields.json",
            )) as fp:
        json_data_w_deprecations = json.load(fp)

    schema_obj = SchemaOCDS()
    schema_obj.schema_host = os.path.join(
        "tests", "fixtures/")  # "/" is for urljoin in lib-cove
    schema_obj.pkg_schema_name = (
        "release_package_schema_ref_release_schema_deprecated_fields.json")
    schema_obj.pkg_schema_url = os.path.join(schema_obj.schema_host,
                                             schema_obj.pkg_schema_name)
    json_data_paths = cove_common.get_json_data_generic_paths(
        json_data_w_deprecations, generic_paths={})
    deprecated_data_fields = cove_common.get_json_data_deprecated_fields(
        json_data_paths, schema_obj)
    expected_result = OrderedDict([
        (
            "initiationType",
            {
                "paths": ("releases/0", "releases/1"),
                "explanation": (
                    "1.1",
                    "Not a useful field as always has to be tender",
                ),
            },
        ),
        (
            "quantity",
            {
                "paths": ("releases/0/tender/items/0", ),
                "explanation": ("1.1", "Nobody cares about quantities"),
            },
        ),
    ])
    for field_name in expected_result.keys():
        assert field_name in deprecated_data_fields
        assert (expected_result[field_name]["paths"] ==
                deprecated_data_fields[field_name]["paths"])
        assert (expected_result[field_name]["explanation"] ==
                deprecated_data_fields[field_name]["explanation"])
def test_get_schema_deprecated_paths():
    schema_obj = SchemaOCDS()
    schema_obj.schema_host = os.path.join(
        "tests", "fixtures/")  # "/" is for urljoin in lib-cove
    schema_obj.pkg_schema_name = (
        "release_package_schema_ref_release_schema_deprecated_fields.json")
    schema_obj.pkg_schema_url = os.path.join(schema_obj.schema_host,
                                             schema_obj.pkg_schema_name)
    deprecated_paths = cove_common._get_schema_deprecated_paths(schema_obj)
    expected_results = [
        (
            ("releases", "initiationType"),
            ("1.1", "Not a useful field as always has to be tender"),
        ),
        (
            (
                "releases",
                "planning",
            ),
            ("1.1", "Testing deprecation for objects with '$ref'"),
        ),
        (("releases", "tender", "hasEnquiries"), ("1.1",
                                                  "Deprecated just for fun")),
        (
            ("releases", "contracts", "items", "quantity"),
            ("1.1", "Nobody cares about quantities"),
        ),
        (
            ("releases", "tender", "items", "quantity"),
            ("1.1", "Nobody cares about quantities"),
        ),
        (
            ("releases", "awards", "items", "quantity"),
            ("1.1", "Nobody cares about quantities"),
        ),
    ]
    assert len(deprecated_paths) == 6
    for path in expected_results:
        assert path in deprecated_paths