Magul created this task.
Magul added projects: Pywikibot-core, Pywikibot-tests.

TASK DESCRIPTION
______________________ TestSiteGenerators.testLinkMethods ______________________
self = <tests.site_tests.TestSiteGenerators testMethod=testLinkMethods>
    def testLinkMethods(self):
        """Test site methods for getting links to and from a page."""
        if self.site.family.name == 'wpbeta':
            raise unittest.SkipTest('Test fails on betawiki; T69931')
        mysite = self.get_site()
        mainpage = self.get_mainpage()
        backlinks = set(mysite.pagebacklinks(mainpage, namespaces=[0]))
        # only non-redirects:
        filtered = set(mysite.pagebacklinks(mainpage, namespaces=0,
                                            filterRedirects=False))
        # only redirects:
        redirs = set(mysite.pagebacklinks(mainpage, namespaces=0,
                                          filterRedirects=True))
        # including links to redirect pages (but not the redirects):
        indirect = set(mysite.pagebacklinks(mainpage, namespaces=[0],
                                            followRedirects=True,
                                            filterRedirects=False))
        self.assertEqual(filtered & redirs, set([]))
        self.assertEqual(indirect & redirs, set([]))
        self.assertLessEqual(filtered, indirect)
        self.assertLessEqual(filtered, backlinks)
        self.assertLessEqual(redirs, backlinks)
        self.assertLessEqual(
            backlinks,
            set(self.site.pagebacklinks(mainpage, namespaces=[0, 2])))
    
        # pagereferences includes both backlinks and embeddedin
        embedded = set(mysite.page_embeddedin(mainpage, namespaces=[0]))
        refs = set(mysite.pagereferences(mainpage, namespaces=[0]))
        self.assertTrue(backlinks.issubset(refs))
        self.assertTrue(embedded.issubset(refs))
        for bl in backlinks:
            self.assertIsInstance(bl, pywikibot.Page)
            self.assertIn(bl, refs)
        for ei in embedded:
            self.assertIsInstance(ei, pywikibot.Page)
            self.assertIn(ei, refs)
        for ref in refs:
            self.assertIn(ref, backlinks | embedded)
        # test embeddedin arguments
        self.assertTrue(embedded.issuperset(
            set(mysite.page_embeddedin(mainpage, filterRedirects=True,
                                       namespaces=[0]))))
        self.assertTrue(embedded.issuperset(
            set(mysite.page_embeddedin(mainpage, filterRedirects=False,
                                       namespaces=[0]))))
        self.assertTrue(embedded.issubset(
            set(mysite.page_embeddedin(mainpage, namespaces=[0, 2]))))
        links = set(mysite.pagelinks(mainpage))
        for pl in links:
            self.assertIsInstance(pl, pywikibot.Page)
        # test links arguments
        # TODO: There have been build failures because the following assertion
        # wasn't true. Bug: T92856
        # Example: https://travis-ci.org/wikimedia/pywikibot-core/jobs/54552081#L505
        namespace_links = set(mysite.pagelinks(mainpage, namespaces=[0, 1]))
        if namespace_links - links:
            unittest_print(
                'FAILURE wrt T92856:\nSym. difference: "{0}"'.format(
                    '", "'.join(
                        '{0}@{1}'.format(link.namespace(),
                                         link.title(withNamespace=False))
                        for link in namespace_links ^ links)))
        self.assertCountEqual(
            set(mysite.pagelinks(mainpage, namespaces=[0, 1])) - links, [])
        for target in mysite.preloadpages(mysite.pagelinks(mainpage,
                                                           follow_redirects=True,
                                                           total=5)):
            self.assertIsInstance(target, pywikibot.Page)
            self.assertFalse(target.isRedirectPage())
        # test pagecategories
        for cat in mysite.pagecategories(mainpage):
            self.assertIsInstance(cat, pywikibot.Category)
            for cm in mysite.categorymembers(cat):
                self.assertIsInstance(cat, pywikibot.Page)
        # test pageimages
        self.assertTrue(all(isinstance(im, pywikibot.FilePage)
                            for im in mysite.pageimages(mainpage)))
        # test pagetemplates
        self.assertTrue(all(isinstance(te, pywikibot.Page)
                            for te in mysite.pagetemplates(mainpage)))
        self.assertTrue(set(mysite.pagetemplates(mainpage)).issuperset(
>                       set(mysite.pagetemplates(mainpage, namespaces=[10]))))
E       AssertionError: False is not true
tests/site_tests.py:542: AssertionError

see e.g.: https://travis-ci.org/wikimedia/pywikibot-core/jobs/184654277#L3800


TASK DETAIL
https://phabricator.wikimedia.org/T153501

EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Magul
Cc: pywikibot-bugs-list, Aklapper, jayvdb, Magul, Tbscho, MayS, Mdupont, JJMC89, Dalba, Masti, Alchimista, Rxy
_______________________________________________
pywikibot-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-bugs

Reply via email to