From 100a776409af402d4de28f67a5c0de6233df2cbd Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 16 Apr 2021 12:59:17 +0200 Subject: [PATCH] Add unit tests for ReadOnlyTokenFile --- tests/test_token_plugins.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/tests/test_token_plugins.py b/tests/test_token_plugins.py index 5d63a2b..05d5bef 100644 --- a/tests/test_token_plugins.py +++ b/tests/test_token_plugins.py @@ -3,10 +3,39 @@ """ Unit tests for Token plugins""" import unittest -from unittest.mock import patch +from unittest.mock import patch, mock_open, MagicMock from jwcrypto import jwt -from websockify.token_plugins import JWTTokenApi +from websockify.token_plugins import ReadOnlyTokenFile, JWTTokenApi + +class ReadOnlyTokenFileTestCase(unittest.TestCase): + patch('os.path.isdir', MagicMock(return_value=False)) + def test_empty(self): + plugin = ReadOnlyTokenFile('configfile') + + config = "" + pyopen = mock_open(read_data=config) + + with patch("websockify.token_plugins.open", pyopen): + result = plugin.lookup('testhost') + + pyopen.assert_called_once_with('configfile') + self.assertIsNone(result) + + patch('os.path.isdir', MagicMock(return_value=False)) + def test_simple(self): + plugin = ReadOnlyTokenFile('configfile') + + config = "testhost: remote_host:remote_port" + pyopen = mock_open(read_data=config) + + with patch("websockify.token_plugins.open", pyopen): + result = plugin.lookup('testhost') + + pyopen.assert_called_once_with('configfile') + self.assertIsNotNone(result) + self.assertEqual(result[0], "remote_host") + self.assertEqual(result[1], "remote_port") class JWSTokenTestCase(unittest.TestCase): def test_asymmetric_jws_token_plugin(self):