From 0167ad7608adb170970458b19735738808f0c5c8 Mon Sep 17 00:00:00 2001 From: Lane Kolbly Date: Thu, 8 Oct 2020 17:03:11 -0500 Subject: 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 ``` --- host/tests/CMakeLists.txt | 1 + host/tests/uhd_image_downloader_test.py | 45 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 host/tests/uhd_image_downloader_test.py (limited to 'host/tests') 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")) -- cgit v1.2.3