summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2021-04-16 12:59:17 +0200
committerPierre Ossman <ossman@cendio.se>2021-04-16 12:59:17 +0200
commit100a776409af402d4de28f67a5c0de6233df2cbd (patch)
tree246efdca38a898e8f1481f2fdc73c29c4dafdf37
parent984dcc62d3e2730997738d8086b3208427a6a661 (diff)
downloadwebsockify-100a776409af402d4de28f67a5c0de6233df2cbd.tar.gz
Add unit tests for ReadOnlyTokenFile
-rw-r--r--tests/test_token_plugins.py33
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):