import os import shutil import tempfile import unittest from webssh.auth import AuthManager, make_password_hash, verify_password class TestAuth(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() def tearDown(self): shutil.rmtree(self.tmpdir) def test_password_hash(self): encoded = make_password_hash('secret') self.assertTrue(verify_password('secret', encoded)) self.assertFalse(verify_password('wrong', encoded)) self.assertFalse(verify_password('', encoded)) def test_auth_manager_setup_and_verify(self): auth_file = os.path.join(self.tmpdir, 'auth.json') manager = AuthManager(auth_file=auth_file) self.assertFalse(manager.is_configured()) manager.setup('admin', 'secret') self.assertTrue(manager.is_configured()) self.assertTrue(manager.verify('admin', 'secret')) self.assertFalse(manager.verify('admin', 'wrong')) self.assertFalse(manager.verify('other', 'secret')) loaded = AuthManager(auth_file=auth_file) self.assertTrue(loaded.verify('admin', 'secret'))