aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests
diff options
context:
space:
mode:
authorLane Kolbly <lane.kolbly@ni.com>2020-10-08 17:03:11 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-10-15 16:00:54 -0500
commit0167ad7608adb170970458b19735738808f0c5c8 (patch)
tree85427c21ca1d3d3c7222a56087c3488fdae49e6e /host/tests
parentc484b79a7672d6c5d0886199955b015d1b4bc387 (diff)
downloaduhd-0167ad7608adb170970458b19735738808f0c5c8.tar.gz
uhd-0167ad7608adb170970458b19735738808f0c5c8.tar.bz2
uhd-0167ad7608adb170970458b19735738808f0c5c8.zip
uhd_images_downloader: Add environment variable for http auth
This allows the image downloader to download files from restricted sources using HTTP basic auth, specifying the credentials in the UHD_IMAGES_USER and UHD_IMAGES_PASSWORD environment variables: ``` UHD_IMAGES_USER=lane UHD_IMAGES_PASSWORD=MyS3cretPassword uhd_images_downloader.py ```
Diffstat (limited to 'host/tests')
-rw-r--r--host/tests/CMakeLists.txt1
-rw-r--r--host/tests/uhd_image_downloader_test.py45
2 files changed, 46 insertions, 0 deletions
diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt
index 19d6bd23c..99f4e5eaf 100644
--- a/host/tests/CMakeLists.txt
+++ b/host/tests/CMakeLists.txt
@@ -72,6 +72,7 @@ set(pytest_sources
pyranges_test.py
verify_fbs_test.py
pychdr_parse_test.py
+ uhd_image_downloader_test.py
)
#turn each test cpp file into an executable with an int main() function
diff --git a/host/tests/uhd_image_downloader_test.py b/host/tests/uhd_image_downloader_test.py
new file mode 100644
index 000000000..ef5c0b5a3
--- /dev/null
+++ b/host/tests/uhd_image_downloader_test.py
@@ -0,0 +1,45 @@
+#
+# Copyright 2020 Ettus Research, a National Instruments Brand
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+"""
+Unit test for uhd_images_downloader
+"""
+
+import unittest
+import uhd_images_downloader
+
+def mk_env(username, password):
+ env = {}
+ if username is not None:
+ env[uhd_images_downloader._USERNAME_VARIABLE] = username
+ if password is not None:
+ env[uhd_images_downloader._PASSWORD_VARIABLE] = password
+ return env
+
+class PyImageDownloaderTest(unittest.TestCase):
+ """ Test Python image downloader functionality """
+ def test_parse_auth_works(self):
+ self.assertEqual(
+ uhd_images_downloader.parse_auth(mk_env("bbrother", "2+2=5")),
+ ("bbrother", "2+2=5")
+ )
+
+ def test_parse_auth_empty_on_empty(self):
+ self.assertEqual(
+ uhd_images_downloader.parse_auth(mk_env(None, None)),
+ None
+ )
+ self.assertEqual(
+ uhd_images_downloader.parse_auth(mk_env("", None)),
+ None
+ )
+
+ def test_throws_on_empty_pw(self):
+ with self.assertRaises(RuntimeError):
+ uhd_images_downloader.parse_auth(mk_env("username", None))
+
+ def test_throws_on_empty_username(self):
+ with self.assertRaises(RuntimeError):
+ uhd_images_downloader.parse_auth(mk_env(None, "password"))