Exemple #1
0
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)
Exemple #2
0
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,
    )