Page MenuHomeSoftware Heritage
Paste P989

class overload wat
ActivePublic

Authored by vlorentz on Mar 25 2021, 5:11 PM.
def test_load_get_known_extids() -> None:
"""Checks PackageLoader.load() fetches known extids efficiently"""
storage = Mock(wraps=get_storage("memory"))
class StubPackageInfo(BasePackageInfo):
pass
def MyPackageLoader(PackageLoader):
def get_versions(self):
return ["v1.0", "v2.0", "v3.0"]
def get_package_info(self, version):
p_info = StubPackageInfo("http://example.org/")
extid_type = "extid-type1" if version in ("v1.0", "v2.0") else "extid-type2"
# Versions 1.0 and 2.0 have an extid of a given type, v3.0 has an extid
# of a different type
patch(
p_info,
"extid",
autospec=True,
return_value=(extid_type, f"extid-of-{version}".encode()),
)
return p_info
loader = PackageLoader(storage, "http://example.org") # passes
loader = MyPackageLoader(storage, "http://example.org") # TypeError: MyPackageLoader() takes 1 positional argument but 2 were given