Skip to content

Commit 344d7a8

Browse files
authored
Add E2E scenarios for common libs (#1132)
* Add E2E scenarios for common libs
1 parent 1c577b0 commit 344d7a8

File tree

18 files changed

+419
-5
lines changed

18 files changed

+419
-5
lines changed

setup.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,13 @@
138138
"pytest-randomly",
139139
"pytest-instafail",
140140
"pytest-rerunfailures",
141-
"ptvsd"
141+
"ptvsd",
142+
"python-dotenv",
143+
"plotly",
144+
"scikit-learn",
145+
"opencv-python",
146+
"pandas",
147+
"numpy"
142148
]
143149
}
144150

tests/endtoend/eventhub_batch_functions/eventhub_batch_functions_stein/function_app.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def eventhub_multiple(events):
4141
@app.route(route="eventhub_output_batch", binding_arg_name="out")
4242
def eventhub_output_batch(req: func.HttpRequest, out: func.Out[str]) -> str:
4343
events = req.get_body().decode('utf-8')
44-
out.set('hello')
4544
return events
4645

4746

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
import logging
5+
import azure.functions as func
6+
import numpy as np
7+
import requests
8+
import cv2
9+
from pandas import DataFrame
10+
from sklearn.datasets import load_iris
11+
import plotly
12+
import dotenv
13+
14+
15+
app = func.FunctionApp()
16+
17+
18+
@app.route(route="dotenv_func")
19+
def dotenv_func(req: func.HttpRequest) -> func.HttpResponse:
20+
logging.info('Python HTTP trigger function processed a request.')
21+
22+
res = "found" if "load_dotenv" in dotenv.__all__ else "not found"
23+
24+
return func.HttpResponse(res)
25+
26+
27+
@app.route(route="numpy_func")
28+
def numpy_func(req: func.HttpRequest) -> func.HttpResponse:
29+
logging.info('Python HTTP trigger function processed a request.')
30+
31+
res = "array: {}".format(np.array([1, 2], dtype=complex))
32+
33+
return func.HttpResponse(res)
34+
35+
36+
@app.route(route="opencv_func")
37+
def opencv_func(req: func.HttpRequest) -> func.HttpResponse:
38+
logging.info('Python HTTP trigger function processed a request.')
39+
40+
res = "opencv version: {}".format(cv2.__version__)
41+
42+
return func.HttpResponse(res)
43+
44+
45+
@app.route(route="pandas_func")
46+
def pandas_func(req: func.HttpRequest) -> func.HttpResponse:
47+
logging.info('Python HTTP trigger function processed a request.')
48+
49+
array = np.arange(6).reshape(3, 2)
50+
df = DataFrame(array, columns=['x', 'y'], index=['T1', 'T2', 'T3'])
51+
52+
res = "two-dimensional DataFrame: \n {}".format(df)
53+
54+
return func.HttpResponse(res)
55+
56+
57+
@app.route(route="plotly_func")
58+
def plotly_func(req: func.HttpRequest) -> func.HttpResponse:
59+
logging.info('Python HTTP trigger function processed a request.')
60+
61+
res = "plotly version: {}".format(plotly.__version__)
62+
63+
return func.HttpResponse(res)
64+
65+
66+
@app.route(route="requests_func")
67+
def requests_func(req: func.HttpRequest) -> func.HttpResponse:
68+
logging.info('Python HTTP trigger function processed a request.')
69+
70+
req = requests.get('https://github.com')
71+
res = "req status code: {}".format(req.status_code)
72+
73+
return func.HttpResponse(res)
74+
75+
76+
@app.route(route="sklearn_func")
77+
def sklearn_func(req: func.HttpRequest) -> func.HttpResponse:
78+
logging.info('Python HTTP trigger function processed a request.')
79+
80+
iris = load_iris()
81+
82+
res = "First 5 records of array: \n {}".format(iris.data[:5])
83+
84+
return func.HttpResponse(res)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
import logging
5+
import dotenv
6+
import azure.functions as func
7+
8+
9+
def main(req: func.HttpRequest) -> func.HttpResponse:
10+
logging.info('Python HTTP trigger function processed a request.')
11+
12+
res = "found" if "load_dotenv" in dotenv.__all__ else "not found"
13+
14+
return func.HttpResponse(res)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"scriptFile": "__init__.py",
3+
"bindings": [
4+
{
5+
"authLevel": "function",
6+
"type": "httpTrigger",
7+
"direction": "in",
8+
"name": "req",
9+
"methods": [
10+
"get",
11+
"post"
12+
]
13+
},
14+
{
15+
"type": "http",
16+
"direction": "out",
17+
"name": "$return"
18+
}
19+
]
20+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
import logging
5+
import azure.functions as func
6+
import numpy as np
7+
8+
9+
def main(req: func.HttpRequest) -> func.HttpResponse:
10+
logging.info('Python HTTP trigger function processed a request.')
11+
12+
res = "array: {}".format(np.array([1, 2], dtype=complex))
13+
14+
return func.HttpResponse(res)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"scriptFile": "__init__.py",
3+
"bindings": [
4+
{
5+
"authLevel": "function",
6+
"type": "httpTrigger",
7+
"direction": "in",
8+
"name": "req",
9+
"methods": [
10+
"get",
11+
"post"
12+
]
13+
},
14+
{
15+
"type": "http",
16+
"direction": "out",
17+
"name": "$return"
18+
}
19+
]
20+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
import logging
5+
import cv2
6+
import azure.functions as func
7+
8+
9+
def main(req: func.HttpRequest) -> func.HttpResponse:
10+
logging.info('Python HTTP trigger function processed a request.')
11+
12+
res = "opencv version: {}".format(cv2.__version__)
13+
14+
return func.HttpResponse(res)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"scriptFile": "__init__.py",
3+
"bindings": [
4+
{
5+
"authLevel": "function",
6+
"type": "httpTrigger",
7+
"direction": "in",
8+
"name": "req",
9+
"methods": [
10+
"get",
11+
"post"
12+
]
13+
},
14+
{
15+
"type": "http",
16+
"direction": "out",
17+
"name": "$return"
18+
}
19+
]
20+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
import logging
5+
import azure.functions as func
6+
import numpy as np
7+
from pandas import DataFrame
8+
9+
10+
def main(req: func.HttpRequest) -> func.HttpResponse:
11+
logging.info('Python HTTP trigger function processed a request.')
12+
13+
array = np.arange(6).reshape(3, 2)
14+
df = DataFrame(array, columns=['x', 'y'], index=['T1', 'T2', 'T3'])
15+
16+
res = "two-dimensional DataFrame: \n {}".format(df)
17+
18+
return func.HttpResponse(res)

0 commit comments

Comments
 (0)