fork download
  1. import unittest
  2. from unittest.mock import patch
  3.  
  4. class User(object):
  5. def __init__(self):
  6. self.__name = None
  7. self.__authorised_users = ["me", "you"]
  8. local_input = input("please provide your windows 8 character lower case login: ")
  9. if local_input not in self.__authorised_users:
  10. raise ValueError("you have no permission to run this app")
  11. else:
  12. self.__name = local_input
  13.  
  14. def ignore(func, exception):
  15. def wrapper(*args, **kwargs):
  16. try:
  17. return func(*args, **kwargs)
  18. except exception:
  19. pass
  20. return wrapper
  21.  
  22. class TestUser(unittest.TestCase):
  23. def testUserClassFound(self):
  24. self.assertNotIsInstance(ModuleNotFoundError, User)
  25.  
  26. @patch('builtins.input', lambda *args:"y")
  27. @patch.object(User, '__init__', ignore(User.__init__, ValueError))
  28. def testUserClassInit(self):
  29. local_object = User()
  30. self.assertEqual(local_object._User__name, None)
  31.  
  32. if __name__ == "__main__":
  33. unittest.main()
Success #stdin #stdout #stderr 0.08s 17296KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK