uhd/host/tests/uhd_image_downloader_test.py
Lane Kolbly 0167ad7608 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
```
2020-10-15 16:00:54 -05:00

46 lines
1.3 KiB
Python

#
# 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"))