def test_extract_archive_subfolder(self):
     with tempfile.TemporaryDirectory() as temp_dir:
         self.extractAddon('some-fake-addon.zip',
                           temp_dir,
                           curse.Curse("", GameVersion.retail),
                           subfolder='sub-folder')
         self.assertExtractionSuccess(temp_dir, 'sub-folder', 'file1.txt')
Exemplo n.º 2
0
 def test_integration_curse_find_zip_url(self):
     for game_version in GameVersion.__members__.values():
         with self.subTest(game_version):
             c = curse.Curse(self.url, game_version)
             zip_url = c.find_zip_url()
             # example: https://www.curseforge.com/wow/addons/bartender4/download/2730531/file
             self.assertRegex(zip_url.lower(), rf"{self.url}/download/[0-9]+/file")
Exemplo n.º 3
0
 def test_curse_url_redirect(self):
     test_data = url_redirect_test_data
     for game_version in test_data.supported_game_versions:
         with self.subTest((game_version, test_data.url, test_data.version_regex)):
             c = curse.Curse(test_data.url, game_version)
             latest_version = c.get_latest_version()
             self.assertRegex(latest_version, test_data.version_regex)
 def test_integration_curse_get_latest_version(self):
     for url, version_regex in version_test_data:
         thiscurse = curse.Curse(url)
         latest_version = thiscurse.get_latest_version()
         with self.subTest([url, version_regex]):
             # something like 4.5.6, or v163
             self.assertRegex(latest_version, version_regex)
Exemplo n.º 5
0
 def test_integration_curse_get_latest_version(self):
     for vtd in version_test_data:
         for game_version in vtd.supported_game_versions:
             with self.subTest((game_version, vtd.url, vtd.version_regex)):
                 c = curse.Curse(vtd.url, game_version)
                 latest_version = c.get_latest_version()
                 # something like 4.5.6, or v163
                 self.assertRegex(latest_version, vtd.version_regex)
Exemplo n.º 6
0
 def test_integration_curse_get_latest_version(self):
     for url, version_regex in version_test_data:
         for game_version in GameVersion.__members__.values():
             with self.subTest((game_version, url, version_regex)):
                 c = curse.Curse(url, game_version)
                 latest_version = c.get_latest_version()
                 # something like 4.5.6, or v163
                 self.assertRegex(latest_version, version_regex)
Exemplo n.º 7
0
 def test_extract_archive_with_multiple_folders(self):
     with tempfile.TemporaryDirectory() as temp_dir:
         self.extractAddon('some-fake-addon-with-many-folders.zip',
                           temp_dir, curse.Curse("", GameVersion.retail))
         self.assertExtractionSuccess(temp_dir, 'FolderA', 'sub-folder',
                                      'file1.txt')
         self.assertExtractionSuccess(temp_dir, 'FolderB', 'fileB.txt')
         self.assertExtractionSuccess(temp_dir, 'FolderC', 'fileC.txt')
Exemplo n.º 8
0
 def test_curse_versions_parsing(self):
     # The curse object is a throwaway here
     _ = version_test_data[1]
     d = curse.Curse(_.url, GameVersion.retail, AddonVersion.release)
     # This mock pulls a static example of a curse addon files page for testing
     expected_results = [(AddonVersion.release, 'v1.12.5'),
                         (AddonVersion.beta, 'v1.12.0-beta-2'),
                         (AddonVersion.alpha, 'v9.0.1-alpha-8')]
     for addon_version, expected_value in expected_results:
         with self.subTest((addon_version, expected_value)):
             d.addon_version = addon_version
             self.assertEqual(d.get_latest_version(), expected_value)
Exemplo n.º 9
0
 def test_curse_unsupported_game_version(self):
     # classiccodex should throw an version error when searching for an
     # unsupported retail game version
     classiccodex = version_test_data[0]
     c = curse.Curse(classiccodex.url, GameVersion.retail)
     self.assertRaises(curse.SiteError, c.get_latest_version)
Exemplo n.º 10
0
 def setUp(self):
     self.url = 'https://www.curseforge.com/wow/addons/bartender4'
     self.curse = curse.Curse(self.url, GameVersion.retail)
 def setUp(self):
     self.url = 'https://www.curseforge.com/wow/addons/bartender4'
     self.curse = curse.Curse(self.url)