34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
"""Unit tests for Authentication plugins"""
|
|
|
|
from websockify.auth_plugins import BasicHTTPAuth, AuthenticationError
|
|
import unittest
|
|
|
|
|
|
class BasicHTTPAuthTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.plugin = BasicHTTPAuth("Aladdin:open sesame")
|
|
|
|
def test_no_auth(self):
|
|
headers = {}
|
|
self.assertRaises(
|
|
AuthenticationError, self.plugin.authenticate, headers, "localhost", "1234"
|
|
)
|
|
|
|
def test_invalid_password(self):
|
|
headers = {"Authorization": "Basic QWxhZGRpbjpzZXNhbWUgc3RyZWV0"}
|
|
self.assertRaises(
|
|
AuthenticationError, self.plugin.authenticate, headers, "localhost", "1234"
|
|
)
|
|
|
|
def test_valid_password(self):
|
|
headers = {"Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="}
|
|
self.plugin.authenticate(headers, "localhost", "1234")
|
|
|
|
def test_garbage_auth(self):
|
|
headers = {"Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
|
|
self.assertRaises(
|
|
AuthenticationError, self.plugin.authenticate, headers, "localhost", "1234"
|
|
)
|