コード例 #1
0
    def test_user_uploads(self):
        self.assertCountEqual(["File:FCTest2.svg", "File:FCTest1.png"],
                              flatten_generator(
                                  GQuery.user_uploads(self.wiki,
                                                      "FastilyClone")))

        with self.assertRaises(StopIteration):
            next(GQuery.user_uploads(self.wiki, "DoesNotExistFastily"))
コード例 #2
0
    def test_random(self):
        l = next(GQuery.random(self.wiki))
        self.assertEqual(1, len(l))

        l = next(GQuery.random(self.wiki, [NS.FILE], 2))
        self.assertEqual(2, len(l))
        for e in l:
            self.assertTrue(e.startswith("File:"))
コード例 #3
0
    def test_prefix_index(self):
        self.assertCountEqual(
            [
                "User:Fastily/Sandbox/Page/1", "User:Fastily/Sandbox/Page/2",
                "User:Fastily/Sandbox/Page/3"
            ],
            flatten_generator(
                GQuery.prefix_index(self.wiki, NS.USER,
                                    "Fastily/Sandbox/Page/")))

        with self.assertRaises(StopIteration):
            next(
                GQuery.prefix_index(self.wiki, NS.USER,
                                    "Fastily/DoesNotExistEver1234"))
コード例 #4
0
    def test_logs(self):
        l = next(
            GQuery.logs(self.wiki,
                        log_type="delete",
                        user="******",
                        ns=NS.FILE,
                        limit=3))
        self.assertEqual(3, len(l))
        for e in l:
            self.assertEqual("Fastily", e.user)
            self.assertTrue(e.title.startswith("File:"))
            self.assertEqual("delete", e.action)

        l = next(GQuery.logs(self.wiki, "File:FCTest1.png", "upload"))
        self.assertEqual(1, len(l))
        self.assertEqual("FastilyClone", l[0].user)
        self.assertEqual(datetime.fromisoformat("2015-10-20T00:28:32+00:00"),
                         l[0].timestamp)
コード例 #5
0
    def test_deleted_revisions(self, mock: Mock):
        result = next(
            GQuery.deleted_revisions(self.wiki,
                                     "User:Fastily/SomePageThatWasDeleted"))

        mock.assert_called_once()
        self.assertEqual(3, len(result))
        self.assertEqual("Fastily", result[0].user)
        self.assertEqual("test 1", result[1].summary)
        self.assertEqual(datetime(2022, 6, 21, 9, 38, 57, tzinfo=timezone.utc),
                         result[2].timestamp)
コード例 #6
0
    def test_category_members(self):
        # test 1
        self.assertCountEqual(
            ["User:Fastily/Sandbox/Page/2", "File:FastilyTest.png"],
            next(
                GQuery.category_members(self.wiki,
                                        "Category:Fastily Test2",
                                        limit=MAX)))

        # test 2
        self.assertListEqual(["File:FastilyTest.png"],
                             next(
                                 GQuery.category_members(
                                     self.wiki, "Category:Fastily Test2",
                                     [NS.FILE], MAX)))

        # test 3
        with self.assertRaises(StopIteration):
            next(
                GQuery.category_members(self.wiki,
                                        "Category:DoesNotExist Fastily1234"))
コード例 #7
0
    def test_contribs(self):
        # test 1
        l = next(GQuery.contribs(self.wiki, "FastilyClone", True, limit=2))

        self.assertEqual(2, len(l))
        self.assertEqual("File:FCTest1.png", l[0].title)
        self.assertFalse(l[0].is_minor)
        self.assertTrue(l[0].is_page_create)

        self.assertEqual("File:FCTest2.svg", l[1].title)
        self.assertFalse(l[1].is_minor)
        self.assertTrue(l[1].is_page_create)

        # test 2
        l = next(g := GQuery.contribs(
            self.wiki, "FastilyClone", ns=[NS.USER], limit=2))

        self.assertEqual(2, len(l))
        self.assertEqual("User:FastilyClone/Page/1", l[0].title)
        self.assertEqual("s2", l[0].summary)
        self.assertTrue(l[0].is_top)

        self.assertEqual("User:FastilyClone/Page/1", l[1].title)
        self.assertEqual("s1", l[1].summary)
        self.assertFalse(l[1].is_top)

        l = next(g)

        self.assertEqual(1, len(l))
        self.assertEqual("User:FastilyClone/Page/1", l[0].title)
        self.assertEqual("s0", l[0].summary)
        self.assertFalse(l[0].is_top)
        self.assertTrue(l[0].is_page_create)

        # test 3
        with self.assertRaises(StopIteration):
            next(GQuery.contribs(self.wiki, "NotARealAccountFastily"))
