import unittest
class TestPasswordGenerator(unittest.TestCase):
def test_length(self):
password = generate_custom_password(12)
self.assertEqual(len(password), 12)
def test_character_types(self):
password = generate_custom_password(12, uppercase=True, lowercase=False, digits=False, special=False)
self.assertTrue(all(c in string.ascii_uppercase for c in password))
def test_no_characters_selected(self):
with self.assertRaises(ValueError):
generate_custom_password(12, uppercase=False, lowercase=False, digits=False, special=False)
if __name__ == "__main__":
unittest.main()