@@ -29,81 +29,81 @@ def process_request(self):
2929 )
3030
3131
32- # class WebhookTest(unittest.TestCase):
33- # def setUp(self):
34- # api_key = os.environ["TWILIO_API_KEY"]
35- # api_secret = os.environ["TWILIO_API_SECRET"]
36- # account_sid = os.environ["TWILIO_ACCOUNT_SID"]
37- # self.client = Client(api_key, api_secret, account_sid)
38- #
39- # portNumber = 7777
40- # self.validation_server = HTTPServer(("", portNumber), RequestHandler)
41- # self.tunnel = ngrok.connect(portNumber)
42- # self.flow_sid = ""
43- # _thread.start_new_thread(self.start_http_server, ())
44- #
45- # def start_http_server(self):
46- # self.validation_server.serve_forever()
47- #
48- # def tearDown(self):
49- # self.client.studio.v2.flows(self.flow_sid).delete()
50- # ngrok.kill()
51- # self.validation_server.shutdown()
52- # self.validation_server.server_close()
53- #
54- # def create_studio_flow(self, url, method):
55- # flow = self.client.studio.v2.flows.create(
56- # friendly_name="Python Cluster Test Flow",
57- # status="published",
58- # definition={
59- # "description": "Studio Flow",
60- # "states": [
61- # {
62- # "name": "Trigger",
63- # "type": "trigger",
64- # "transitions": [
65- # {
66- # "next": "httpRequest",
67- # "event": "incomingRequest",
68- # },
69- # ],
70- # "properties": {},
71- # },
72- # {
73- # "name": "httpRequest",
74- # "type": "make-http-request",
75- # "transitions": [],
76- # "properties": {
77- # "method": method,
78- # "content_type": "application/x-www-form-urlencoded;charset=utf-8",
79- # "url": url,
80- # },
81- # },
82- # ],
83- # "initial_state": "Trigger",
84- # "flags": {
85- # "allow_concurrent_calls": True,
86- # },
87- # },
88- # )
89- # return flow
90- #
91- # def validate(self, method):
92- # flow = self.create_studio_flow(url=self.tunnel.public_url, method=method)
93- # self.flow_sid = flow.sid
94- # time.sleep(5)
95- # self.client.studio.v2.flows(self.flow_sid).executions.create(
96- # to="to", from_="from"
97- # )
98- #
99- # def test_get(self):
100- # time.sleep(5)
101- # self.validate("GET")
102- # time.sleep(5)
103- # self.assertEqual(RequestHandler.is_request_valid, True)
104- #
105- # def test_post(self):
106- # time.sleep(5)
107- # self.validate("POST")
108- # time.sleep(5)
109- # self.assertEqual(RequestHandler.is_request_valid, True)
32+ class WebhookTest (unittest .TestCase ):
33+ def setUp (self ):
34+ api_key = os .environ ["TWILIO_API_KEY" ]
35+ api_secret = os .environ ["TWILIO_API_SECRET" ]
36+ account_sid = os .environ ["TWILIO_ACCOUNT_SID" ]
37+ self .client = Client (api_key , api_secret , account_sid )
38+
39+ portNumber = 7777
40+ self .validation_server = HTTPServer (("" , portNumber ), RequestHandler )
41+ self .tunnel = ngrok .connect (portNumber )
42+ self .flow_sid = ""
43+ _thread .start_new_thread (self .start_http_server , ())
44+
45+ def start_http_server (self ):
46+ self .validation_server .serve_forever ()
47+
48+ def tearDown (self ):
49+ self .client .studio .v2 .flows (self .flow_sid ).delete ()
50+ ngrok .kill ()
51+ self .validation_server .shutdown ()
52+ self .validation_server .server_close ()
53+
54+ def create_studio_flow (self , url , method ):
55+ flow = self .client .studio .v2 .flows .create (
56+ friendly_name = "Python Cluster Test Flow" ,
57+ status = "published" ,
58+ definition = {
59+ "description" : "Studio Flow" ,
60+ "states" : [
61+ {
62+ "name" : "Trigger" ,
63+ "type" : "trigger" ,
64+ "transitions" : [
65+ {
66+ "next" : "httpRequest" ,
67+ "event" : "incomingRequest" ,
68+ },
69+ ],
70+ "properties" : {},
71+ },
72+ {
73+ "name" : "httpRequest" ,
74+ "type" : "make-http-request" ,
75+ "transitions" : [],
76+ "properties" : {
77+ "method" : method ,
78+ "content_type" : "application/x-www-form-urlencoded;charset=utf-8" ,
79+ "url" : url ,
80+ },
81+ },
82+ ],
83+ "initial_state" : "Trigger" ,
84+ "flags" : {
85+ "allow_concurrent_calls" : True ,
86+ },
87+ },
88+ )
89+ return flow
90+
91+ def validate (self , method ):
92+ flow = self .create_studio_flow (url = self .tunnel .public_url , method = method )
93+ self .flow_sid = flow .sid
94+ time .sleep (5 )
95+ self .client .studio .v2 .flows (self .flow_sid ).executions .create (
96+ to = "to" , from_ = "from"
97+ )
98+
99+ def test_get (self ):
100+ time .sleep (5 )
101+ self .validate ("GET" )
102+ time .sleep (5 )
103+ self .assertEqual (RequestHandler .is_request_valid , True )
104+
105+ def test_post (self ):
106+ time .sleep (5 )
107+ self .validate ("POST" )
108+ time .sleep (5 )
109+ self .assertEqual (RequestHandler .is_request_valid , True )
0 commit comments