コード例 #8
0
 def test_list_duplicate_files(self):
     self.assertTrue(l := next(GQuery.list_duplicate_files(self.wiki)))
     self.assertTrue(l[0].startswith("File:"))
コード例 #9
0
    def test_revisions(self):
        # test 1 - base
        result = next(g := GQuery.revisions(
            self.wiki, "User:Fastily/Sandbox/RevisionTest", 2))
        self.assertEqual(2, len(result))
        self.assertEqual("FSock", result[0].user)
        self.assertEqual(465879, result[0].revid)
        self.assertEqual("b", result[1].summary)

        result = next(g)
        self.assertEqual(1, len(result))
        self.assertEqual("Fastily", result[0].user)
        self.assertIsNone(result[0].text)

        # test 2 - reversed, with text
        result = next(
            g := GQuery.revisions(self.wiki,
                                  "User:Fastily/Sandbox/RevisionTest",
                                  2,
                                  True,
                                  include_text=True))
        self.assertEqual(2, len(result))
        self.assertEqual("hello!", result[0].text)
        self.assertEqual("Fastily", result[1].user)

        result = next(g)
        self.assertEqual(1, len(result))
        self.assertEqual("c", result[0].summary)

        # test 3 - dates
        result = next(
            GQuery.revisions(self.wiki, "User:Fastily/Sandbox/RevisionTest", 5,
                             True,
                             datetime(2021, 2, 9, 4, 32, tzinfo=timezone.utc)))
        self.assertEqual(1, len(result))
        self.assertEqual("c", result[0].summary)

        result = next(
            GQuery.revisions(self.wiki,
                             "User:Fastily/Sandbox/RevisionTest",
                             5,
                             start=datetime(2021,
                                            2,
                                            9,
                                            4,
                                            29,
                                            tzinfo=timezone.utc),
                             end=datetime(2021,
                                          2,
                                          9,
                                          4,
                                          32,
                                          tzinfo=timezone.utc)))  # newer first
        self.assertEqual(2, len(result))
        self.assertEqual("b", result[0].summary)
        self.assertEqual("a", result[1].summary)

        result = next(
            GQuery.revisions(self.wiki, "User:Fastily/Sandbox/RevisionTest", 5,
                             True,
                             datetime(2021, 2, 9, 4, 29, tzinfo=timezone.utc),
                             datetime(2021, 2, 9, 4, 32,
                                      tzinfo=timezone.utc)))  # older first
        self.assertEqual(2, len(result))
        self.assertEqual("a", result[0].summary)
        self.assertEqual("b", result[1].summary)

        with self.assertRaises(ValueError):
            GQuery.revisions(self.wiki, "Foobar", 99, True,
                             datetime(2023, 2, 9, 4, 29, tzinfo=timezone.utc),
                             datetime(2021, 2, 9, 4, 32, tzinfo=timezone.utc))

        # test 4 - non-existent
        with self.assertRaises(StopIteration):
            next(GQuery.revisions(self.wiki, "DoesNotExistFastily"))
コード例 #10
0
 def test_categories_on_page(self):
     self.assertCountEqual(
         ["Category:Fastily Test", "Category:Fastily Test2"],
         next(
             GQuery.categories_on_page(self.wiki,
                                       "User:Fastily/Sandbox/Page/2", MAX)))
コード例 #11
0
 def test_all_users(self):
     self.assertTrue(next(GQuery.all_users(self.wiki)))
     self.assertTrue(next(GQuery.all_users(self.wiki, "sysop")))
     self.assertTrue(
         next(GQuery.all_users(self.wiki, ["bot", "bureaucrat"], 5)))
コード例 #12
0
    def test_search(self):
        self.assertEqual(1, len(next(GQuery.search(self.wiki, "Fastily"))))

        l = next(GQuery.search(self.wiki, "FastilyClone", [NS.USER]))
        self.assertEqual(1, len(l))
        self.assertTrue(l[0].startswith("User:"))