diff --git a/test/integration_test.py b/test/integration_test.py index b1b25a089..c34ca797c 100644 --- a/test/integration_test.py +++ b/test/integration_test.py @@ -1572,6 +1572,29 @@ def test_compact_manifest(expected_bundles): # Without credentials, only the public bundle should be represented test_compact_manifest({public_bundle}) + def dump_verbatim_manifest(bundles: Iterable[str]) -> set[str]: + manifest_url = furl(url=endpoint, path='/manifest/files', args={ + 'catalog': catalog, + 'format': ManifestFormat.verbatim_jsonl.value, + 'filters': json.dumps({special_fields.bundle_uuid: {'is': list(bundles)}}) + }) + manifest_lines = BytesIO(self._get_url_content(PUT, manifest_url)).readlines() + manifest_content = { + json.dumps(json.loads(replica), sort_keys=True) + for replica in manifest_lines + } + self.assertEqual(len(manifest_lines), len(manifest_content)) + return manifest_content + + for manifest_format in ManifestFormat.verbatim_jsonl, ManifestFormat.verbatim_pfb: + if manifest_format in metadata_plugin.manifest_formats: + with self.subTest(format=manifest_format): + unauthorized = dump_verbatim_manifest(all_bundles) + with self._service_account_credentials: + authorized = dump_verbatim_manifest(all_bundles) + private_only = dump_verbatim_manifest(managed_access_bundles) + self.assertSetEqual(private_only, authorized - unauthorized) + if ManifestFormat.curl in metadata_plugin.manifest_formats: # Create a single-file curl manifest and verify that the OAuth2 # token is present on the command line