def test_get_deps_disallowed_file_dep(mock_convert_hosted): package_json = {} yarn_lock = { "subpackage@file:./subpath": {"version": "1.0.0"}, } allowlist = set() err_msg = "The dependency ./subpath is hosted in an unsupported location" mock_convert_hosted.side_effect = [CachitoError(err_msg)] with pytest.raises(CachitoError, match=err_msg): yarn._get_deps(package_json, yarn_lock, allowlist)
def test_get_deps( mock_convert_hosted, yarn_lock, allowlist, expected_deps, expected_replaced, expected_convert_calls, ): def mock_nexus_replacement_getitem(key): assert key == "version" return MOCK_NEXUS_VERSION mock_convert_hosted.return_value.__getitem__.side_effect = mock_nexus_replacement_getitem deps, replacements = yarn._get_deps(yarn_lock, allowlist) assert deps == expected_deps for dep_identifier in expected_replaced: assert dep_identifier in replacements assert replacements[dep_identifier] == mock_convert_hosted.return_value assert len(replacements) == len(expected_replaced) mock_convert_hosted.assert_has_calls( [mock.call(*call) for call in expected_convert_calls], # we are also mocking out a __getitem__ call which messes with the order any_order=True, )