Merge pull request #1183 from pi-hole/tweak/update_cache_trap

Trap for package cache update failures.
This commit is contained in:
Dan Schaper 2017-02-05 16:04:19 -08:00 committed by GitHub
commit 314f7e7889
2 changed files with 30 additions and 4 deletions

View file

@ -698,7 +698,7 @@ enable_service() {
echo " done." echo " done."
} }
update_pacakge_cache() { update_package_cache() {
#Running apt-get update/upgrade with minimal output can cause some issues with #Running apt-get update/upgrade with minimal output can cause some issues with
#requiring user input (e.g password for phpmyadmin see #218) #requiring user input (e.g password for phpmyadmin see #218)
@ -707,8 +707,11 @@ update_pacakge_cache() {
echo ":::" echo ":::"
echo -n "::: Updating local cache of available packages..." echo -n "::: Updating local cache of available packages..."
${UPDATE_PKG_CACHE} &> /dev/null if eval ${UPDATE_PKG_CACHE} &> /dev/null; then
echo " done!" echo " done!"
else
echo -n "\n!!! ERROR - Unable to update package cache. Please try \"${UPDATE_PKG_CACHE}\""
fi
} }
notify_package_updates_available() { notify_package_updates_available() {
@ -1133,7 +1136,7 @@ main() {
fi fi
# Update package cache # Update package cache
update_pacakge_cache update_package_cache
# Notify user of package availability # Notify user of package availability
notify_package_updates_available notify_package_updates_available

View file

@ -274,6 +274,29 @@ def test_installPiholeWeb_already_populated_no_errors(Pihole):
assert 'index.js' in web_directory assert 'index.js' in web_directory
assert 'blockingpage.css' 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 # Helper functions
def mock_command(script, args, container): 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 ''' ''' Allows for setup of commands we don't really want to have to run for real in unit tests '''