def METHOD_NAME(self):
    with open("testdata/body_to_ags.json") as fp:
        expected = json.load(fp)
    actual = {}
    with responses.RequestsMock() as requests_mock:
        # Prerecorded responses from wikidata
        with open("testdata/wikidata_sparql_responses.json") as fp:
            saved_responses = json.load(fp)
        for saved_response in saved_responses:
            requests_mock.add(
                requests_mock.GET,
                "https://query.wikidata.org/sparql?"
                + urlencode(saved_response["params"]),
                json=saved_response["response"],
            )
        cli = Cli()
        for file in sorted(os.listdir("testdata/bodies")):
            with open(os.path.join("testdata/bodies", file)) as fp:
                data = json.load(fp)
            with open(os.path.join("testdata/systems", file)) as fp:
                system = json.load(fp)
            body = Body()
            body.ags = data.get("ags")
            body.name = data["name"]
            body.short_name = data.get("shortName") or data["name"]
            body.short_name = Utils().normalize_body_name(body.short_name)
            if body.ags:
                if len(body.ags) == 7:
                    body.ags = "0" + body.ags
            else:
                ags, match_name = cli.get_ags(body, system, data["id"])
                body.ags = ags
                # Sometimes there's a bad short name (e.g. "Rat" for Erkelenz),
                # so we use the name that's in wikidata instead
                body.short_name = match_name
            actual[file] = {"ags": body.ags, "short_name": body.short_name}
        self.assertEqual(expected, actual)