commit:     4331274f2faca6052f771eb2c4840afd25efa58c
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 19 05:25:27 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Oct 19 05:27:20 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=4331274f

testEbuildFetch: test emirrordist invocation

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/tests/ebuild/test_fetch.py | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/lib/portage/tests/ebuild/test_fetch.py 
b/lib/portage/tests/ebuild/test_fetch.py
index c0a76b701..da63d9dea 100644
--- a/lib/portage/tests/ebuild/test_fetch.py
+++ b/lib/portage/tests/ebuild/test_fetch.py
@@ -9,11 +9,12 @@ import tempfile
 
 import portage
 from portage import shutil, os
-from portage.const import BASH_BINARY
+from portage.const import BASH_BINARY, PORTAGE_PYM_PATH
 from portage.tests import TestCase
 from portage.tests.resolver.ResolverPlayground import ResolverPlayground
 from portage.tests.util.test_socks5 import AsyncHTTPServer
 from portage.util.configparser import ConfigParserError
+from portage.util.futures import asyncio
 from portage.util.futures.executor.fork import ForkExecutor
 from portage.util._async.SchedulerInterface import SchedulerInterface
 from portage.util._eventloop.global_event_loop import global_event_loop
@@ -98,6 +99,27 @@ class EbuildFetchTestCase(TestCase):
                                portdb = root_config.trees["porttree"].dbapi
                                settings = config(clone=playground.settings)
 
+                               emirrordist_cmd = (portage._python_interpreter, 
'-b', '-Wd',
+                                       os.path.join(self.bindir, 
'emirrordist'),
+                                       '--distfiles', settings['DISTDIR'],
+                                       '--config-root', settings['EPREFIX'],
+                                       '--repositories-configuration', 
settings.repositories.config_string(),
+                                       '--repo', 'test_repo', '--mirror')
+
+                               env = os.environ.copy()
+                               env['PYTHONPATH'] = ':'.join(
+                                       filter(None, [PORTAGE_PYM_PATH] + 
os.environ.get('PYTHONPATH', '').split(':')))
+
+                               for k in distfiles:
+                                       
os.unlink(os.path.join(settings['DISTDIR'], k))
+
+                               proc = 
loop.run_until_complete(asyncio.create_subprocess_exec(*emirrordist_cmd, 
env=env))
+                               
self.assertEqual(loop.run_until_complete(proc.wait()), 0)
+
+                               for k in distfiles:
+                                       with 
open(os.path.join(settings['DISTDIR'], k), 'rb') as f:
+                                               self.assertEqual(f.read(), 
distfiles[k])
+
                                # Tests only work with one ebuild at a time, so 
the config
                                # pool only needs a single config instance.
                                class config_pool:

Reply via email to