Files
webssh/tests/test_storage.py
T
2026-06-13 12:11:36 +08:00

47 lines
1.4 KiB
Python

import os
import shutil
import tempfile
import unittest
from webssh.storage import ConnectionStore
class TestConnectionStore(unittest.TestCase):
def setUp(self):
self.tmpdir = tempfile.mkdtemp()
self.store = ConnectionStore(os.path.join(self.tmpdir,
'connections.json'))
def tearDown(self):
shutil.rmtree(self.tmpdir)
def test_upsert_list_and_delete(self):
profile = self.store.upsert('admin', {
'hostname': '127.0.0.1',
'port': 22,
'username': 'root',
'term': 'xterm-256color',
'auth_type': 'password'
})
self.assertEqual(profile['title'], 'root@127.0.0.1:22')
self.assertEqual([profile], self.store.list('admin'))
self.assertEqual([], self.store.list('other'))
updated = self.store.upsert('admin', {
'hostname': '127.0.0.1',
'port': 22,
'username': 'root',
'term': 'xterm',
'auth_type': 'privatekey'
})
self.assertEqual(profile['id'], updated['id'])
self.assertEqual(1, len(self.store.list('admin')))
self.assertEqual('xterm', self.store.list('admin')[0]['term'])
self.assertTrue(self.store.delete('admin', profile['id']))
self.assertFalse(self.store.delete('admin', profile['id']))
self.assertEqual([], self.store.list('admin'))