cas.Downloader: Allow downloading copies of a file with the same digest
Description
Currently the queue in buildgrid.client.cas.Downloader
assumes that there is a 1:1 relation between digests and paths. That presents a problem in the scenario where a same digest is to be downloaded to different locations (which could easily become an issue with the presence of empty files).
Changes proposed in this merge request:
Refactor the queue to store (digest, [output_paths])
tuples. That way a digest is fetched once and written to potentially many locations.
Also, add the tests/cas/data
contents from the mablanch/91-download-tree-test-error
branch (referred to in #146 (closed)) so that tests consider a more complex directory structure.
This merge request, when merged, will address issue/bug:
Edited by Santiago Gil