From 4b08c7f1deca2087a7bcc4b5f40ed3653dc7d7c0 Mon Sep 17 00:00:00 2001 From: Darksider3 Date: Mon, 15 Jun 2020 10:46:21 +0200 Subject: [PATCH] testcfg: Add genRandomString, which automates away a few cases ... of actual value testing which i won't write manually then! :) Also implements them on ListUsers --- private/test/test_Validator.py | 29 ++++++++++++++++++++--------- private/test/testcfg.py | 17 ++++++++++++++++- 2 files changed, 36 insertions(+), 10 deletions(-) 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..2f8510a 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)) + + 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