summaryrefslogtreecommitdiff
path: root/tests/test_profile.py
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-09-05 11:50:57 +0200
committerMichał Górny <mgorny@gentoo.org>2020-09-05 11:50:57 +0200
commit473fa5444186143f58dffbf1d14982a8905b1fc8 (patch)
tree67c1f90c1337a45cf15095c17116d425a52cd834 /tests/test_profile.py
parent0e383db89283610b10f4651ec0a9f9727b9da748 (diff)
downloadgemato-473fa5444186143f58dffbf1d14982a8905b1fc8.tar.gz
Fix wrongly determining uncompressed size
Flush the file after writing to ensure that .buffer.tell() gives non-zero value. This fixes a number of cases of Manifests not being compressed. It also pointed out a major mistake in profile tests. Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'tests/test_profile.py')
-rw-r--r--tests/test_profile.py83
1 files changed, 17 insertions, 66 deletions
diff --git a/tests/test_profile.py b/tests/test_profile.py
index 0c17049..1d15561 100644
--- a/tests/test_profile.py
+++ b/tests/test_profile.py
@@ -40,7 +40,7 @@ DIRS = [
'profiles/updates',
]
PACKAGE_MANIFESTS = ['dev-foo/bar/Manifest']
-EXPECTED_MANIFESTS = PACKAGE_MANIFESTS + [
+EXPECTED_MANIFESTS = [
'dev-foo/Manifest',
'eclass/Manifest',
'licenses/Manifest',
@@ -126,6 +126,11 @@ EXPECTED_TYPES[BackwardsCompatEbuildRepositoryProfile].update({
'dev-foo/bar/files/test.patch': 'AUX',
})
+PKG_MANIFEST_SUFFIX = {
+ EbuildRepositoryProfile: '.gz',
+ BackwardsCompatEbuildRepositoryProfile: '',
+}
+
ALL_PROFILES = [
EbuildRepositoryProfile,
BackwardsCompatEbuildRepositoryProfile,
@@ -188,7 +193,7 @@ def test_update_entries_for_directory(test_repo, profile):
[(path, make_expect_match(path, entry_type))
for path, entry_type in EXPECTED_TYPES[profile].items()] +
[(path, make_expect_match(path, 'MANIFEST', manifests_exist=False))
- for path in EXPECTED_MANIFESTS] +
+ for path in EXPECTED_MANIFESTS + PACKAGE_MANIFESTS] +
[(path, make_expect_match(path, 'IGNORE'))
for path in EXPECTED_IGNORE])
found = dict((path, make_entry_match(m, path))
@@ -197,8 +202,12 @@ def test_update_entries_for_directory(test_repo, profile):
m.save_manifests()
manifests_expected = dict(
- (path, make_expect_match(path, 'MANIFEST'))
- for path in EXPECTED_MANIFESTS)
+ itertools.chain(
+ ((path + '.gz', make_expect_match(path, 'MANIFEST'))
+ for path in EXPECTED_MANIFESTS),
+ ((path + PKG_MANIFEST_SUFFIX[profile],
+ make_expect_match(path, 'MANIFEST'))
+ for path in PACKAGE_MANIFESTS)))
manifests_found = dict((path, make_entry_match(m, path))
for path in manifests_expected)
assert manifests_found == manifests_expected
@@ -216,8 +225,11 @@ def test_cli_update(test_repo, profile):
expected = dict(
[(path, make_expect_match(path, entry_type))
for path, entry_type in EXPECTED_TYPES[profile].items()] +
- [(path, make_expect_match(path, 'MANIFEST'))
+ [(path + '.gz', make_expect_match(path, 'MANIFEST'))
for path in EXPECTED_MANIFESTS] +
+ [(path + PKG_MANIFEST_SUFFIX[profile],
+ make_expect_match(path, 'MANIFEST'))
+ for path in PACKAGE_MANIFESTS] +
[(path, make_expect_match(path, 'IGNORE'))
for path in EXPECTED_IGNORE])
found = dict((path, make_entry_match(m, path))
@@ -257,64 +269,3 @@ def test_regression_top_level_ignore_in_all_manifests(test_repo, profile):
found = dict((path, make_entry_match(m, path))
for path in expected)
assert found == expected
-
-
-def test_no_compress_compat(test_repo):
- """Verify that package directory Manifests are not compressed"""
- profile = BackwardsCompatEbuildRepositoryProfile
-
- m = ManifestRecursiveLoader(
- test_repo / 'Manifest',
- hashes=['SHA256', 'SHA512'],
- compress_watermark=0,
- allow_create=True,
- profile=profile())
- m.update_entries_for_directory('')
- m.save_manifests()
-
- expected = dict(
- itertools.chain.from_iterable(
- [(path, None),
- (path + '.gz', make_expect_match(path, 'MANIFEST')),
- ]
- for path in EXPECTED_MANIFESTS
- if path not in PACKAGE_MANIFESTS))
- expected.update(
- itertools.chain.from_iterable(
- [(path, make_expect_match(path, 'MANIFEST')),
- (path + '.gz', None),
- ]
- for path in EXPECTED_MANIFESTS
- if path in PACKAGE_MANIFESTS))
- found = dict((path, make_entry_match(m, path))
- for path in expected)
- assert found == expected
-
-
-def test_no_compress_compat_cli(test_repo):
- """Verify that package directory Manifests are not compressed (CLI)"""
- profile = BackwardsCompatEbuildRepositoryProfile
-
- assert gemato.cli.main(['gemato', 'create',
- '--profile', profile.name,
- '--compress-watermark=0',
- str(test_repo)]) == 0
-
- m = ManifestRecursiveLoader(test_repo / 'Manifest')
- expected = dict(
- itertools.chain.from_iterable(
- [(path, None),
- (path + '.gz', make_expect_match(path, 'MANIFEST')),
- ]
- for path in EXPECTED_MANIFESTS
- if path not in PACKAGE_MANIFESTS))
- expected.update(
- itertools.chain.from_iterable(
- [(path, make_expect_match(path, 'MANIFEST')),
- (path + '.gz', None),
- ]
- for path in EXPECTED_MANIFESTS
- if path in PACKAGE_MANIFESTS))
- found = dict((path, make_entry_match(m, path))
- for path in expected)
- assert found == expected