commit:     4845fbacbe1021be6de8a4ea5f8e21be9c0ac6e0
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 24 21:01:49 2021 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Feb 24 21:05:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=4845fbac

FetchIterator: pass DistfileName type as FetchTask filename

Bug: https://bugs.gentoo.org/756778
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/_emirrordist/FetchIterator.py |  3 ++-
 lib/portage/tests/ebuild/test_fetch.py    | 18 +++++++++---------
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/lib/portage/_emirrordist/FetchIterator.py 
b/lib/portage/_emirrordist/FetchIterator.py
index fe521c346..8ca6a2eac 100644
--- a/lib/portage/_emirrordist/FetchIterator.py
+++ b/lib/portage/_emirrordist/FetchIterator.py
@@ -8,6 +8,7 @@ from portage.checksum import (_apply_hash_filter,
        _filter_unaccelarated_hashes, _hash_filter)
 from portage.dep import use_reduce
 from portage.exception import PortageException, PortageKeyError
+from portage.package.ebuild.fetch import DistfileName
 from portage.util._async.AsyncTaskFuture import AsyncTaskFuture
 from portage.util._async.TaskScheduler import TaskScheduler
 from portage.util.futures.iter_completed import iter_gather
@@ -259,7 +260,7 @@ def _async_fetch_tasks(config, hash_filter, repo_config, 
digests_future, cpv,
                                cpv=cpv,
                                background=True,
                                digests=file_digests,
-                               distfile=filename,
+                               distfile=DistfileName(filename, 
digests=file_digests),
                                restrict=restrict,
                                uri_tuple=uri_tuple,
                                config=config))

diff --git a/lib/portage/tests/ebuild/test_fetch.py 
b/lib/portage/tests/ebuild/test_fetch.py
index c195888cc..d50a4cbfc 100644
--- a/lib/portage/tests/ebuild/test_fetch.py
+++ b/lib/portage/tests/ebuild/test_fetch.py
@@ -92,7 +92,7 @@ class EbuildFetchTestCase(TestCase):
                loop,
                scheme,
                host,
-               distfiles,
+               orig_distfiles,
                ebuilds,
                content,
                server,
@@ -153,12 +153,13 @@ class EbuildFetchTestCase(TestCase):
                                
mirror_conf.read_from_file(io.StringIO(layout_data))
                                layouts = mirror_conf.get_all_layouts()
                                content["/distfiles/layout.conf"] = 
layout_data.encode("utf8")
-
-                               for k, v in distfiles.items():
+                               distfiles = {}
+                               for k, v in orig_distfiles.items():
                                        filename = DistfileName(
                                                k,
                                                digests=dict((algo, 
checksum_str(v, hashname=algo)) for algo in MANIFEST2_HASH_DEFAULTS),
                                        )
+                                       distfiles[filename] = v
 
                                        # mirror path
                                        for layout in layouts:
@@ -166,11 +167,10 @@ class EbuildFetchTestCase(TestCase):
                                        # upstream path
                                        content["/distfiles/{}.txt".format(k)] 
= v
 
-                               for filename in os.listdir(settings["DISTDIR"]):
-                                       try:
-                                               
os.unlink(os.path.join(settings["DISTDIR"], filename))
-                                       except OSError:
-                                               pass
+                               shutil.rmtree(settings["DISTDIR"])
+                               os.makedirs(settings["DISTDIR"])
+                               with open(os.path.join(settings['DISTDIR'], 
'layout.conf'), 'wt') as f:
+                                       f.write(layout_data)
 
                                # Demonstrate that fetch preserves a stale file 
in DISTDIR when no digests are given.
                                foo_uri = {'foo': 
('{scheme}://{host}:{port}/distfiles/foo'.format(scheme=scheme, host=host, 
port=server.server_port),)}
@@ -250,7 +250,7 @@ class EbuildFetchTestCase(TestCase):
                                
self.assertEqual(loop.run_until_complete(proc.wait()), 0)
 
                                for k in distfiles:
-                                       with 
open(os.path.join(settings['DISTDIR'], k), 'rb') as f:
+                                       with 
open(os.path.join(settings['DISTDIR'], layouts[0].get_path(k)), 'rb') as f:
                                                self.assertEqual(f.read(), 
distfiles[k])
 
                                # Tests only work with one ebuild at a time, so 
the config

Reply via email to