diff --git a/tests/definitions_test.py b/tests/definitions_test.py index 51d26e6a54..cbbb6e4928 100644 --- a/tests/definitions_test.py +++ b/tests/definitions_test.py @@ -14,7 +14,7 @@ from referencing import Registry, Resource from jsonschema import Draft202012Validator from jsonschema.exceptions import ValidationError -from git import Repo +from git import Git, Repo def _get_definition_files(): """ @@ -136,11 +136,20 @@ def test_environment(): KNOWN_MODULES = pickle_operations.read_pickle_data(f'{ROOT_DIR}/tests/known-modules.pickle') KNOWN_RACKS = pickle_operations.read_pickle_data(f'{ROOT_DIR}/tests/known-racks.pickle') else: - temp_dir = tempfile.TemporaryDirectory() - repo = Repo.clone_from(url=NETBOX_DT_LIBRARY_URL, to_path=temp_dir.name) - KNOWN_SLUGS = pickle_operations.read_pickle_data(f'{temp_dir.name}/tests/known-slugs.pickle') - KNOWN_MODULES = pickle_operations.read_pickle_data(f'{temp_dir.name}/tests/known-modules.pickle') - KNOWN_RACKS = pickle_operations.read_pickle_data(f'{ROOT_DIR}/tests/known-racks.pickle') + clone_kwargs = { + 'depth': 1, + 'no-checkout': True, + } + if Git().version_info >= (2, 18): + # partial clone + clone_kwargs['filter'] = 'blob:none' + with tempfile.TemporaryDirectory() as temp_dir, \ + Repo.clone_from(url=NETBOX_DT_LIBRARY_URL, to_path=temp_dir, **clone_kwargs) as repo \ + : + repo.git.checkout('HEAD', 'tests/*.pickle') + KNOWN_SLUGS = pickle_operations.read_pickle_data(f'{repo.working_dir}/tests/known-slugs.pickle') + KNOWN_MODULES = pickle_operations.read_pickle_data(f'{repo.working_dir}/tests/known-modules.pickle') + KNOWN_RACKS = pickle_operations.read_pickle_data(f'{repo.working_dir}/tests/known-racks.pickle') SCHEMA_REGISTRY = _generate_schema_registry()