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'))