47 lines
1.4 KiB
Python
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'))
|
|
|