Skip to content

Commit 0a67cd1

Browse files
committed
finish
1 parent 329f681 commit 0a67cd1

File tree

3 files changed

+130
-124
lines changed

3 files changed

+130
-124
lines changed

eng/templates/jobs/ci-emulator-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ jobs:
9090
docker compose -f ${{ parameters.PROJECT_DIRECTORY }}/tests/emulator_tests/utils/eventhub/docker-compose.yml up -d
9191
displayName: 'Install Azurite and Start EventHub Emulator'
9292
- bash: |
93-
python -m pytest -q --dist loadfile --ignore=tests/emulator_tests/test_servicebus_functions.py tests/emulator_tests/test_blob_functions.py
93+
python -m pytest -q --dist loadfile --ignore=tests/emulator_tests/test_servicebus_functions.py tests/emulator_tests
9494
env:
9595
AzureWebJobsStorage: $(AzureWebJobsStorage)
9696
AZURE_STORAGE_CONNECTION_STRING: $(AZURE_STORAGE_CONNECTION_STRING)

eng/templates/official/jobs/ci-e2e-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ jobs:
1919
EVENTGRID_URI: $(LinuxEventGridTopicUriString37)
2020
EVENTGRID_CONNECTION: $(LinuxEventGridConnectionKeyString37)
2121
Python38:
22-
STORAGE_CONNECTION: $(LinuxStorageConnectionString38)
2322
PYTHON_VERSION: '3.8'
23+
STORAGE_CONNECTION: $(LinuxStorageConnectionString38)
2424
SQL_CONNECTION: $(LinuxSqlConnectionString38)
2525
EVENTGRID_URI: $(LinuxEventGridTopicUriString38)
2626
EVENTGRID_CONNECTION: $(LinuxEventGridConnectionKeyString38)

workers/tests/emulator_tests/test_blob_functions.py

Lines changed: 128 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,21 @@ class TestBlobFunctions(testutils.WebHostTestCase):
1414
def get_script_dir(cls):
1515
return testutils.EMULATOR_TESTS_FOLDER / 'blob_functions'
1616

17-
# def test_blob_io_str(self):
18-
# r = self.webhost.request('POST', 'put_blob_str', data='test-data')
19-
# self.assertEqual(r.status_code, 200)
20-
# self.assertEqual(r.text, 'OK')
17+
def test_blob_io_str(self):
18+
r = self.webhost.request('POST', 'put_blob_str', data='test-data')
19+
self.assertEqual(r.status_code, 200)
20+
self.assertEqual(r.text, 'OK')
2121

22-
# r = self.webhost.request('GET', 'get_blob_str')
23-
# self.assertEqual(r.status_code, 200)
24-
# self.assertEqual(r.text, 'test-data')
22+
r = self.webhost.request('GET', 'get_blob_str')
23+
self.assertEqual(r.status_code, 200)
24+
self.assertEqual(r.text, 'test-data')
2525

26-
# r = self.webhost.request('GET', 'get_blob_as_str')
27-
# self.assertEqual(r.status_code, 200)
28-
# self.assertEqual(r.text, 'test-data')
26+
r = self.webhost.request('GET', 'get_blob_as_str')
27+
self.assertEqual(r.status_code, 200)
28+
self.assertEqual(r.text, 'test-data')
2929

30+
@skipIf(sys.version_info.minor >= 13,
31+
'Investigating large blob test failures on Python 3.13')
3032
def test_blob_io_large_str(self):
3133
large_string = 'DummyDataDummyDataDummyData' * 1024 * 1024 # 27 MB
3234

@@ -42,113 +44,117 @@ def test_blob_io_large_str(self):
4244
self.assertEqual(r.status_code, 200)
4345
self.assertEqual(r.text, large_string)
4446

