#!/usr/bin/env python3"""Tests for the site module."""## (C) Pywikibot team, 2015-2023## Distributed under the terms of the MIT license.#from__future__importannotationsimportunittestfromcontextlibimportsuppressfromhttpimportHTTPStatusimportpywikibotfrompywikibot.commsimporthttpfrompywikibot.toolsimportsuppress_warningsfromtestsimportWARN_SITE_CODEfromtests.aspectsimportDefaultSiteTestCase
[docs]classTestObsoleteSite(DefaultSiteTestCase):"""Test 'closed' and obsolete code sites."""
[docs]deftest_locked_site(self):"""Test Wikimedia closed/locked site."""withsuppress_warnings('Interwiki removal mh is in wikipedia codes'):site=pywikibot.Site('mh','wikipedia')self.assertIsInstance(site,pywikibot.site.ClosedSite)self.assertEqual(site.code,'mh')self.assertIsInstance(site.obsolete,bool)self.assertTrue(site.obsolete)self.assertEqual(site.hostname(),'mh.wikipedia.org')r=http.fetch('http://mh.wikipedia.org/w/api.php',default_error_handling=False)self.assertEqual(r.status_code,HTTPStatus.OK.value)self.assertEqual(site.siteinfo['lang'],'mh')self.assertTrue(site.is_uploaddisabled())
# See also http_tests, which tests that ru-sib.wikipedia.org is offline
[docs]deftest_alias_code_site(self):"""Test Wikimedia site with an alias code."""withsuppress_warnings(WARN_SITE_CODE,category=UserWarning):site=pywikibot.Site('jp','wikipedia')self.assertIsInstance(site.obsolete,bool)self.assertEqual(site.code,'ja')self.assertFalse(site.obsolete)self.assertEqual(site.hostname(),'ja.wikipedia.org')self.assertEqual(site.ssl_hostname(),'ja.wikipedia.org')