import unittest
from unittest.mock import patch
class User(object):
def __init__(self):
self.__name = None
self.__authorised_users = ["me", "you"]
local_input = input("please provide your windows 8 character lower case login: ")
if local_input not in self.__authorised_users:
raise ValueError("you have no permission to run this app")
else:
self.__name = local_input
def ignore(func, exception):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except exception:
pass
return wrapper
class TestUser(unittest.TestCase):
def testUserClassFound(self):
self.assertNotIsInstance(ModuleNotFoundError, User)
@patch('builtins.input', lambda *args:"y")
@patch.object(User, '__init__', ignore(User.__init__, ValueError))
def testUserClassInit(self):
local_object = User()
self.assertEqual(local_object._User__name, None)
if __name__ == "__main__":
unittest.main()
aW1wb3J0IHVuaXR0ZXN0CmZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKCmNsYXNzIFVzZXIob2JqZWN0KToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBzZWxmLl9fbmFtZSA9IE5vbmUKICAgICAgICBzZWxmLl9fYXV0aG9yaXNlZF91c2VycyA9IFsibWUiLCAieW91Il0KICAgICAgICBsb2NhbF9pbnB1dCA9IGlucHV0KCJwbGVhc2UgcHJvdmlkZSB5b3VyIHdpbmRvd3MgOCBjaGFyYWN0ZXIgbG93ZXIgY2FzZSBsb2dpbjogIikKICAgICAgICBpZiBsb2NhbF9pbnB1dCBub3QgaW4gc2VsZi5fX2F1dGhvcmlzZWRfdXNlcnM6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInlvdSBoYXZlIG5vIHBlcm1pc3Npb24gdG8gcnVuIHRoaXMgYXBwIikKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLl9fbmFtZSA9IGxvY2FsX2lucHV0CgpkZWYgaWdub3JlKGZ1bmMsIGV4Y2VwdGlvbik6CiAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpOgogICAgICAgIHRyeToKICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQogICAgICAgIGV4Y2VwdCBleGNlcHRpb246CiAgICAgICAgICAgIHBhc3MKICAgIHJldHVybiB3cmFwcGVyCgpjbGFzcyBUZXN0VXNlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICBkZWYgdGVzdFVzZXJDbGFzc0ZvdW5kKHNlbGYpOgogICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShNb2R1bGVOb3RGb3VuZEVycm9yLCBVc2VyKQoKICAgIEBwYXRjaCgnYnVpbHRpbnMuaW5wdXQnLCBsYW1iZGEgKmFyZ3M6InkiKQogICAgQHBhdGNoLm9iamVjdChVc2VyLCAnX19pbml0X18nLCBpZ25vcmUoVXNlci5fX2luaXRfXywgVmFsdWVFcnJvcikpCiAgICBkZWYgdGVzdFVzZXJDbGFzc0luaXQoc2VsZik6CiAgICAgICAgbG9jYWxfb2JqZWN0ID0gVXNlcigpCiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9vYmplY3QuX1VzZXJfX25hbWUsIE5vbmUpCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgdW5pdHRlc3QubWFpbigp