コード例 #1
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_duplicate_lemmas_in_supplements(self):
     copy_tst_data("S_I_no_dublicates", "S I")
     register = VolumeRegister(Volumes()["S I"], Authors())
     update_dict = {"lemma": "Abdymon", "previous": "Abd Hadad", "next": "Abeikta"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     compare(11, len(register.lemmas))
コード例 #2
0
    def test_fetch_from_properties_self_append(self):
        with LogCapture():
            copy_tst_data("I_1_self_append", "I_1")
            self.page_mock.title_str = "RE:Aal"
            self.page_mock.text = """{{REDaten
|BAND=I,1
|VORGÄNGER=Lemma Previous
|NACHFOLGER=Lemma Next
|WP=Aal_wp_link
|WS=Aal_ws_link
|SORTIERUNG=Aal
|VERWEIS=ON
}}
text.
{{REAutor|OFF}}
{{REDaten
|BAND=I,1
|VORGÄNGER=Lemma Previous2
|NACHFOLGER=Lemma Next2
}}
text.
{{REAutor|OFF}}"""
            task = SCANTask(None, self.logger)
            task.re_page = RePage(self.page_mock)
            task._process_from_article_list()
            post_lemma = task.registers["I,1"].get_lemma_by_name("Aal")
            compare("w:de:Aal_wp_link", post_lemma.lemma_dict["wp_link"])
            compare("s:de:Aal_ws_link", post_lemma.lemma_dict["ws_link"])
            compare("Aal", post_lemma.lemma_dict["sort_key"])
            compare(True, post_lemma.lemma_dict["redirect"])
            compare("Lemma Previous", post_lemma.lemma_dict["previous"])
            compare("Lemma Next", post_lemma.lemma_dict["next"])
            post_lemma_append = task.registers["I,1"].get_lemma_by_name("Aal", self_supplement=True)
            compare("Lemma Previous2", post_lemma_append.lemma_dict["previous"])
            compare("Lemma Next2", post_lemma_append.lemma_dict["next"])
コード例 #3
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
 def test_header_proof_read(self):
     copy_tst_data("I_1_base", "I_1")
     i1 = VolumeRegister(Volumes()["I,1"], Authors())._get_header().replace("\n", "")
     compare(StringComparison(".*SUM=8.*"), i1)
     compare(StringComparison(".*UNK=3.*"), i1)
     compare(StringComparison(".*KOR=2.*"), i1)
     compare(StringComparison(".*FER=3.*"), i1)
コード例 #4
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
 def test_get_lemma_by_id(self):
     copy_tst_data("I_1_base", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     lemma = register[2]
     compare("Aarassos", lemma["previous"])
     with self.assertRaises(IndexError):
         print(register[8])
コード例 #5
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_pre_and_next_not_possible(self):
     copy_tst_data("I_1_sorting2", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "B", "previous": "A", "next": "D"}
     with self.assertRaisesRegex(RegisterException, "Diff between previous and next aren't 1 or 2"):
         with Updater(register) as updater:
             updater.update_lemma(update_dict, [])
コード例 #6
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
    def test_persist(self):
        copy_tst_data("I_1_two_entries", "I_1")
        register = VolumeRegister(Volumes()["I,1"], Authors())
        register._lemmas[0]._lemma_dict["previous"] = None
        register._lemmas[0]._chapters[0]._dict["author"] = "ÄäÖöÜüß"
        register.persist()
        expect = """[
  {
    "lemma": "Aal",
    "next": "Aarassos",
    "proof_read": 3,
    "short_description": "Ein Fisch",
    "chapters": [
      {
        "start": 1,
        "end": 4,
        "author": "ÄäÖöÜüß"
      }
    ]
  },
  {
    "lemma": "Aarassos",
    "previous": "Aal",
    "proof_read": 2,
    "chapters": [
      {
        "start": 4,
        "end": 4,
        "author": "Abert"
      }
    ]
  }
]"""
        with open(DataRepo.get_data_path().joinpath("I_1.json"), mode="r", encoding="utf-8") as register_file:
            compare(expect, register_file.read())
コード例 #7
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_prokleides_2(self):
     copy_tst_data("prokleides_2_bug", "XXIII_1")
     register = VolumeRegister(Volumes()["XXIII,1"], Authors())
     update_dict = {"lemma": "Prokleides 2", "previous": "Prokleides", "next": "Prokles"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     compare(None, register.lemmas[0]["previous"])
     compare(None, register.lemmas[2]["next"])
コード例 #8
0
 def setUp(self):
     copy_tst_data("I_1_alpha", "I_1")
     copy_tst_data("III_1_alpha", "III_1")
     self.authors = Authors()
     self.volumes = Volumes()
     self.registers = OrderedDict()
     self.registers["I,1"] = VolumeRegister(self.volumes["I,1"], self.authors)
     self.registers["III,1"] = VolumeRegister(self.volumes["III,1"], self.authors)
コード例 #9
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_lemma(self):
     copy_tst_data("I_1_base", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "Aal", "redirect": True}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, ["next"])
     post_lemma = register.get_lemma_by_name("Aal")
     self.assertTrue(post_lemma["redirect"])
     self.assertIsNone(post_lemma["next"])
コード例 #10
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
 def test_get_id_of_lemma(self):
     copy_tst_data("I_1_self_append", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     compare(0, register.get_index_of_lemma("Aal"))
     compare(2, register.get_index_of_lemma("Something"))
     compare(3, register.get_index_of_lemma("Aal", self_supplement=True))
     lemma = register.get_lemma_by_name("Aal", self_supplement=True)
     compare(3, register.get_index_of_lemma(lemma))
     compare(None, register.get_index_of_lemma("Lemma not there"))
コード例 #11
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
 def test_header_vg_nf(self):
     copy_tst_data("I_1_base", "I_1")
     i1 = VolumeRegister(Volumes()["I,1"], Authors())._get_header()
     self.assertTrue("VG=" in i1)
     self.assertTrue("NF=I,2" in i1)
     copy_tst_data("I_1_base", "S I")
     si = VolumeRegister(Volumes()["S I"], Authors())._get_header()
     self.assertTrue("VG=X A" in si)
     self.assertTrue("NF=S II" in si)
コード例 #12
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_next_and_previous(self):
     copy_tst_data("I_1_sorting2", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "O", "previous": "Ä", "next": "Ü"}
     with Updater(register) as updater:
         updater._try_update_next_and_previous(update_dict, register.get_lemma_by_name("O"))
     post_lemma_previous = register.get_lemma_by_name("Ä")
     compare("O", post_lemma_previous["next"])
     post_lemma_next = register.get_lemma_by_name("Ü")
     compare("O", post_lemma_next["previous"])
コード例 #13
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_by_sortkey_raise_error(self):
     copy_tst_data("I_1_update_previous_wrong", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "Äarassos", "previous": "Aal", "next": "Aba 1", "sort_key": "Aarassos"}
     with self.assertRaisesRegex(RegisterException, "!= next lemma name \"Ab 1\""):
         with Updater(register) as updater:
             updater.update_lemma(update_dict, [])
     previous_lemma = register.get_lemma_by_name("Aal")
     compare("Aarassos", previous_lemma["next"])
     next_lemma = register.get_lemma_by_name("Ab 1")
     compare("Aarassos", next_lemma["previous"])
コード例 #14
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_no_update_possible(self):
     copy_tst_data("I_1_base", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "bubum",
                    "redirect": True,
                    "sort_key": "babam",
                    "previous": "rubbish",
                    "next": "something"}
     with self.assertRaisesRegex(RegisterException, "No strategy available"):
         with Updater(register) as updater:
             updater.update_lemma(update_dict, [])
コード例 #15
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
 def test_get_lemma_self_append(self):
     copy_tst_data("I_1_self_append", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     lemma = register.get_lemma_by_name("Aal")
     compare(None, lemma["previous"])
     lemma = register.get_lemma_by_name("Aal", self_supplement=True)
     compare("Something", lemma["previous"])
     lemma = register.get_lemma_by_sort_key("AAL", self_supplement=True)
     compare("Something", lemma["previous"])
     lemma = register.get_lemma_by_name("Something", self_supplement=True)
     compare(None, lemma)
コード例 #16
0
 def test_init(self):
     for volume in Volumes().all_volumes:
         copy_tst_data("I_1_base", volume.file_name)
     registers = Registers()
     iterator = iter(registers.volumes.values())
     compare("I,1", next(iterator).volume.name)
     for _ in range(83):
         last = next(iterator)
     compare("R", last.volume.name)
     compare(84, len(registers.volumes))
     compare("IV,1", registers["IV,1"].volume.name)
コード例 #17
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_acutius_1a(self):
     copy_tst_data("acutius_1a_bug", "S I")
     register = VolumeRegister(Volumes()["S I"], Authors())
     update_dict = {"lemma": "Acutius a", "previous": "Acronoma", "next": "Acutius 1a", "sort_key": "Acutius 0a"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     update_dict = {"lemma": "Acutius 1a", "previous": "Acutius a", "next": "Adaba", "redirect": True}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     # don't create a new lemma, because Acutius a !=  Acutius 0a
     compare(5, len(register.lemmas))
コード例 #18
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_lemma_by_sortkey(self):
     copy_tst_data("I_1_base", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "Äal", "redirect": True, "sort_key": "Aal", "next": "Aarassos"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     post_lemma = register.get_lemma_by_name("Äal")
     compare(True, post_lemma["redirect"])
     compare("Aal", post_lemma["sort_key"])
     post_lemma_next = register.get_lemma_by_name("Aarassos")
     compare("Äal", post_lemma_next["previous"])
コード例 #19
0
 def test_persist(self):
     copy_tst_data("I_1_alpha", "I_1")
     copy_tst_data("III_1_alpha", "III_1")
     registers = Registers()
     register_I_1 = registers["I,1"]
     register_I_1._lemmas[0]._chapters[0]._dict["author"] = "Siegfried"
     register_III_1 = registers["III,1"]
     register_III_1._lemmas[0]._chapters[0]._dict["author"] = "Siegfried"
     registers.persist()
     with open(DataRepo.get_data_path().joinpath("I_1.json"), mode="r", encoding="utf-8") as register_file:
         self.assertTrue("Siegfried" in register_file.read())
     with open(DataRepo.get_data_path().joinpath("III_1.json"), mode="r", encoding="utf-8") as register_file:
         self.assertTrue("Siegfried" in register_file.read())
コード例 #20
0
 def test_author(self):
     copy_tst_data("I_1_author", "I_1")
     copy_tst_data("III_1_author", "III_1")
     author_registers = iter(Registers().author)
     register = next(author_registers)
     compare("Herman Abel", register.author.name)
     compare(4, len(register))
     register = next(author_registers)
     compare("Abert", register.author.name)
     compare(5, len(register))
     register = next(author_registers)
     compare("William Abbott", register.author.name)
     compare(2, len(register))
コード例 #21
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_by_insert_before_next_no_previous(self):
     copy_tst_data("I_1_sorting2", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "B", "next": "Ö"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     post_lemma = register.get_lemma_by_name("B")
     compare(None, post_lemma["previous"])
     compare("Ö", post_lemma["next"])
     post_lemma_previous = register.get_lemma_by_name("A")
     compare(None, post_lemma_previous["next"])
     post_lemma_next = register.get_lemma_by_name("Ö")
     compare("B", post_lemma_next["previous"])
     post_lemma_next_next = register.get_lemma_by_name("U")
     compare("Ö", post_lemma_next_next["previous"])
コード例 #22
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_lemma_by_sortkey_pre_and_next_lemma_other_name(self):
     copy_tst_data("I_1_sorting2", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "Ö", "sort_key": "O", "previous": "Ä", "next": "Ü"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     post_lemma = register.get_lemma_by_name("Ö")
     compare("O", post_lemma["sort_key"])
     post_lemma_previous = register.get_lemma_by_name("Ä")
     compare("Ö", post_lemma_previous["next"])
     post_lemma_next = register.get_lemma_by_name("Ü")
     compare("Ö", post_lemma_next["previous"])
     post_lemma_start = register.get_lemma_by_name("Vor A")
     compare("Ä", post_lemma_start["next"])
     post_lemma_end = register.get_lemma_by_name("D")
     compare("Ü", post_lemma_end["previous"])
コード例 #23
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_by_replace(self):
     copy_tst_data("I_1_sorting2", "I_1")
     register = VolumeRegister(Volumes()["I,1"], Authors())
     update_dict = {"lemma": "B", "previous": "Ä", "next": "Ü"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     post_lemma = register.get_lemma_by_name("B")
     compare("Ä", post_lemma["previous"])
     compare("Ü", post_lemma["next"])
     post_lemma_previous = register.get_lemma_by_name("Ä")
     compare("B", post_lemma_previous["next"])
     post_lemma_previous_previous = register.get_lemma_by_name("Vor A")
     compare("Ä", post_lemma_previous_previous["next"])
     post_lemma_next = register.get_lemma_by_name("Ü")
     compare("B", post_lemma_next["previous"])
     post_lemma_next_next = register.get_lemma_by_name("D")
     compare("Ü", post_lemma_next_next["previous"])
コード例 #24
0
ファイル: test_author.py プロジェクト: the-it/WS_THEbotIT
 def test_bug_to_much_percent(self):
     copy_tst_data("I_1_author_bug_percent", "I_1")
     copy_tst_data("III_1_author_bug_percent", "III_1")
     registers = OrderedDict()
     registers["I,1"] = VolumeRegister(self.volumes["I,1"], self.authors)
     registers["III,1"] = VolumeRegister(self.volumes["III,1"],
                                         self.authors)
     abel_register = AuthorRegister(self.authors.get_author("Herman Abel"),
                                    self.authors, registers)
     compare(
         "|-\n"
         "|data-sort-value=\"Abel, Herman\""
         "|[[Paulys Realencyclopädie der classischen Altertumswissenschaft/Register/Herman Abel|Herman Abel]]\n"
         "|data-sort-value=\"0005\"|5\n"
         "|data-sort-value=\"100.0\"|100.0%\n"
         "|<span style=\"color:#669966\">████████████████████</span>"
         "<span style=\"color:#556B2F\"></span>"
         "<span style=\"color:#AA0000\"></span>",
         abel_register.overview_line)
コード例 #25
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_create_next_previous_supplement_by_sort_key(self):
     copy_tst_data("I_1_sorting2", "S I")
     register = VolumeRegister(Volumes()["S I"], Authors())
     update_dict = {"lemma": "Ö", "previous": "blub", "next": "Ä"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     compare(8, len(register.lemmas))
     update_dict = {"lemma": "Ä", "previous": "Ö", "next": "blab"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     compare(9, len(register.lemmas))
     post_lemma = register.get_lemma_by_name("Ö")
     compare("blub", post_lemma["previous"])
     compare("Ä", post_lemma["next"])
     post_lemma = register.get_lemma_by_name("Ä")
     compare("Ö", post_lemma["previous"])
     compare("blab", post_lemma["next"])
     self.assertTrue(register.get_index_of_lemma("Ä") <
                     register.get_index_of_lemma("blab") <
                     register.get_index_of_lemma("blub") <
                     register.get_index_of_lemma("Ö"))
コード例 #26
0
 def test_alphabetic(self):
     copy_tst_data("I_1_alpha", "I_1")
     copy_tst_data("III_1_alpha", "III_1")
     i = 0
     for i, register in enumerate(Registers().alphabetic):
         if register.start == "a":
             compare(4, len(register))
             continue
         if register.start == "b":
             compare(2, len(register))
             continue
         if register.start == "ch":
             compare(1, len(register))
             continue
         if register.start == "d":
             compare(1, len(register))
             continue
         if register.start == "u":
             compare(2, len(register))
             continue
     compare(43, i)
コード例 #27
0
ファイル: test_updater.py プロジェクト: the-it/WS_THEbotIT
 def test_update_create_next_previous_supplement_by_name_next_exists(self):
     copy_tst_data("I_1_sorting2", "R")
     register = VolumeRegister(Volumes()["R"], Authors())
     update_dict = {"lemma": "O", "previous": "N", "next": "Ü"}
     with Updater(register) as updater:
         updater.update_lemma(update_dict, [])
     post_lemma = register.get_lemma_by_name("O")
     compare("N", post_lemma["previous"])
     compare("Ü", post_lemma["next"])
     post_lemma_previous = register.get_lemma_by_name("N")
     compare("O", post_lemma_previous["next"])
     post_lemma_previous_previous = register.get_lemma_by_name("A")
     compare(None, post_lemma_previous_previous["next"])
     post_lemma_next = register.get_lemma_by_name("Ü")
     compare("O", post_lemma_next["previous"])
     post_lemma_next_next = register.get_lemma_by_name("D")
     compare("Ü", post_lemma_next_next["previous"])
     self.assertTrue(register.get_index_of_lemma("A") <
                     register.get_index_of_lemma("N") <
                     register.get_index_of_lemma("O") <
                     register.get_index_of_lemma("Ü") <
                     register.get_index_of_lemma("D"))
コード例 #28
0
ファイル: test_volume.py プロジェクト: the-it/WS_THEbotIT
    def test_get_table(self):
        copy_tst_data("I_1_two_entries", "I_1")
        register = VolumeRegister(Volumes()["I,1"], Authors())
        expected_table = """{{RERegister
|BAND=I,1
|VG=
|NF=I,2
|SUM=2
|UNK=1
|KOR=1
|FER=0
}}

{|class="wikitable sortable"
!Artikel
!Kurztext
!Wikilinks

!Seite
!Autor
!Stat
|-
|data-sort-value="aal"|[[RE:Aal|'''{{Anker2|Aal}}''']]
||Ein Fisch
||
|[https://elexikon.ch/meyers/RE/I,1_1.png 1]-4
|Herman Abel
|style="background:#FFCBCB"|2069
|-
|data-sort-value="aarassos"|[[RE:Aarassos|'''{{Anker2|Aarassos}}''']]
||
||
|[https://elexikon.ch/meyers/RE/I,1_5.png 4]
|Abert
|style="background:#556B2F"|KOR
|}
[[Kategorie:RE:Register|!]]"""
        compare(expected_table, register.get_register_str())
コード例 #29
0
ファイル: test_printer.py プロジェクト: the-it/WS_THEbotIT
 def setUp(self):
     super().setUp()
     copy_tst_data("I_1_alpha", "I_1")
     copy_tst_data("III_1_alpha", "III_1")
コード例 #30
0
 def setUp(self):
     super().setUp()
     copy_tst_data("I_1_base", "I_1")
     copy_tst_data("authors", "authors")
     copy_tst_data("authors_mapping", "authors_mapping")
     self.task = SCANTask(None, self.logger)