45-
# def test_blob_io_bytes(self):
46-
# r = self.webhost.request('POST', 'put_blob_bytes',
47-
# data='test-dată'.encode('utf-8'))
48-
# self.assertEqual(r.status_code, 200)
49-
# self.assertEqual(r.text, 'OK')
50-
51-
# r = self.webhost.request('POST', 'get_blob_bytes')
52-
# self.assertEqual(r.status_code, 200)
53-
# self.assertEqual(r.text, 'test-dată')
54-
55-
# r = self.webhost.request('POST', 'get_blob_as_bytes')
56-
# self.assertEqual(r.status_code, 200)
57-
# self.assertEqual(r.text, 'test-dată')
58-
59-
# def test_blob_io_large_bytes(self):
60-
# large_string = 'DummyDataDummyDataDummyData' * 1024 * 1024 # 27 MB
61-
62-
# r = self.webhost.request('POST', 'put_blob_bytes',
63-
# data=large_string.encode('utf-8'))
64-
# self.assertEqual(r.status_code, 200)
65-
# self.assertEqual(r.text, 'OK')
66-
67-
# r = self.webhost.request('POST', 'get_blob_bytes')
68-
# self.assertEqual(r.status_code, 200)
69-
# self.assertEqual(r.text, large_string)
70-
71-
# r = self.webhost.request('POST', 'get_blob_as_bytes')
72-
# self.assertEqual(r.status_code, 200)
73-
# self.assertEqual(r.text, large_string)
74-
75-
# def test_blob_io_filelike(self):
76-
# r = self.webhost.request('POST', 'put_blob_filelike')
77-
# self.assertEqual(r.status_code, 200)
78-
# self.assertEqual(r.text, 'OK')
79-
80-
# r = self.webhost.request('POST', 'get_blob_filelike')
81-
# self.assertEqual(r.status_code, 200)
82-
# self.assertEqual(r.text, 'filelike')
83-
84-
# def test_blob_io_return(self):
85-
# r = self.webhost.request('POST', 'put_blob_return')
86-
# self.assertEqual(r.status_code, 200)
87-
88-
# r = self.webhost.request('POST', 'get_blob_return')
89-
# self.assertEqual(r.status_code, 200)
90-
# self.assertEqual(r.text, 'FROM RETURN')
91-
92-
# def test_blob_trigger(self):
93-
# data = "DummyData"
94-
95-
# r = self.webhost.request('POST', 'put_blob_trigger',
96-
# data=data.encode('utf-8'))
97-
# self.assertEqual(r.status_code, 200)
98-
# self.assertEqual(r.text, 'OK')
99-
100-
# # Blob trigger may be processed after some delay
101-
# # We check it every 2 seconds to allow the trigger to be fired
102-
# max_retries = 10
103-
# for try_no in range(max_retries):
104-
# time.sleep(2)
105-
106-
# try:
107-
# # Check that the trigger has fired
108-
# r = self.webhost.request('GET', 'get_blob_triggered')
109-
# self.assertEqual(r.status_code, 200)
110-
# response = r.json()
111-
112-
# self.assertEqual(response['name'],
113-
# 'python-worker-tests/test-blob-trigger.txt')
114-
# self.assertEqual(response['content'], data)
115-
116-
# break
117-
# # JSONDecodeError will be thrown if the response is empty.
118-
# except (AssertionError, JSONDecodeError):
119-
# if try_no == max_retries - 1:
120-
# raise
121-
122-
# def test_blob_trigger_with_large_content(self):
123-
# data = 'DummyDataDummyDataDummyData' * 1024 * 1024 # 27 MB
124-
125-
# r = self.webhost.request('POST', 'put_blob_trigger',
126-
# data=data.encode('utf-8'))
127-
# self.assertEqual(r.status_code, 200)
128-
# self.assertEqual(r.text, 'OK')
129-
130-
# # Blob trigger may be processed after some delay
131-
# # We check it every 2 seconds to allow the trigger to be fired
132-
# max_retries = 10
133-
# for try_no in range(max_retries):
134-
# try:
135-
# # Check that the trigger has fired
136-
# r = self.webhost.request('GET', 'get_blob_triggered')
137-
138-
# # Waiting for blob to get updated
139-
# time.sleep(2)
140-
141-
# self.assertEqual(r.status_code, 200)
142-
# response = r.json()
143-
144-
# self.assertEqual(response['name'],
145-
# 'python-worker-tests/test-blob-trigger.txt')
146-
# self.assertEqual(response['content'], data)
147-
# break
148-
# # JSONDecodeError will be thrown if the response is empty.
149-
# except (AssertionError, JSONDecodeError):
150-
# if try_no == max_retries - 1:
151-
# raise
47+
def test_blob_io_bytes(self):
48+
r = self.webhost.request('POST', 'put_blob_bytes',
49+
data='test-dată'.encode('utf-8'))
50+
self.assertEqual(r.status_code, 200)
51+
self.assertEqual(r.text, 'OK')
52+
53+
r = self.webhost.request('POST', 'get_blob_bytes')
54+
self.assertEqual(r.status_code, 200)
55+
self.assertEqual(r.text, 'test-dată')
56+
57+
r = self.webhost.request('POST', 'get_blob_as_bytes')
58+
self.assertEqual(r.status_code, 200)
59+
self.assertEqual(r.text, 'test-dată')
60+
61+
@skipIf(sys.version_info.minor >= 13,
62+
'Investigating large blob test failures on Python 3.13')
63+
def test_blob_io_large_bytes(self):
64+
large_string = 'DummyDataDummyDataDummyData' * 1024 * 1024 # 27 MB
65+
66+
r = self.webhost.request('POST', 'put_blob_bytes',
67+
data=large_string.encode('utf-8'))
68+
self.assertEqual(r.status_code, 200)
69+
self.assertEqual(r.text, 'OK')
70+
71+
r = self.webhost.request('POST', 'get_blob_bytes')
72+
self.assertEqual(r.status_code, 200)
73+
self.assertEqual(r.text, large_string)
74+
75+
r = self.webhost.request('POST', 'get_blob_as_bytes')
76+
self.assertEqual(r.status_code, 200)
77+
self.assertEqual(r.text, large_string)
78+
79+
def test_blob_io_filelike(self):
80+
r = self.webhost.request('POST', 'put_blob_filelike')
81+
self.assertEqual(r.status_code, 200)
82+
self.assertEqual(r.text, 'OK')
83+
84+
r = self.webhost.request('POST', 'get_blob_filelike')
85+
self.assertEqual(r.status_code, 200)
86+
self.assertEqual(r.text, 'filelike')
87+
88+
def test_blob_io_return(self):
89+
r = self.webhost.request('POST', 'put_blob_return')
90+
self.assertEqual(r.status_code, 200)
91+
92+
r = self.webhost.request('POST', 'get_blob_return')
93+
self.assertEqual(r.status_code, 200)
94+
self.assertEqual(r.text, 'FROM RETURN')
95+
96+
def test_blob_trigger(self):
97+
data = "DummyData"
98+
99+
r = self.webhost.request('POST', 'put_blob_trigger',
100+
data=data.encode('utf-8'))
101+
self.assertEqual(r.status_code, 200)
102+
self.assertEqual(r.text, 'OK')
103+
104+
# Blob trigger may be processed after some delay
105+
# We check it every 2 seconds to allow the trigger to be fired
106+
max_retries = 10
107+
for try_no in range(max_retries):
108+
time.sleep(2)
109+
110+
try:
111+
# Check that the trigger has fired
112+
r = self.webhost.request('GET', 'get_blob_triggered')
113+
self.assertEqual(r.status_code, 200)
114+
response = r.json()
115+
116+
self.assertEqual(response['name'],
117+
'python-worker-tests/test-blob-trigger.txt')
118+
self.assertEqual(response['content'], data)
119+
120+
break
121+
# JSONDecodeError will be thrown if the response is empty.
122+
except (AssertionError, JSONDecodeError):
123+
if try_no == max_retries - 1:
124+
raise
125+
126+
@skipIf(sys.version_info.minor >= 13,
127+
'Investigating large blob test failures on Python 3.13')
128+
def test_blob_trigger_with_large_content(self):
129+
data = 'DummyDataDummyDataDummyData' * 1024 * 1024 # 27 MB
130+
131+
r = self.webhost.request('POST', 'put_blob_trigger',
132+
data=data.encode('utf-8'))
133+
self.assertEqual(r.status_code, 200)
134+
self.assertEqual(r.text, 'OK')
135+
136+
# Blob trigger may be processed after some delay
137+
# We check it every 2 seconds to allow the trigger to be fired
138+
max_retries = 10
139+
for try_no in range(max_retries):
140+
try:
141+
# Check that the trigger has fired
142+
r = self.webhost.request('GET', 'get_blob_triggered')
143+
144+
# Waiting for blob to get updated
145+
time.sleep(2)
146+
147+
self.assertEqual(r.status_code, 200)
148+
response = r.json()
149+
150+
self.assertEqual(response['name'],
151+
'python-worker-tests/test-blob-trigger.txt')
152+
self.assertEqual(response['content'], data)
153+
break
154+
# JSONDecodeError will be thrown if the response is empty.
155+
except (AssertionError, JSONDecodeError):
156+
if try_no == max_retries - 1:
157+
raise
152158

153159

154160
class TestBlobFunctionsStein(TestBlobFunctions):
@@ -159,9 +165,9 @@ def get_script_dir(cls):
159165
'blob_functions_stein'
160166

161167

162-
# class TestBlobFunctionsSteinGeneric(TestBlobFunctions):
168+
class TestBlobFunctionsSteinGeneric(TestBlobFunctions):
163169

164-
# @classmethod
165-
# def get_script_dir(cls):
166-
# return testutils.EMULATOR_TESTS_FOLDER / 'blob_functions' / \
167-
# 'blob_functions_stein' / 'generic'
170+
@classmethod
171+
def get_script_dir(cls):
172+
return testutils.EMULATOR_TESTS_FOLDER / 'blob_functions' / \
173+
'blob_functions_stein' / 'generic'

0 commit comments

Comments
 (0)