diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index f3d11357..70c27fc9 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -698,7 +698,7 @@ enable_service() { echo " done." } -update_pacakge_cache() { +update_package_cache() { #Running apt-get update/upgrade with minimal output can cause some issues with #requiring user input (e.g password for phpmyadmin see #218) @@ -707,8 +707,11 @@ update_pacakge_cache() { echo ":::" echo -n "::: Updating local cache of available packages..." - ${UPDATE_PKG_CACHE} &> /dev/null - echo " done!" + if eval ${UPDATE_PKG_CACHE} &> /dev/null; then + echo " done!" + else + echo -n "\n!!! ERROR - Unable to update package cache. Please try \"${UPDATE_PKG_CACHE}\"" + fi } notify_package_updates_available() { @@ -1133,7 +1136,7 @@ main() { fi # Update package cache - update_pacakge_cache + update_package_cache # Notify user of package availability notify_package_updates_available diff --git a/test/test_automated_install.py b/test/test_automated_install.py index f8e2ec3d..89d9a0e0 100644 --- a/test/test_automated_install.py +++ b/test/test_automated_install.py @@ -274,6 +274,29 @@ def test_installPiholeWeb_already_populated_no_errors(Pihole): assert 'index.js' in web_directory assert 'blockingpage.css' in web_directory +def test_update_package_cache_success_no_errors(Pihole): + ''' confirms package cache was updated without any errors''' + updateCache = Pihole.run(''' + source /opt/pihole/basic-install.sh + distro_check + update_package_cache + ''') + assert 'Updating local cache of available packages...' in updateCache.stdout + assert 'ERROR' not in updateCache.stdout + assert 'done!' in updateCache.stdout + +def test_update_package_cache_failure_no_errors(Pihole): + ''' confirms package cache was not updated''' + mock_command('apt-get', {'update':('', '1')}, Pihole) + updateCache = Pihole.run(''' + source /opt/pihole/basic-install.sh + distro_check + update_package_cache + ''') + assert 'Updating local cache of available packages...' in updateCache.stdout + assert 'ERROR' in updateCache.stdout + assert 'done!' not in updateCache.stdout + # Helper functions def mock_command(script, args, container): ''' Allows for setup of commands we don't really want to have to run for real in unit tests '''