def test_dict_metadata_works(): name = "simple" version = "0.1.0" require_a = "a==1.0" require_b = "b==1.1; extra == 'also_b'" requires = [require_a, require_b, "c==1.2; extra == 'also_c'"] extras = ["also_b", "also_c"] requires_python = ">=3" metadata = Message() metadata["Name"] = name metadata["Version"] = version for require in requires: metadata["Requires-Dist"] = require for extra in extras: metadata["Provides-Extra"] = extra metadata["Requires-Python"] = requires_python inner_metadata = DictMetadata({ "METADATA": ensure_binary(metadata.as_string()) }) dist = DistInfoDistribution( location="<in-memory>", metadata=inner_metadata, project_name=name ) assert name == dist.project_name assert version == dist.version assert set(extras) == set(dist.extras) assert [Requirement.parse(require_a)] == dist.requires([]) assert [ Requirement.parse(require_a), Requirement.parse(require_b) ] == dist.requires(["also_b"]) assert metadata.as_string() == get_metadata(dist).as_string() assert requires_python == get_requires_python(dist)
def metadata(self): # type: () -> Any if not hasattr(self, '_metadata'): self._metadata = get_metadata(self.get_dist()) return self._metadata
def metadata(self): if not hasattr(self, '_metadata'): self._metadata = get_metadata(self.get_dist()) return self._metadata
def metadata(self) -> email.message.Message: return get_metadata(self._dist)
def metadata(self) -> Any: if not hasattr(self, "_metadata"): self._metadata = get_metadata(self.get_dist()) return self._metadata