diff options
author | Pierre Ossman <ossman@cendio.se> | 2021-04-16 12:59:17 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2021-04-16 12:59:17 +0200 |
commit | 100a776409af402d4de28f67a5c0de6233df2cbd (patch) | |
tree | 246efdca38a898e8f1481f2fdc73c29c4dafdf37 /tests | |
parent | 984dcc62d3e2730997738d8086b3208427a6a661 (diff) | |
download | websockify-100a776409af402d4de28f67a5c0de6233df2cbd.tar.gz |
Add unit tests for ReadOnlyTokenFile
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_token_plugins.py | 33 |
1 files 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): |