jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/491543 )
Change subject: aspects.RequireUserMixin: Skip tests if the database is locked ......................................................................
aspects.RequireUserMixin: Skip tests if the database is locked
Since the error occures during login, any test that requires user login should be skipped. Move the skip routine of TestPageUserAction.setUpClass into RequireUserMixin.
Bug: T216529 Change-Id: I35c3f345d67eea3c760af01dae29a3f850c96434 --- M tests/aspects.py M tests/page_tests.py 2 files changed, 13 insertions(+), 19 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/tests/aspects.py b/tests/aspects.py index 662c44f..f0045e6 100644 --- a/tests/aspects.py +++ b/tests/aspects.py @@ -627,23 +627,29 @@
sysop = hasattr(cls, 'sysop') and cls.sysop
- for site in cls.sites.values(): - cls.require_site_user(site['family'], site['code'], sysop) + for site_dict in cls.sites.values(): + cls.require_site_user( + site_dict['family'], site_dict['code'], sysop)
if hasattr(cls, 'oauth') and cls.oauth: continue
+ site = site_dict['site'] + + if site.siteinfo['readonly']: + raise unittest.SkipTest( + 'Site {} has readonly state: {}'.format( + site, site.siteinfo.get('readonlyreason', ''))) + try: - site['site'].login(sysop) + site.login(sysop) except NoUsername: pass
- if not site['site'].user(): + if not site.user(): raise unittest.SkipTest( '{}: Not able to login to {} as {}' - .format(cls.__name__, - 'sysop' if sysop else 'bot', - site['site'])) + .format(cls.__name__, 'sysop' if sysop else 'bot', site))
def setUp(self): """ diff --git a/tests/page_tests.py b/tests/page_tests.py index ab7fd24..0dbd553 100644 --- a/tests/page_tests.py +++ b/tests/page_tests.py @@ -972,18 +972,6 @@
user = True
- @classmethod - def setUpClass(cls): - """Set up the test class. - - Check whether the site is write protected and skip the tests then. - """ - super(TestPageUserAction, cls).setUpClass() - site = cls.get_site() - if site.siteinfo['readonly']: - raise unittest.SkipTest('Site {} has readonly state: {}'.format( - site, site.siteinfo.get('readonlyreason', ''))) - def test_purge(self): """Test purging the mainpage.""" mainpage = self.get_mainpage()
pywikibot-commits@lists.wikimedia.org