Skip to content

Commit 9a00a52

Browse files
committed
fixed nested async with
1 parent b595e59 commit 9a00a52

File tree

1 file changed

+112
-115
lines changed

1 file changed

+112
-115
lines changed

tests/enes/chatgpt.py

Lines changed: 112 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -25,45 +25,44 @@ async def test_chatgpt_single_prompt():
2525

2626
async with client.engine:
2727
scraper = client.scrape.chatgpt
28-
async with scraper.engine:
29-
print("\n🤖 Testing ChatGPT single prompt...")
30-
print("📋 Prompt: 'Explain async programming in Python in 2 sentences'")
31-
32-
try:
33-
result = await scraper.prompt_async(
34-
prompt="Explain async programming in Python in 2 sentences",
35-
web_search=False,
36-
poll_timeout=180
37-
)
38-
39-
print(f"\n✅ API call succeeded")
40-
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
41-
42-
print(f"\n📊 Result analysis:")
43-
print(f" - result.success: {result.success}")
44-
print(f" - result.data type: {type(result.data)}")
45-
46-
if result.data:
47-
print(f"\n✅ Got ChatGPT response:")
48-
if isinstance(result.data, list) and len(result.data) > 0:
49-
response = result.data[0]
50-
print(f" - Answer: {response.get('answer_text', 'N/A')[:200]}...")
51-
print(f" - Model: {response.get('model', 'N/A')}")
52-
print(f" - Country: {response.get('country', 'N/A')}")
53-
elif isinstance(result.data, dict):
54-
print(f" - Answer: {result.data.get('answer_text', 'N/A')[:200]}...")
55-
print(f" - Model: {result.data.get('model', 'N/A')}")
56-
elif isinstance(result.data, str):
57-
print(f" - Response: {result.data[:200]}...")
58-
else:
59-
print(f" Unexpected data type: {type(result.data)}")
28+
print("\n🤖 Testing ChatGPT single prompt...")
29+
print("📋 Prompt: 'Explain async programming in Python in 2 sentences'")
30+
31+
try:
32+
result = await scraper.prompt_async(
33+
prompt="Explain async programming in Python in 2 sentences",
34+
web_search=False,
35+
poll_timeout=180
36+
)
37+
38+
print(f"\n✅ API call succeeded")
39+
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
40+
41+
print(f"\n📊 Result analysis:")
42+
print(f" - result.success: {result.success}")
43+
print(f" - result.data type: {type(result.data)}")
44+
45+
if result.data:
46+
print(f"\n✅ Got ChatGPT response:")
47+
if isinstance(result.data, list) and len(result.data) > 0:
48+
response = result.data[0]
49+
print(f" - Answer: {response.get('answer_text', 'N/A')[:200]}...")
50+
print(f" - Model: {response.get('model', 'N/A')}")
51+
print(f" - Country: {response.get('country', 'N/A')}")
52+
elif isinstance(result.data, dict):
53+
print(f" - Answer: {result.data.get('answer_text', 'N/A')[:200]}...")
54+
print(f" - Model: {result.data.get('model', 'N/A')}")
55+
elif isinstance(result.data, str):
56+
print(f" - Response: {result.data[:200]}...")
6057
else:
61-
print(f"\n❌ No response data returned")
58+
print(f" Unexpected data type: {type(result.data)}")
59+
else:
60+
print(f"\n❌ No response data returned")
6261

63-
except Exception as e:
64-
print(f"\n❌ Error: {e}")
65-
import traceback
66-
traceback.print_exc()
62+
except Exception as e:
63+
print(f"\n❌ Error: {e}")
64+
import traceback
65+
traceback.print_exc()
6766

6867

6968
async def test_chatgpt_web_search():
@@ -77,46 +76,45 @@ async def test_chatgpt_web_search():
7776

7877
async with client.engine:
7978
scraper = client.scrape.chatgpt
80-
async with scraper.engine:
81-
print("\n🔍 Testing ChatGPT with web search...")
82-
print("📋 Prompt: 'What are the latest developments in AI in 2024?'")
83-
print("🌐 Web search: Enabled")
84-
85-
try:
86-
result = await scraper.prompt_async(
87-
prompt="What are the latest developments in AI in 2024?",
88-
web_search=True,
89-
poll_timeout=180
90-
)
91-
92-
print(f"\n✅ API call succeeded")
93-
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
94-
95-
print(f"\n📊 Result analysis:")
96-
print(f" - result.success: {result.success}")
97-
print(f" - result.data type: {type(result.data)}")
98-
99-
if result.data:
100-
print(f"\n✅ Got ChatGPT response with web search:")
101-
if isinstance(result.data, list) and len(result.data) > 0:
102-
response = result.data[0]
103-
print(f" - Answer: {response.get('answer_text', 'N/A')[:200]}...")
104-
print(f" - Model: {response.get('model', 'N/A')}")
105-
print(f" - Web search triggered: {response.get('web_search_triggered', False)}")
106-
elif isinstance(result.data, dict):
107-
print(f" - Answer: {result.data.get('answer_text', 'N/A')[:200]}...")
108-
print(f" - Web search triggered: {result.data.get('web_search_triggered', False)}")
109-
elif isinstance(result.data, str):
110-
print(f" - Response: {result.data[:200]}...")
111-
else:
112-
print(f" Unexpected data type: {type(result.data)}")
79+
print("\n🔍 Testing ChatGPT with web search...")
80+
print("📋 Prompt: 'What are the latest developments in AI in 2024?'")
81+
print("🌐 Web search: Enabled")
82+
83+
try:
84+
result = await scraper.prompt_async(
85+
prompt="What are the latest developments in AI in 2024?",
86+
web_search=True,
87+
poll_timeout=180
88+
)
89+
90+
print(f"\n✅ API call succeeded")
91+
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
92+
93+
print(f"\n📊 Result analysis:")
94+
print(f" - result.success: {result.success}")
95+
print(f" - result.data type: {type(result.data)}")
96+
97+
if result.data:
98+
print(f"\n✅ Got ChatGPT response with web search:")
99+
if isinstance(result.data, list) and len(result.data) > 0:
100+
response = result.data[0]
101+
print(f" - Answer: {response.get('answer_text', 'N/A')[:200]}...")
102+
print(f" - Model: {response.get('model', 'N/A')}")
103+
print(f" - Web search triggered: {response.get('web_search_triggered', False)}")
104+
elif isinstance(result.data, dict):
105+
print(f" - Answer: {result.data.get('answer_text', 'N/A')[:200]}...")
106+
print(f" - Web search triggered: {result.data.get('web_search_triggered', False)}")
107+
elif isinstance(result.data, str):
108+
print(f" - Response: {result.data[:200]}...")
113109
else:
114-
print(f"\n❌ No response data returned")
110+
print(f" Unexpected data type: {type(result.data)}")
111+
else:
112+
print(f"\n❌ No response data returned")
115113

