def test_builder_simple_with_multi_meta_field(): manifest = build( BASE_MANIFEST, authors("some", "guy"), license("MIT"), description("description"), keywords("awesome", "package"), links(website="www", repository="github"), validate(), ) expected = assoc( BASE_MANIFEST, "meta", { "license": "MIT", "authors": ["some", "guy"], "description": "description", "keywords": ["awesome", "package"], "links": { "website": "www", "repository": "github" }, }, ) assert manifest == expected
def gen_links() -> Optional[Callable[..., Manifest]]: flag = parse_bool_flag( "Would you like to add links to the documentation, " "repo, or website in your package?" ) if flag: documentation = input( "Enter a link for your documentation (leave blank to skip): " ) repo = input("Enter a link for your repository (leave blank to skip): ") website = input("Enter a link for your website (leave blank to skip): ") link_kwargs = {"documentation": documentation, "repo": repo, "website": website} actual_kwargs = {k: v for k, v in link_kwargs.items() if v} return b.links(**actual_kwargs) return None
def amend_links(manifest: Manifest) -> Optional[Callable[..., Manifest]]: try: links = manifest["meta"]["links"] except KeyError: flag = parse_bool_flag("No links found, would you like to add any?") else: flag = parse_bool_flag(f"Links found ({links}). Would you like to change them?") if flag: documentation = input( "Enter a new link for your documentation (leave blank to skip): " ) repo = input("Enter a new link for your repository (leave blank to skip): ") website = input("Enter a new link for your website (leave blank to skip): ") link_kwargs = {"documentation": documentation, "repo": repo, "website": website} actual_kwargs = {k: v for k, v in link_kwargs.items() if v} return b.links(**actual_kwargs) return None
def test_builder_with_init_manifest(owned_package, dummy_ipfs_backend): root, expected_manifest, compiler_output = owned_package ipfs_backend = get_ipfs_backend() manifest = build( init_manifest(package_name="owned", version="1.0.0"), authors("Piper Merriam <*****@*****.**>"), description( "Reusable contracts which implement a privileged 'owner' model for authorization." ), keywords("authorization"), license("MIT"), links(documentation= "ipfs://QmUYcVzTfSwJoigggMxeo2g5STWAgJdisQsqcXHws7b1FW"), pin_source("Owned", compiler_output, ipfs_backend, root), validate(), ) assert manifest == expected_manifest
"fn,value", ( (authors("some", "guy"), { "authors": ["some", "guy"] }), (license("MIT"), { "license": "MIT" }), (description("This is a package."), { "description": "This is a package." }), (keywords("awesome", "package"), { "keywords": ["awesome", "package"] }), ( links(documentation="ipfs..", website="www"), { "links": { "documentation": "ipfs..", "website": "www" } }, ), ), ) def test_builder_with_simple_meta_fields(fn, value): manifest = build(BASE_MANIFEST, fn, validate()) expected = assoc(BASE_MANIFEST, "meta", value) assert manifest == expected