You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cvat/tests/python/rest_api/test_check_objects_integrit...

33 lines
1.2 KiB
Python

# Copyright (C) 2021-2022 Intel Corporation
# Copyright (C) 2022 CVAT.ai Corporation
#
# SPDX-License-Identifier: MIT
import os.path as osp
import glob
import json
from deepdiff import DeepDiff
from shared.utils import config
import pytest
@pytest.mark.usefixtures('dontchangedb')
class TestGetResources:
@pytest.mark.parametrize('path', glob.glob(osp.join(config.ASSETS_DIR, '*.json')))
def test_check_objects_integrity(self, path):
with open(path) as f:
endpoint = osp.basename(path).rsplit('.')[0]
if endpoint == 'annotations':
objects = json.load(f)
for jid, annotations in objects['job'].items():
response = config.get_method('admin1', f'jobs/{jid}/annotations').json()
assert DeepDiff(annotations, response, ignore_order=True,
exclude_paths="root['version']") == {}
else:
response = config.get_method('admin1', endpoint, page_size='all')
json_objs = json.load(f)
resp_objs = response.json()
assert DeepDiff(json_objs, resp_objs, ignore_order=True,
exclude_regex_paths=r"root\['results'\]\[\d+\]\['last_login'\]") == {}