I am trying to write unit tests for a python script. My script takes user input whether proxy credentials are required or not. I have seen several answer-1, answer-2, answer-3 like executing with subprocess and pexpect. But my intention is that after taking user input, I have to execute other functions in the script. So executing the script doesn't help. My python script is below. Can someone provide me suggestions or with a way to achieve this?
import getpass
class ProxyDetails:
def __init__(self,option):
self.option = option
self.proxy_option = self.get_web_proxy_details()
self.call_request()
self.parse_test()
def get_web_proxy_details(self):
if self.option == "Default":
choice = raw_input("Enter credentials : Y/N ").lower()
if choice.lower() == "y":
self.proxy_username = getpass.getpass("Enter Username for Proxy : ")
self.proxy_password = getpass.getpass("Enter Password for Proxy : ")
self.requireProxyCredentials = "Y"
elif choice.lower() == "n":
print("credentials are not present ")
else:
print("proxy is none ")
def call_request(self):
# this method will do API call
pass
def parse_test(self):
#this method will parse the json
pass
obj=ProxyDetails(option="Default")
I want to send input value when Enter credentials : Y/N
is prompted.