binman: Move the tools directory into the Bintool class

We want to be able to change this directory. Use a class member to hold
the value, since changing a constant is not good.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2023-02-22 12:14:47 -07:00
parent fbb0e48032
commit 00f674db2d
2 changed files with 6 additions and 5 deletions

View file

@ -43,8 +43,6 @@ FETCH_NAMES = {
# Status of tool fetching
FETCHED, FAIL, PRESENT, STATUS_COUNT = range(4)
DOWNLOAD_DESTDIR = os.path.expanduser('~/bin')
class Bintool:
"""Tool which operates on binaries to help produce entry contents
@ -53,6 +51,9 @@ class Bintool:
# List of bintools to regard as missing
missing_list = []
# Directory to store tools
tooldir = os.path.join(os.getenv('HOME'), 'bin')
def __init__(self, name, desc, version_regex=None, version_args='-V'):
self.name = name
self.desc = desc
@ -208,7 +209,7 @@ class Bintool:
return FAIL
if result is not True:
fname, tmpdir = result
dest = os.path.join(DOWNLOAD_DESTDIR, self.name)
dest = os.path.join(self.tooldir, self.name)
print(f"- writing to '{dest}'")
shutil.move(fname, dest)
if tmpdir:

View file

@ -139,7 +139,7 @@ class TestBintool(unittest.TestCase):
dest_fname = os.path.join(destdir, '_testing')
self.seq = 0
with unittest.mock.patch.object(bintool, 'DOWNLOAD_DESTDIR', destdir):
with unittest.mock.patch.object(bintool.Bintool, 'tooldir', destdir):
with unittest.mock.patch.object(tools, 'download',
side_effect=handle_download):
with test_util.capture_sys_output() as (stdout, _):
@ -250,7 +250,7 @@ class TestBintool(unittest.TestCase):
btest = Bintool.create('_testing')
col = terminal.Color()
self.fname = None
with unittest.mock.patch.object(bintool, 'DOWNLOAD_DESTDIR',
with unittest.mock.patch.object(bintool.Bintool, 'tooldir',
self._indir):
with unittest.mock.patch.object(tools, 'run', side_effect=fake_run):
with test_util.capture_sys_output() as (stdout, _):