Skip to content

Commit

Permalink
Merge pull request #114 from nansencenter/fix_dl_tests
Browse files Browse the repository at this point in the history
Fix unit tests
  • Loading branch information
aperrin66 authored Sep 5, 2024
2 parents fa0b456 + 61c3999 commit 821ce05
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 6 deletions.
17 changes: 13 additions & 4 deletions tests/test_downloaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,11 @@ def simulate_no_space_left(file, url, connection):
class HTTPDownloaderTestCase(unittest.TestCase):
"""Tests for the HTTPDownloader"""

def setUp(self):
mock.patch('geospaas_processing.utils.REDIS_HOST', None).start()
mock.patch('geospaas_processing.utils.REDIS_PORT', None).start()
self.addCleanup(mock.patch.stopall)

def test_build_oauth2_authentication(self):
"""Test the creation of an OAuth2 object"""
fake_token = {
Expand Down Expand Up @@ -845,7 +850,8 @@ def test_trigger_download_if_no_max_downloads_settings_found(self):
download_manager = downloaders.DownloadManager()
with mock.patch.object(downloaders.DownloadManager, 'get_provider_settings') as mock_p_s:
mock_p_s.return_value = {}
with mock.patch.object(
with mock.patch('os.makedirs'), \
mock.patch.object(
downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
mock_dl_url.return_value='Dataset_1_test.nc'
download_manager.download_dataset(Dataset.objects.get(pk=1), '')
Expand Down Expand Up @@ -888,7 +894,8 @@ def test_download_dataset(self):
'data/provider_settings.yml'))
dataset = Dataset.objects.get(pk=1)
dataset_url = dataset.dataseturi_set.first().uri
with mock.patch.object(downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
with mock.patch('os.makedirs'), \
mock.patch.object(downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
mock_dl_url.return_value = 'dataset_1_file.h5'
result = download_manager.download_dataset(dataset, '')
mock_dl_url.assert_called_with(
Expand Down Expand Up @@ -920,7 +927,8 @@ def test_download_dataset_locked(self):
download_manager = downloaders.DownloadManager()
dataset = Dataset.objects.get(pk=1)
with mock.patch.object(downloaders.DownloadLock, '__enter__') as mock_lock:
with mock.patch.object(
with mock.patch('os.makedirs'), \
mock.patch.object(
downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
mock_lock.return_value = False
with self.assertRaises(downloaders.TooManyDownloadsError):
Expand Down Expand Up @@ -973,7 +981,8 @@ def test_download_no_downloader_found(self):
download_manager.DOWNLOADERS = {}
dataset = Dataset.objects.get(pk=1)

with mock.patch.object(downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
with mock.patch('os.makedirs'), \
mock.patch.object(downloaders.HTTPDownloader, 'check_and_download_url') as mock_dl_url:
with self.assertLogs(downloaders.LOGGER):
with self.assertRaises(KeyError):
download_manager.download_dataset(dataset, '')
Expand Down
13 changes: 11 additions & 2 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ class RedisLockTestCase(unittest.TestCase):
"""Tests for the redis_lock context manager"""

def setUp(self):
patcher = mock.patch.object(utils, 'Redis')
self.redis_patcher = mock.patch.object(utils, 'Redis')
mock.patch.object(utils, 'REDIS_HOST', 'test').start()
mock.patch.object(utils, 'REDIS_PORT', 6379).start()
self.redis_mock = patcher.start()
self.redis_mock = self.redis_patcher.start()
self.addCleanup(mock.patch.stopall)

def test_redis_lock_standard_usage(self):
Expand All @@ -41,6 +41,15 @@ def test_redis_lock_existing_lock(self):
self.assertFalse(acquired)
self.redis_mock.return_value.delete.assert_not_called()

def test_redis_lock_no_redis(self):
"""The lock should always grant access if Redis is not
available
"""
self.redis_patcher.stop()
with mock.patch.object(utils, 'Redis', None):
with utils.redis_lock('id', 'oid') as acquired:
self.assertTrue(acquired)
self.redis_patcher.start()

class UtilsTestCase(unittest.TestCase):
"""Tests for the utility functions"""
Expand Down

0 comments on commit 821ce05

Please sign in to comment.