jayvdb created this task.

TASK DESCRIPTION
  `_get_page_mappings` is doing a purge, which is a write operation.  That 
means these tests are writing to the wiki without the class being marked `write 
= True`.
  
  Can the purge be avoided, so that these test methods always run?
  
  An alternative approach is to create a new special value for the `write` flag 
which indicates that the test uses the `purge` operation, which is a special 
kind of write operation because it doesnt create a edit/log entry.
  
    ======================================================================
    ERROR: test_check_if_cached_enws 
(tests.proofreadpage_tests.TestIndexPageMappings)
    Test if cache is checked and loaded properly on wikisource:en
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tests/aspects.py", line 688, in wrapped_method
        func(self, key)
      File "tests/proofreadpage_tests.py", line 456, in test_check_if_cached
        fetched_label = index_page.get_label_from_page_number(num)
      File "pywikibot/proofreadpage.py", line 471, in wrapper
        self._get_page_mappings()
      File "pywikibot/proofreadpage.py", line 514, in _get_page_mappings
        self.purge()
      File "pywikibot/page.py", line 1299, in purge
        return self.site.purgepages([self], **kwargs)
      File "pywikibot/site.py", line 1304, in callee
        return fn(self, *args, **kwargs)
      File "pywikibot/site.py", line 5465, in purgepages
        titles=[page for page in set(pages)])
      File "pywikibot/site.py", line 1959, in _simple_request
        site=self, **kwargs)
      File "tests/__init__.py", line 285, in create_simple
        return cls(site=site, parameters=kwargs)
      File "tests/__init__.py", line 279, in __init__
        super(TestRequest, self).__init__(0, *args, **kwargs)
      File "pywikibot/data/api.py", line 2205, in __init__
        super(CachedRequest, self).__init__(*args, **kwargs)
      File "pywikibot/data/api.py", line 1452, in __init__
        % self.site._userinfo['name'])
    Error: API write action attempted as IP u'xxx.xxx.xxx.xxx'
    
    ======================================================================
    ERROR: test_get_labels_enws 
(tests.proofreadpage_tests.TestIndexPageMappings)
    Test IndexPage page get_label_from_* functions on wikisource:en
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tests/aspects.py", line 688, in wrapped_method
        func(self, key)
      File "tests/proofreadpage_tests.py", line 483, in test_get_labels
        self.assertEqual(index_page.get_label_from_page_number(num), label)
      File "pywikibot/proofreadpage.py", line 471, in wrapper
        self._get_page_mappings()
      File "pywikibot/proofreadpage.py", line 514, in _get_page_mappings
        self.purge()
      File "pywikibot/page.py", line 1299, in purge
        return self.site.purgepages([self], **kwargs)
      File "pywikibot/site.py", line 1304, in callee
        return fn(self, *args, **kwargs)
      File "pywikibot/site.py", line 5465, in purgepages
        titles=[page for page in set(pages)])
      File "pywikibot/site.py", line 1959, in _simple_request
        site=self, **kwargs)
      File "tests/__init__.py", line 285, in create_simple
        return cls(site=site, parameters=kwargs)
      File "tests/__init__.py", line 279, in __init__
        super(TestRequest, self).__init__(0, *args, **kwargs)
      File "pywikibot/data/api.py", line 2205, in __init__
        super(CachedRequest, self).__init__(*args, **kwargs)
      File "pywikibot/data/api.py", line 1452, in __init__
        % self.site._userinfo['name'])
    Error: API write action attempted as IP u'xxx.xxx.xxx.xxx'
    
    ======================================================================
    ERROR: test_get_page_and_number_enws 
