| # Copyright 2020 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Tests for dependency_lib.""" |
| |
| import os |
| |
| from chromite.lib import dependency_lib |
| from chromite.lib import osutils |
| |
| |
| def test_parse_ebuild_cache_entry_md5_cache(tmp_path): |
| """Verify parsing eclasses from md5 cache style files.""" |
| expected = [ |
| ('eclass1', 'abc123'), |
| ('eclass2', '123abc'), |
| ('eclass3', 'def789'), |
| ] |
| eclass_str = '\t'.join('\t'.join(x) for x in expected) |
| contents = f""" |
| KEYWORDS=* |
| LICENSE=license |
| PROPERTIES=live |
| RDEPEND=>=foo/bar-0.0.1:= foo/baz:= |
| SLOT=0/0 |
| _eclasses_={eclass_str} |
| _md5=123456 |
| """ |
| |
| cache_file = os.path.join(tmp_path, 'cache_file') |
| osutils.WriteFile(cache_file, contents) |
| |
| # pylint: disable=protected-access |
| result = dependency_lib._parse_ebuild_cache_entry(cache_file) |
| |
| assert set(expected) == set(result) |
| |
| |
| def test_parse_ebuild_cache_entry_edb_cache(tmp_path): |
| """Verify parsing eclasses from edb cache style files.""" |
| expected = [ |
| ('eclass1', 'abc123'), |
| ('eclass2', '123abc'), |
| ('eclass3', 'def789'), |
| ] |
| eclass_str = '\t'.join('\t'.join((c, '/some/path', d)) for (c, d) in expected) |
| contents = f""" |
| KEYWORDS=* |
| LICENSE=license |
| PROPERTIES=live |
| RDEPEND=>=foo/bar-0.0.1:= foo/baz:= |
| SLOT=0/0 |
| _eclasses_={eclass_str} |
| _md5=123456 |
| """ |
| |
| cache_file = os.path.join(tmp_path, 'cache_file') |
| osutils.WriteFile(cache_file, contents) |
| |
| # pylint: disable=protected-access |
| result = dependency_lib._parse_ebuild_cache_entry(cache_file) |
| |
| assert set(expected) == set(result) |