116-
except Exception as e:
117-
print(f"\n❌ Error: {e}")
118-
import traceback
119-
traceback.print_exc()
114+
except Exception as e:
115+
print(f"\n❌ Error: {e}")
116+
import traceback
117+
traceback.print_exc()
120118

121119

122120
async def test_chatgpt_multiple_prompts():
@@ -130,47 +128,46 @@ async def test_chatgpt_multiple_prompts():
130128

131129
async with client.engine:
132130
scraper = client.scrape.chatgpt
133-
async with scraper.engine:
134-
print("\n📝 Testing ChatGPT batch prompts...")
135-
print("📋 Prompts: ['What is Python?', 'What is JavaScript?']")
136-
137-
try:
138-
result = await scraper.prompts_async(
139-
prompts=[
140-
"What is Python in one sentence?",
141-
"What is JavaScript in one sentence?"
142-
],
143-
web_searches=[False, False],
144-
poll_timeout=180
145-
)
146-
147-
print(f"\n✅ API call succeeded")
148-
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
149-
150-
print(f"\n📊 Result analysis:")
151-
print(f" - result.success: {result.success}")
152-
print(f" - result.data type: {type(result.data)}")
153-
154-
if result.data:
155-
if isinstance(result.data, list):
156-
print(f"\n✅ Got {len(result.data)} responses:")
157-
for i, response in enumerate(result.data, 1):
158-
print(f"\n Response {i}:")
159-
if isinstance(response, dict):
160-
print(f" - Prompt: {response.get('input', {}).get('prompt', 'N/A')}")
161-
print(f" - Answer: {response.get('answer_text', 'N/A')[:150]}...")
162-
print(f" - Model: {response.get('model', 'N/A')}")
163-
else:
164-
print(f" - Response: {str(response)[:100]}...")
165-
else:
166-
print(f" Unexpected data type: {type(result.data)}")
131+
print("\n📝 Testing ChatGPT batch prompts...")
132+
print("📋 Prompts: ['What is Python?', 'What is JavaScript?']")
133+
134+
try:
135+
result = await scraper.prompts_async(
136+
prompts=[
137+
"What is Python in one sentence?",
138+
"What is JavaScript in one sentence?"
139+
],
140+
web_searches=[False, False],
141+
poll_timeout=180
142+
)
143+
144+
print(f"\n✅ API call succeeded")
145+
print(f"⏱️ Elapsed: {result.elapsed_ms():.2f}ms" if result.elapsed_ms() else "")
146+
147+
print(f"\n📊 Result analysis:")
148+
print(f" - result.success: {result.success}")
149+
print(f" - result.data type: {type(result.data)}")
150+
151+
if result.data:
152+
if isinstance(result.data, list):
153+
print(f"\n✅ Got {len(result.data)} responses:")
154+
for i, response in enumerate(result.data, 1):
155+
print(f"\n Response {i}:")
156+
if isinstance(response, dict):
157+
print(f" - Prompt: {response.get('input', {}).get('prompt', 'N/A')}")
158+
print(f" - Answer: {response.get('answer_text', 'N/A')[:150]}...")
159+
print(f" - Model: {response.get('model', 'N/A')}")
160+
else:
161+
print(f" - Response: {str(response)[:100]}...")
167162
else:
168-
print(f"\n❌ No responses returned")
169-
170-
except Exception as e:
171-
print(f"\n❌ Error: {e}")
172-
import traceback
173-
traceback.print_exc()
163+
print(f" Unexpected data type: {type(result.data)}")
164+
else:
165+
print(f"\n❌ No responses returned")
166+
167+
except Exception as e:
168+
print(f"\n❌ Error: {e}")
169+
import traceback
170+
traceback.print_exc()
174171

175172

176173
if __name__ == "__main__":

0 commit comments

Comments
 (0)