Skip to content

Commit

Permalink
Respect TMPDIR instead of hardcoding /tmp in test_bintree.py
Browse files Browse the repository at this point in the history
It was breaking the Portage sandbox.

Signed-off-by: James Le Cuirot <chewi@gentoo.org>
  • Loading branch information
chewi committed Aug 1, 2023
1 parent 7d18836 commit ff8374f
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions lib/portage/tests/dbapi/test_bintree.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,18 @@ def test_required_init_params(self):
binarytree()
self.assertEqual(str(cm.exception), "pkgdir parameter is required")
with self.assertRaises(TypeError) as cm:
binarytree(pkgdir="/tmp")
binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"))
self.assertEqual(str(cm.exception), "settings parameter is required")

def test_init_with_legacy_params_warns(self):
with self.assertWarns(DeprecationWarning):
binarytree(_unused=None, pkgdir="/tmp", settings=MagicMock())
binarytree(
_unused=None, pkgdir=os.getenv("TMPDIR", "/tmp"), settings=MagicMock()
)
with self.assertWarns(DeprecationWarning):
binarytree(virtual=None, pkgdir="/tmp", settings=MagicMock())
binarytree(
virtual=None, pkgdir=os.getenv("TMPDIR", "/tmp"), settings=MagicMock()
)

def test_instance_has_required_attrs(self):
# Quite smoky test. What would it be a better testing strategy?
Expand Down Expand Up @@ -63,11 +67,13 @@ def test_instance_has_required_attrs(self):
no_multi_instance_settings = MagicMock()
no_multi_instance_settings.features = ""
no_multi_instance_bt = binarytree(
pkgdir="/tmp", settings=no_multi_instance_settings
pkgdir=os.getenv("TMPDIR", "/tmp"), settings=no_multi_instance_settings
)
multi_instance_settings = MagicMock()
multi_instance_settings.features = "binpkg-multi-instance"
multi_instance_bt = binarytree(pkgdir="/tmp", settings=multi_instance_settings)
multi_instance_bt = binarytree(
pkgdir=os.getenv("TMPDIR", "/tmp"), settings=multi_instance_settings
)
for attr in required_attrs_no_multi_instance:
getattr(no_multi_instance_bt, attr)
getattr(multi_instance_bt, attr)
Expand All @@ -77,7 +83,7 @@ def test_instance_has_required_attrs(self):

@patch("portage.dbapi.bintree.binarytree._populate_local")
def test_populate_without_updates_repos_nor_getbinspkgs(self, ppopulate_local):
bt = binarytree(pkgdir="/tmp", settings=MagicMock())
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=MagicMock())
ppopulate_local.return_value = {}
bt.populate()
ppopulate_local.assert_called_once_with(reindex=True)
Expand All @@ -86,7 +92,7 @@ def test_populate_without_updates_repos_nor_getbinspkgs(self, ppopulate_local):

@patch("portage.dbapi.bintree.binarytree._populate_local")
def test_populate_calls_twice_populate_local_if_updates(self, ppopulate_local):
bt = binarytree(pkgdir="/tmp", settings=MagicMock())
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=MagicMock())
bt.populate()
self.assertIn(call(reindex=True), ppopulate_local.mock_calls)
self.assertIn(call(), ppopulate_local.mock_calls)
Expand All @@ -96,7 +102,7 @@ def test_populate_calls_twice_populate_local_if_updates(self, ppopulate_local):
@patch("portage.dbapi.bintree.binarytree._populate_local")
def test_populate_with_repos(self, ppopulate_local, ppopulate_additional):
repos = ("one", "two")
bt = binarytree(pkgdir="/tmp", settings=MagicMock())
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=MagicMock())
bt.populate(add_repos=repos)
ppopulate_additional.assert_called_once_with(repos)

Expand All @@ -109,7 +115,7 @@ def test_populate_with_getbinpkgs(
refresh = "something"
settings = MagicMock()
settings.__getitem__.return_value = "/some/path"
bt = binarytree(pkgdir="/tmp", settings=settings)
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=settings)
bt.populate(getbinpkgs=True, getbinpkg_refresh=refresh)
ppopulate_remote.assert_called_once_with(getbinpkg_refresh=refresh)

Expand All @@ -126,7 +132,7 @@ def test_populate_with_getbinpkgs_and_not_BinRepoConfigLoader(
settings.__getitem__.return_value = portage_root
pBinRepoConfigLoader.return_value = None
conf_file = os.path.join(portage_root, BINREPOS_CONF_FILE)
bt = binarytree(pkgdir="/tmp", settings=settings)
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=settings)
bt.populate(getbinpkgs=True, getbinpkg_refresh=refresh)
ppopulate_remote.assert_not_called()
pwritemsg.assert_called_once_with(
Expand All @@ -150,6 +156,6 @@ def test_default_getbinpkg_refresh_in_populate(
"""
settings = MagicMock()
settings.__getitem__.return_value = "/some/path"
bt = binarytree(pkgdir="/tmp", settings=settings)
bt = binarytree(pkgdir=os.getenv("TMPDIR", "/tmp"), settings=settings)
bt.populate(getbinpkgs=True)
ppopulate_remote.assert_called_once_with(getbinpkg_refresh=False)

0 comments on commit ff8374f

Please sign in to comment.