diff --git a/private/test/test_ListUsers.py b/private/test/test_ListUsers.py index 27a158a..d3e5ff6 100644 --- a/private/test/test_ListUsers.py +++ b/private/test/test_ListUsers.py @@ -13,6 +13,12 @@ class TestListUsers(unittest.TestCase): except IOError as fs_err: self.fail(fs_err) + def test_singleUser(self): + try: + ListUsers(testcfg.test_db, single_user=testcfg.assured_user) + except Exception: + self.fail() + def test_output_as_list(self): # count newlines in string, everything under 3 is wrong, and above 20 too. out = self.list.output_as_list().splitlines() diff --git a/private/test/test_Validator.py b/private/test/test_Validator.py index 3ead2a8..866a55d 100644 --- a/private/test/test_Validator.py +++ b/private/test/test_Validator.py @@ -15,6 +15,9 @@ class TestValidator(unittest.TestCase): for name in testcfg.Validator_Invalid_Users_Chars_List: self.assertFalse(self.validator.checkUsernameCharacters(name), name) + for name in testcfg.genRandomString(): + self.assertFalse(self.validator.checkUsernameCharacters(name), name) + def test_check_username_length(self): for name in testcfg.Validator_Valid_Users_Length: self.assertTrue(self.validator.checkUsernameLength(name)) @@ -25,20 +28,22 @@ class TestValidator(unittest.TestCase): for name in testcfg.Validator_Valid_Mail: self.assertTrue(self.validator.checkEmail(name)) for name in testcfg.Validator_Invalid_Mail: + self.assertFalse(self.validator.checkEmail(name), name) + + for name in testcfg.genRandomString(): self.assertFalse(self.validator.checkEmail(name)) def test_check_user_exists(self): self.assertTrue(self.validator.checkUserExists("root")) self.assertTrue(self.validator.checkUserExists("nobody")) # remove in case there exists an actual system without - self.assertFalse(self.validator.checkUserExists("blsjdkfl")) - self.assertFalse(self.validator.checkUserExists("b90123ijk")) - self.assertFalse(self.validator.checkUserExists("curArrSosss")) - self.assertFalse(self.validator.checkUserExists("123WildPack123")) - # are there any more users which are assertable? + + for User in testcfg.genRandomString(): + self.assertFalse(self.validator.checkUserExists(User)) def test_check_user_in_db(self): for name in testcfg.Validator_db_user_exists: self.assertTrue(self.validator.checkUserInDB(name, testcfg.test_db)) + for name in testcfg.Validator_db_user_inexistent: self.assertFalse(self.validator.checkUserInDB(name, testcfg.test_db)) @@ -51,12 +56,18 @@ class TestValidator(unittest.TestCase): def test_check_datetime_format(self): for cur in testcfg.Validator_valid_datetime: self.assertTrue(self.validator.checkDatetimeFormat(cur)) + for cur in testcfg.Validator_invalid_checkname_names: + self.assertFalse(self.validator.checkDatetimeFormat(cur)) + for cur in testcfg.genRandomString(): + self.assertFalse(self.validator.checkDatetimeFormat(cur)) def test_check_name(self): - for checkname in testcfg.Validator_valid_checkname_names: - self.assertTrue(self.validator.checkName(checkname)) - for checkname in testcfg.Validator_invalid_checkname_names: - self.assertFalse(self.validator.checkName(checkname)) + for name in testcfg.Validator_valid_checkname_names: + self.assertTrue(self.validator.checkName(name)) + for name in testcfg.Validator_invalid_checkname_names: + self.assertFalse(self.validator.checkName(name)) + for name in testcfg.genRandomString(alphabet="\n\b\r\t\f"): + self.assertFalse(self.validator.checkName(name)) def test_check_import_file(self): self.assertTrue(self.validator.checkImportFile(testcfg.test_import_csv, diff --git a/private/test/testcfg.py b/private/test/testcfg.py index 1150e1f..a753802 100644 --- a/private/test/testcfg.py +++ b/private/test/testcfg.py @@ -1,3 +1,16 @@ +test_random_iterations: int = 50 + + +def genRandomString(iterations: int = test_random_iterations, size: int = 20, alphabet: str = ""): + import random, string + if alphabet == "": + letters = string.digits + string.printable + string.ascii_letters + else: + letters = alphabet + for i in range(iterations): + yield ''.join(random.choice(letters) for i in range(size)).capitalize() + +assured_user: str = "darksider3" test_backup_csv: str = "test/testbackup.csv" test_db: str = "./test/applications.sqlite" test_import_csv: str = "test/testimport.csv" @@ -39,7 +52,9 @@ NrRFi9wrf+M7Q== schacon@mylaptop.local"""] Validator_invalid_ssh: list = ["lol.", "ssh-rsa lol."] #Y-%m-%d %H:%M:%S -Validator_valid_datetime: list = ["2020-10-07 14:15:30"] + +Validator_valid_datetime: list = ["2020-10-07 14:15:30", "2020-01-07 12:23:11"] +Validator_ivvalid_datetime: list = ["20201007 14:15:30", "2020-01-07 122311"] Validator_valid_checkname_names: list = ["HalloWelt"] Validator_invalid_checkname_names: list = ["\\n", "\n\b"] \ No newline at end of file