mirror of
https://github.com/Neocky/pluGET.git
synced 2024-04-29 16:12:30 +00:00
Added tests for function in update_checker
This commit is contained in:
parent
fb52973cf6
commit
e17be2c500
@ -177,6 +177,33 @@ def compare_plugin_version(plugin_latest_version : str, plugin_file_version : st
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def ask_update_confirmation(input_selected_object : str) -> bool:
|
||||||
|
"""
|
||||||
|
Prints confirmation message of plugins which get updated and ask for confirmation
|
||||||
|
|
||||||
|
:param input_selected_object: Command line input
|
||||||
|
|
||||||
|
:returns: True or False if plugins should be udpated
|
||||||
|
"""
|
||||||
|
rich_console = Console()
|
||||||
|
rich_console.print("Selected plugins with available Updates:")
|
||||||
|
for plugin_file in INSTALLEDPLUGINLIST:
|
||||||
|
if plugin_file.plugin_is_outdated == False:
|
||||||
|
continue
|
||||||
|
if input_selected_object != "all" and input_selected_object != "*":
|
||||||
|
if re.search(input_selected_object, plugin_file.plugin_file_name, re.IGNORECASE):
|
||||||
|
rich_console.print(f"[not bold][bright_magenta]{plugin_file.plugin_name}", end=' ')
|
||||||
|
break
|
||||||
|
rich_console.print(f"[not bold][bright_magenta]{plugin_file.plugin_name}", end=' ')
|
||||||
|
|
||||||
|
rich_console.print()
|
||||||
|
update_confirmation = input("Update these plugins [y/n] ? ")
|
||||||
|
if str.lower(update_confirmation) != "y":
|
||||||
|
rich_print_error("Aborting the update process")
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def check_update_available_installed_plugins(input_selected_object : str, config_values: config_value) -> str:
|
def check_update_available_installed_plugins(input_selected_object : str, config_values: config_value) -> str:
|
||||||
"""
|
"""
|
||||||
Gets installed plugins and checks it against the apis if there are updates for the plugins available
|
Gets installed plugins and checks it against the apis if there are updates for the plugins available
|
||||||
@ -259,8 +286,8 @@ def check_installed_plugins(input_selected_object : str="all", input_parameter :
|
|||||||
rich_table = Table(box=None)
|
rich_table = Table(box=None)
|
||||||
rich_table.add_column("No.", justify="right", style="cyan", no_wrap=True)
|
rich_table.add_column("No.", justify="right", style="cyan", no_wrap=True)
|
||||||
rich_table.add_column("Name", style="bright_magenta")
|
rich_table.add_column("Name", style="bright_magenta")
|
||||||
rich_table.add_column("Installed V.", justify="right", style="bright_green")
|
rich_table.add_column("Installed V.", justify="right", style="green")
|
||||||
rich_table.add_column("Latest V.", justify="right", style="green")
|
rich_table.add_column("Latest V.", justify="right", style="bright_green")
|
||||||
rich_table.add_column("Update available", justify="left", style="white")
|
rich_table.add_column("Update available", justify="left", style="white")
|
||||||
rich_table.add_column("Repository", justify="left", style="white")
|
rich_table.add_column("Repository", justify="left", style="white")
|
||||||
# start counting at 1 for all my non-programming friends :)
|
# start counting at 1 for all my non-programming friends :)
|
||||||
@ -289,34 +316,6 @@ def check_installed_plugins(input_selected_object : str="all", input_parameter :
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def ask_update_confirmation(input_selected_object : str) -> bool:
|
|
||||||
"""
|
|
||||||
Prints confirmation message of plugins which get updated and ask for confirmation
|
|
||||||
|
|
||||||
:param input_selected_object: Command line input
|
|
||||||
|
|
||||||
:returns: True or False if plugins should be udpated
|
|
||||||
"""
|
|
||||||
rich_console = Console()
|
|
||||||
rich_console.print("Selected plugins with available Updates:")
|
|
||||||
for plugin_file in INSTALLEDPLUGINLIST:
|
|
||||||
if plugin_file.plugin_is_outdated == False:
|
|
||||||
continue
|
|
||||||
if input_selected_object != "all" and input_selected_object != "*":
|
|
||||||
if re.search(input_selected_object, plugin_file.plugin_file_name, re.IGNORECASE):
|
|
||||||
rich_console.print(f"[not bold][bright_magenta]{plugin_file.plugin_name}", end=' ')
|
|
||||||
break
|
|
||||||
rich_console.print(f"[not bold][bright_magenta]{plugin_file.plugin_name}", end=' ')
|
|
||||||
|
|
||||||
rich_console.print()
|
|
||||||
update_confirmation = input("Update these plugins [y/n] ? ")
|
|
||||||
if str.lower(update_confirmation) != "y":
|
|
||||||
rich_print_error("Aborting the update process")
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def update_installed_plugins(input_selected_object : str="all", no_confirmation : bool=False) -> None:
|
def update_installed_plugins(input_selected_object : str="all", no_confirmation : bool=False) -> None:
|
||||||
"""
|
"""
|
||||||
Checks if a plugin list exists and if so updates the selected plugins if there is an update available
|
Checks if a plugin list exists and if so updates the selected plugins if there is an update available
|
||||||
@ -366,7 +365,7 @@ def update_installed_plugins(input_selected_object : str="all", no_confirmation
|
|||||||
|
|
||||||
rich_console.print(
|
rich_console.print(
|
||||||
"\n [not bold][bright_white]● [bright_magenta]" +
|
"\n [not bold][bright_white]● [bright_magenta]" +
|
||||||
f"{plugin.plugin_name} [bright_green]{plugin.plugin_latest_version}"
|
f"{plugin.plugin_name} [green]{plugin.plugin_file_version} [cyan]→ [bright_green]{plugin.plugin_latest_version}"
|
||||||
)
|
)
|
||||||
|
|
||||||
plugins_updated += 1
|
plugins_updated += 1
|
||||||
@ -394,6 +393,10 @@ def update_installed_plugins(input_selected_object : str="all", no_confirmation
|
|||||||
if config_values.local_seperate_download_path == False:
|
if config_values.local_seperate_download_path == False:
|
||||||
try:
|
try:
|
||||||
os.remove(Path(f"{plugin_path}/{plugin.plugin_file_name}"))
|
os.remove(Path(f"{plugin_path}/{plugin.plugin_file_name}"))
|
||||||
|
rich_console.print(
|
||||||
|
" [not bold][bright_green]Deleted old plugin file [cyan]→ [white]" +
|
||||||
|
f"{plugin.plugin_file_name}"
|
||||||
|
)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
rich_print_error("Error: Old plugin file couldn't be deleted")
|
rich_print_error("Error: Old plugin file couldn't be deleted")
|
||||||
|
|
||||||
@ -424,11 +427,19 @@ def update_installed_plugins(input_selected_object : str="all", no_confirmation
|
|||||||
case "sftp":
|
case "sftp":
|
||||||
try:
|
try:
|
||||||
connection.remove(plugin_path)
|
connection.remove(plugin_path)
|
||||||
|
rich_console.print(
|
||||||
|
" [not bold][bright_green]Deleted old plugin file [cyan]→ [white]" +
|
||||||
|
f"{plugin.plugin_file_name}"
|
||||||
|
)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
rich_print_error("Error: Old plugin file couldn't be deleted")
|
rich_print_error("Error: Old plugin file couldn't be deleted")
|
||||||
case "ftp":
|
case "ftp":
|
||||||
try:
|
try:
|
||||||
connection.delete(plugin_path)
|
connection.delete(plugin_path)
|
||||||
|
rich_console.print(
|
||||||
|
" [not bold][bright_green]Deleted old plugin file [cyan]→ [white]" +
|
||||||
|
f"{plugin.plugin_file_name}"
|
||||||
|
)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
rich_print_error("Error: Old plugin file couldn't be deleted")
|
rich_print_error("Error: Old plugin file couldn't be deleted")
|
||||||
|
|
||||||
|
31
src/tests/test_plugin_updatechecker.py
Normal file
31
src/tests/test_plugin_updatechecker.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import unittest
|
||||||
|
|
||||||
|
from src.plugin import plugin_updatechecker
|
||||||
|
|
||||||
|
|
||||||
|
class TestCases(unittest.TestCase):
|
||||||
|
def test_get_plugin_file_name(self):
|
||||||
|
plugin_file_name = "LuckPerms-5.4.30.jar"
|
||||||
|
plugin_file_name_cropped = "LuckPerms"
|
||||||
|
result = plugin_updatechecker.get_plugin_file_name(plugin_file_name)
|
||||||
|
self.assertEqual(result, plugin_file_name_cropped)
|
||||||
|
|
||||||
|
def test_get_plugin_file_version(self):
|
||||||
|
plugin_file_name = "LuckPerms-5.4.30.jar"
|
||||||
|
plugin_version_cropped = "5.4.30"
|
||||||
|
result = plugin_updatechecker.get_plugin_file_version(plugin_file_name)
|
||||||
|
self.assertEqual(result, plugin_version_cropped)
|
||||||
|
|
||||||
|
def test_get_plugin_version_without_letters(self):
|
||||||
|
plugin_version = "VERSIONv5.4.30"
|
||||||
|
plugin_version_cropped = "5.4.30"
|
||||||
|
result = plugin_updatechecker.get_plugin_version_without_letters(plugin_version)
|
||||||
|
self.assertEqual(result, plugin_version_cropped)
|
||||||
|
|
||||||
|
def test_compare_plugin_version(self):
|
||||||
|
result = plugin_updatechecker.compare_plugin_version("5.4.30", "5.4.0")
|
||||||
|
result2 = plugin_updatechecker.compare_plugin_version("5.4.30", "8.7.60")
|
||||||
|
result3 = plugin_updatechecker.compare_plugin_version("5.4.30", "5.4.30")
|
||||||
|
self.assertEqual(result, True)
|
||||||
|
self.assertEqual(result2, False)
|
||||||
|
self.assertEqual(result3, False)
|
@ -1,4 +1,5 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from src.plugin import plugin_downloader
|
from src.plugin import plugin_downloader
|
||||||
from src.utils import utilities
|
from src.utils import utilities
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user