Ejemplo n.º 1
0
 def test_registered_user(self):
     """Test registered user."""
     user = User(self.site, 'Xqt')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsInstance(user.registration(), pywikibot.Timestamp)
     self.assertGreater(user.editCount(), 0)
     self.assertFalse(user.isBlocked())
     self.assertTrue(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('userid', user.getprops())
     self.assertEqual(user.getprops()['userid'], 287832)
     self.assertEqual(user.pageid, 6927779)
     self.assertEqual(user.getUserPage(),
                      pywikibot.Page(self.site, 'Benutzer:Xqt'))
     self.assertEqual(user.getUserPage(subpage='pwb'),
                      pywikibot.Page(self.site, 'Benutzer:Xqt/pwb'))
     self.assertEqual(user.getUserTalkPage(),
                      pywikibot.Page(self.site, 'Benutzer Diskussion:Xqt'))
     self.assertEqual(user.getUserTalkPage(subpage='pwb'),
                      pywikibot.Page(self.site,
                                     'Benutzer Diskussion:Xqt/pwb'))
     self.assertTrue(user.is_thankable)
     contribs = user.contributions(total=10)
     self.assertEqual(len(list(contribs)), 10)
     self.assertTrue(all(isinstance(contrib, tuple)
                         for contrib in contribs))
     self.assertTrue(all('user' in contrib
                         and contrib['user'] == user.username
                         for contrib in contribs))
     self.assertIn('user', user.groups())
     self.assertIn('edit', user.rights())
Ejemplo n.º 2
0
 def test_registered_user(self):
     """Test registered user."""
     user = User(self.site, 'Xqt')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(with_ns=False), user.username)
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsInstance(user.registration(), pywikibot.Timestamp)
     self.assertGreater(user.editCount(), 0)
     self.assertFalse(user.isBlocked())
     self.assertTrue(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('userid', user.getprops())
     self.assertEqual(user.getprops()['userid'], 287832)
     self.assertEqual(user.pageid, 6927779)
     self.assertEqual(user.getUserPage(),
                      pywikibot.Page(self.site, 'Benutzer:Xqt'))
     self.assertEqual(user.getUserPage(subpage='pwb'),
                      pywikibot.Page(self.site, 'Benutzer:Xqt/pwb'))
     self.assertEqual(user.getUserTalkPage(),
                      pywikibot.Page(self.site, 'Benutzer Diskussion:Xqt'))
     self.assertEqual(
         user.getUserTalkPage(subpage='pwb'),
         pywikibot.Page(self.site, 'Benutzer Diskussion:Xqt/pwb'))
     self.assertTrue(user.is_thankable)
     contribs = user.contributions(total=10)
     self.assertLength(list(contribs), 10)
     self.assertTrue(all(
         isinstance(contrib, tuple) for contrib in contribs))
     self.assertTrue(
         all('user' in contrib and contrib['user'] == user.username
             for contrib in contribs))
     self.assertIn('user', user.groups())
     self.assertIn('edit', user.rights())
Ejemplo n.º 3
0
 def test_registered_user_without_timestamp(self):
     """Test registered user when registration timestamp is None."""
     user = User(self.site, 'Ulfb')
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertIsNone(user.getprops()['registration'])
     self.assertGreater(user.editCount(), 0)
     self.assertIn('userid', user.getprops())
Ejemplo n.º 4
0
 def test_registered_user_without_timestamp(self):
     """Test registered user when registration timestamp is None."""
     user = User(self.site, 'Ulfb')
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertIsNone(user.getprops()['registration'])
     self.assertGreater(user.editCount(), 0)
     self.assertIn('userid', user.getprops())
Ejemplo n.º 5
0
 def isEligibleAsGreeter(self, greeter: pywikibot.User) -> bool:
     if not greeter.isRegistered():
         pywikibot.warning(f"Greeter '{greeter.username}' does not exist.")
         return False
     if greeter.isBlocked():
         pywikibot.warning(
             f"'{greeter.username}' is blocked and thus not eligible as greeter."
         )
         return False
     if self.isUserGloballyLocked(greeter):
         pywikibot.warning(
             f"'{greeter.username}' is globally locked and thus not eligible as greeter."
         )
         return False
     if not "review" in greeter.getprops()["rights"]:
         pywikibot.warning(
             f"'{greeter.username}' does not have review rights and is thus not eligible as greeter."
         )
         return False
     if greeter.getUserTalkPage().protection():
         # Talk page is protected, thus not eligible as greeter
         return False
     if not inProduction and greeter.username != "Count Count":
         return False
     cutoffTime = datetime.now() - timedelta(hours=24)
     lastActivityTimestamp = greeter.last_event.timestamp()
     if lastActivityTimestamp < cutoffTime:
         # not active in the last 24 hours and is thus not eligible as greeter
         return False
     return True
Ejemplo n.º 6
0
 def test_female_user(self):
     """Test female user."""
     user = User(self.site, 'Alraunenstern')
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertGreater(user.editCount(), 0)
     self.assertEqual(user.gender(), 'female')
     self.assertIn('userid', user.getprops())
Ejemplo n.º 7
0
 def test_female_user(self):
     """Test female user."""
     user = User(self.site, 'Alraunenstern')
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertGreater(user.editCount(), 0)
     self.assertEqual(user.gender(), 'female')
     self.assertIn('userid', user.getprops())
     self.assertTrue(user.is_thankable)
Ejemplo n.º 8
0
 def test_anonymous_user(self):
     """Test registered user."""
     user = User(self.site, '123.45.67.89')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertTrue(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
Ejemplo n.º 9
0
 def test_unregistered_user(self):
     """Test unregistered user."""
     user = User(self.site, 'This user name is not registered yet')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('missing', user.getprops())
Ejemplo n.º 10
0
 def test_invalid_user(self):
     """Test invalid user."""
     user = User(self.site, 'Invalid char\x9f in Name')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
Ejemplo n.º 11
0
 def test_unregistered_user(self):
     """Test unregistered user."""
     user = User(self.site, 'This user name is not registered yet')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('missing', user.getprops())
Ejemplo n.º 12
0
 def test_anonymous_user(self):
     """Test registered user."""
     user = User(self.site, '123.45.67.89')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertTrue(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
Ejemplo n.º 13
0
 def test_invalid_user(self):
     """Test invalid user."""
     user = User(self.site, 'Invalid char\x9f in Name')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
Ejemplo n.º 14
0
 def test_unregistered_user(self):
     """Test unregistered user."""
     user = User(self.site, 'This user name is not registered yet')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('missing', user.getprops())
Ejemplo n.º 15
0
 def test_registered_user(self):
     """Test registered user."""
     user = User(self.site, 'Xqt')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsInstance(user.registration(), pywikibot.Timestamp)
     self.assertGreater(user.editCount(), 0)
     self.assertFalse(user.isBlocked())
     self.assertTrue(user.isEmailable())
     self.assertIn('userid', user.getprops())
Ejemplo n.º 16
0
 def test_registered_user(self):
     """Test registered user."""
     user = User(self.site, 'Xqt')
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsInstance(user.registration(), pywikibot.Timestamp)
     self.assertGreater(user.editCount(), 0)
     self.assertFalse(user.isBlocked())
     self.assertTrue(user.isEmailable())
     self.assertIn('userid', user.getprops())
Ejemplo n.º 17
0
 def test_invalid_user(self):
     """Test invalid user."""
     user = User(self.site, 'Invalid char\x9f in Name')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('invalid', user.getprops())
Ejemplo n.º 18
0
 def test_anonymous_user(self):
     """Test registered user."""
     user = User(self.site, '123.45.67.89')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(with_ns=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertTrue(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('invalid', user.getprops())
     self.assertFalse(user.is_thankable)
Ejemplo n.º 19
0
 def test_anonymous_user(self):
     """Test registered user."""
     user = User(self.site, '123.45.67.89')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertTrue(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('invalid', user.getprops())
     self.assertFalse(user.is_thankable)
Ejemplo n.º 20
0
 def test_unregistered_user(self):
     """Test unregistered user."""
     user = User(self.site, 'This user name is not registered yet')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('missing', user.getprops())
     self.assertFalse(user.is_thankable)
Ejemplo n.º 21
0
 def test_registered_user(self):
     """Test registered user."""
     user = User(self.site, 'Xqt')
     with suppress_warnings('pywikibot.page.User.name', DeprecationWarning):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username)
     self.assertTrue(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsInstance(user.registration(), pywikibot.Timestamp)
     self.assertGreater(user.editCount(), 0)
     self.assertFalse(user.isBlocked())
     self.assertTrue(user.isEmailable())
     self.assertEqual(user.gender(), 'unknown')
     self.assertIn('userid', user.getprops())
Ejemplo n.º 22
0
 def test_autoblocked_user_with_namespace(self):
     """Test autoblocked user."""
     user = User(self.site, 'User:#1242976')
     self.assertEqual('#1242976', user.username)
     self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(withNamespace=False), user.username[1:])
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
     self.assertTrue(user._isAutoblock)
     self.assertRaisesRegex(AutoblockUser, 'This is an autoblock ID',
                            user.getUserPage)
     self.assertRaisesRegex(AutoblockUser, 'This is an autoblock ID',
                            user.getUserTalkPage)
Ejemplo n.º 23
0
 def test_autoblocked_user_with_namespace(self):
     """Test autoblocked user."""
     # Suppress output: This is an autoblock ID, you can only use to unblock
     with patch.object(pywikibot, 'output'):
         user = User(self.site, 'User:#1242976')
     self.assertEqual('#1242976', user.username)
     with suppress_warnings('pywikibot.page.User.name is deprecated'):
         self.assertEqual(user.name(), user.username)
     self.assertEqual(user.title(with_ns=False), user.username[1:])
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
     self.assertTrue(user._isAutoblock)
     self.assertRaisesRegex(AutoblockUser, 'This is an autoblock ID',
                            user.getUserPage)
     self.assertRaisesRegex(AutoblockUser, 'This is an autoblock ID',
                            user.getUserTalkPage)
Ejemplo n.º 24
0
 def test_autoblocked_user(self):
     """Test autoblocked user."""
     with patch.object(pywikibot, 'output') as p:
         user = User(self.site, '#1242976')
     p.assert_called_once_with(
         'This is an autoblock ID, you can only use to unblock it.')
     self.assertEqual('#1242976', user.username)
     self.assertEqual(user.title(with_ns=False), user.username[1:])
     self.assertFalse(user.isRegistered())
     self.assertFalse(user.isAnonymous())
     self.assertIsNone(user.registration())
     self.assertFalse(user.isEmailable())
     self.assertIn('invalid', user.getprops())
     self.assertTrue(user._isAutoblock)
     with self.assertRaisesRegex(AutoblockUserError,
                                 'This is an autoblock ID'):
         user.getUserPage()
     with self.assertRaisesRegex(AutoblockUserError,
                                 'This is an autoblock ID'):
         user.getUserTalkPage()