29 lines
1.0 KiB
Python
29 lines
1.0 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')
|