(tests.proofreadpage_tests.TestIndexPageMappings)
    Test IndexPage page get_page_number functions on wikisource:en
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tests/aspects.py", line 688, in wrapped_method
        func(self, key)
      File "tests/proofreadpage_tests.py", line 500, in test_get_page_and_number
        self.assertEqual(index_page.get_page_number_from_label(label),
      File "pywikibot/proofreadpage.py", line 471, in wrapper
        self._get_page_mappings()
      File "pywikibot/proofreadpage.py", line 514, in _get_page_mappings
        self.purge()
      File "pywikibot/page.py", line 1299, in purge
        return self.site.purgepages([self], **kwargs)
      File "pywikibot/site.py", line 1304, in callee
        return fn(self, *args, **kwargs)
      File "pywikibot/site.py", line 5465, in purgepages
        titles=[page for page in set(pages)])
      File "pywikibot/site.py", line 1959, in _simple_request
        site=self, **kwargs)
      File "tests/__init__.py", line 285, in create_simple
        return cls(site=site, parameters=kwargs)
      File "tests/__init__.py", line 279, in __init__
        super(TestRequest, self).__init__(0, *args, **kwargs)
      File "pywikibot/data/api.py", line 2205, in __init__
        super(CachedRequest, self).__init__(*args, **kwargs)
      File "pywikibot/data/api.py", line 1452, in __init__
        % self.site._userinfo['name'])
    Error: API write action attempted as IP u'xxx.xxx.xxx.xxx'
    
    ======================================================================
    ERROR: test_num_pages_enws (tests.proofreadpage_tests.TestIndexPageMappings)
    Test num_pages property on wikisource:en
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tests/aspects.py", line 688, in wrapped_method
        func(self, key)
      File "tests/proofreadpage_tests.py", line 471, in test_num_pages
        self.assertEqual(index_page.num_pages, self.sites[key]['num_pages'])
      File "pywikibot/proofreadpage.py", line 471, in wrapper
        self._get_page_mappings()
      File "pywikibot/proofreadpage.py", line 514, in _get_page_mappings
        self.purge()
      File "pywikibot/page.py", line 1299, in purge
        return self.site.purgepages([self], **kwargs)
      File "pywikibot/site.py", line 1304, in callee
        return fn(self, *args, **kwargs)
      File "pywikibot/site.py", line 5465, in purgepages
        titles=[page for page in set(pages)])
      File "pywikibot/site.py", line 1959, in _simple_request
        site=self, **kwargs)
      File "tests/__init__.py", line 285, in create_simple
        return cls(site=site, parameters=kwargs)
      File "tests/__init__.py", line 279, in __init__
        super(TestRequest, self).__init__(0, *args, **kwargs)
      File "pywikibot/data/api.py", line 2205, in __init__
        super(CachedRequest, self).__init__(*args, **kwargs)
      File "pywikibot/data/api.py", line 1452, in __init__
        % self.site._userinfo['name'])
    Error: API write action attempted as IP u'xxx.xxx.xxx.xxx'
    
    ======================================================================
    ERROR: test_page_gen_enws (tests.proofreadpage_tests.TestIndexPageMappings)
    Test Index page generator on wikisource:en
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "tests/aspects.py", line 688, in wrapped_method
        func(self, key)
      File "tests/proofreadpage_tests.py", line 541, in test_page_gen
        self.assertRaises(ValueError, index_page.page_gen, -1, 2)
      File "/usr/lib64/python2.7/unittest/case.py", line 513, in assertRaises
        callableObj(*args, **kwargs)
      File "pywikibot/proofreadpage.py", line 613, in page_gen
        % (start, end, 1, self.num_pages))
      File "pywikibot/proofreadpage.py", line 471, in wrapper
        self._get_page_mappings()
      File "pywikibot/proofreadpage.py", line 514, in _get_page_mappings
        self.purge()
      File "pywikibot/page.py", line 1299, in purge
        return self.site.purgepages([self], **kwargs)
      File "pywikibot/site.py", line 1304, in callee
        return fn(self, *args, **kwargs)
      File "pywikibot/site.py", line 5465, in purgepages
        titles=[page for page in set(pages)])
      File "pywikibot/site.py", line 1959, in _simple_request
        site=self, **kwargs)
      File "tests/__init__.py", line 285, in create_simple
        return cls(site=site, parameters=kwargs)
      File "tests/__init__.py", line 279, in __init__
        super(TestRequest, self).__init__(0, *args, **kwargs)
      File "pywikibot/data/api.py", line 2205, in __init__
        super(CachedRequest, self).__init__(*args, **kwargs)
      File "pywikibot/data/api.py", line 1452, in __init__
        % self.site._userinfo['name'])
    Error: API write action attempted as IP u'xxx.xxx.xxx.xxx'

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

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

To: jayvdb
Cc: pywikibot-bugs-list, Mpaa, Aklapper, jayvdb



_______________________________________________
pywikibot-bugs mailing list
pywikibot-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/pywikibot-bugs

Reply via email to