Skip to content

Commit 46ee88e

Browse files
authored
Merge branch 'dev' into wangbill/add-warmup-converter
2 parents 925a9c0 + 88ee3fb commit 46ee88e

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

azure/functions/_http.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Licensed under the MIT License.
33

44
import collections.abc
5+
import http
56
import io
67
import json
78
import types
@@ -52,6 +53,7 @@ class HttpResponse(_abc.HttpResponse):
5253
5354
:param int status_code:
5455
Response status code. If not specified, defaults to 200.
56+
You can use an int status code or an http.HTTPStatus value
5557
5658
:param dict headers:
5759
An optional mapping containing response HTTP headers.
@@ -67,12 +69,16 @@ class HttpResponse(_abc.HttpResponse):
6769

6870
def __init__(self,
6971
body: typing.Optional[typing.Union[str, bytes]] = None, *,
70-
status_code: typing.Optional[int] = None,
72+
status_code: typing.Optional[typing.Union[
73+
http.HTTPStatus, int
74+
]] = None,
7175
headers: typing.Optional[typing.Mapping[str, str]] = None,
7276
mimetype: typing.Optional[str] = None,
7377
charset: typing.Optional[str] = None) -> None:
7478
if status_code is None:
7579
status_code = 200
80+
if isinstance(status_code, http.HTTPStatus):
81+
status_code = status_code.value
7682
self.__status_code = status_code
7783

7884
if mimetype is None:

tests/test_http.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# Copyright (c) Microsoft Corporation. All rights reserved.
22
# Licensed under the MIT License.
33
import sys
4+
import types
45
import unittest
6+
from http import HTTPStatus
57
from unittest import skipIf
6-
import types
8+
79
import azure.functions as func
810
import azure.functions.http as http
9-
from azure.functions._http import HttpResponseHeaders, HttpRequestHeaders
10-
11+
from azure.functions._http import HttpRequestHeaders, HttpResponseHeaders
1112
from azure.functions.meta import Datum
1213

1314

@@ -178,6 +179,12 @@ def test_http_response_does_not_have_explicit_output(self):
178179
getattr(http.HttpResponseConverter, 'has_implicit_output', None)
179180
)
180181

182+
def test_http_response_accepts_http_enums(self):
183+
response = func.HttpResponse(status_code=404)
184+
self.assertEquals(response.status_code, 404)
185+
response = func.HttpResponse(status_code=HTTPStatus.ACCEPTED)
186+
self.assertEquals(response.status_code, 202)
187+
181188
def test_http_request_converter_decode(self):
182189
data = {
183190
"method": Datum("POST", "string"),

0 commit comments

Comments
 (0)