def test_to_json(mock_top_level_purl, app, package, subpath): request = Request() cm = ContentManifest(request) image_contents = [] if package: pkg = Package.from_json(package) request_package = RequestPackage(package=pkg, subpath=subpath) request.request_packages.append(request_package) content = { "purl": mock_top_level_purl.return_value, "dependencies": [], "sources": [], } image_contents.append(content) expected = { "metadata": { "icm_version": 1, "icm_spec": ContentManifest.json_schema_url, "image_layer_index": -1, }, "image_contents": image_contents, } assert cm.to_json() == expected if package: mock_top_level_purl.assert_called_once_with(request, subpath=subpath)
def test_to_json_with_multiple_packages(mock_generate_icm, app, packages): request = Request() cm = ContentManifest(request) image_contents = [] for package in packages: pkg = Package.from_json(package) request_package = RequestPackage(package=pkg) request.request_packages.append(request_package) content = {"purl": pkg.to_purl(), "dependencies": [], "sources": []} image_contents.append(content) res = cm.to_json() mock_generate_icm.assert_called_once_with(image_contents) assert res == mock_generate_icm.return_value
def test_to_json_properly_sets_internal_data(mock_set_go_sources, mock_top_level_purl, app, package, internal_attr, internal_data): # Half the unit tests "emulate to_json() behaviour" so we should probably test that behaviour request = Request() pkg = Package.from_json(package) pkg.id = 1 request_package = RequestPackage(package=pkg) request.request_packages.append(request_package) mock_top_level_purl.return_value = "mock-package-purl" cm = ContentManifest(request) cm.to_json() # Here we are only interested in the setup part of to_json() # (sidenote: we really need to refactor to_json()) assert getattr(cm, internal_attr) == internal_data