Skip to content
Snippets Groups Projects
Commit 23acc9c5 authored by Jedrzej Rybicki's avatar Jedrzej Rybicki
Browse files

json user database more less covered with tests

parent 3f30551d
No related branches found
No related tags found
No related merge requests found
Pipeline #69109 passed
import unittest import unittest
from apiserver.security import User, JsonDBInterface from apiserver.security import User, JsonDBInterface, UserInDB
from apiserver.config import ApiserverSettings from apiserver.config import ApiserverSettings
from collections import namedtuple from collections import namedtuple
import os import os
import pathlib import pathlib
import shutil import shutil
import random
class UserTests(unittest.TestCase): class UserTests(unittest.TestCase):
...@@ -13,6 +14,8 @@ class UserTests(unittest.TestCase): ...@@ -13,6 +14,8 @@ class UserTests(unittest.TestCase):
self.path = '/tmp/userstorage/' self.path = '/tmp/userstorage/'
pathlib.Path(self.path).mkdir(parents=True, exist_ok=True) pathlib.Path(self.path).mkdir(parents=True, exist_ok=True)
settings = ApiserverSettings(userdb_path=os.path.join(self.path, 'users.json')) settings = ApiserverSettings(userdb_path=os.path.join(self.path, 'users.json'))
self.a_user = UserInDB(username='test7', email='jo@go.com', hashed_password='42')
self.b_user = UserInDB(username='8test', email='n@co.go', hashed_password='12121')
self.userdb = JsonDBInterface(settings=settings) self.userdb = JsonDBInterface(settings=settings)
...@@ -29,4 +32,51 @@ class UserTests(unittest.TestCase): ...@@ -29,4 +32,51 @@ class UserTests(unittest.TestCase):
def test_empty_get(self): def test_empty_get(self):
self.assertRaises(Exception, self.userdb.get, 'foo') self.assertRaises(Exception, self.userdb.get, 'foo')
\ No newline at end of file def test_adding(self):
self.userdb.add(user=self.a_user)
lst = self.userdb.list()
self.assertEquals(len(lst), 1, 'Should not be empty')
g_user = self.userdb.get(username='test7')
self.assertEqual(g_user.username, self.a_user.username)
self.assertDictEqual(g_user.dict(), self.a_user.dict())
def test_add_again(self):
self.userdb.add(user=self.a_user)
self.assertRaises(Exception, self.userdb.add, self.a_user)
def test_delete(self):
self.userdb.add(user=self.a_user)
lst = self.userdb.list()
self.assertEquals(len(lst), 1, 'Should not be empty')
self.userdb.delete(username='test7')
lst = self.userdb.list()
self.assertEquals(len(lst), 0, 'Should be empty')
self.userdb.add(user=self.a_user)
self.userdb.add(user=self.b_user)
self.assertEquals(len(self.userdb.list()), 2, 'Should not be empty')
self.assertListEqual(self.userdb.list(), [self.a_user.username, self.b_user.username])
self.userdb.delete(username='test7')
self.assertListEqual(self.userdb.list(), [self.b_user.username])
self.userdb.delete(username='test7')
self.assertListEqual(self.userdb.list(), [self.b_user.username])
self.userdb.delete(username=self.b_user.username)
self.assertListEqual(self.userdb.list(), [])
def test_massive_add(self):
for n in range(0,25):
self.userdb.add(UserInDB(username=f"user_{n}", email='jo@go.com', hashed_password=f"{random.randint(0,200)}"))
self.assertEqual(len(self.userdb.list()), 25)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment