We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Increase streaming unit tests
reach parity with C# unit tests

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `libraries/botframework-streaming/botframework/streaming/receive_request.py`
Content:
```
1 # Copyright (c) Microsoft Corporation. All rights reserved.
2 # Licensed under the MIT License.
3 
4 from typing import List
5 
6 from botframework.streaming.payloads import ContentStream
7 
8 
9 class ReceiveRequest:
10     def __init__(
11         self, *, verb: str = None, path: str = None, streams: List[ContentStream]
12     ):
13         self.verb = verb
14         self.path = path
15         self.streams: List[ContentStream] = streams or []
16 
17     async def read_body_as_str(self) -> str:
18         try:
19             content_stream = self.streams[0] if self.streams else None
20 
21             if not content_stream:
22                 # TODO: maybe raise an error
23                 return ""
24 
25             # TODO: encoding double check
26             stream = await content_stream.stream.read_until_end()
27             return bytes(stream).decode("utf-8-sig")
28         except Exception as error:
29             raise error
30
```

Path: `libraries/botframework-streaming/botframework/streaming/streaming_response.py`
Content:
```
1 # Copyright (c) Microsoft Corporation. All rights reserved.
2 # Licensed under the MIT License.
3 
4 import json
5 from uuid import UUID, uuid4
6 from typing import List, Union
7 
8 from msrest.serialization import Model
9 from botframework.streaming.payloads import ResponseMessageStream
10 from botframework.streaming.payloads.models import Serializable
11 
12 
13 class StreamingResponse:
14     def __init__(
15         self, *, status_code: int = None, streams: List[ResponseMessageStream] = None
16     ):
17         self.status_code = status_code
18         self.streams = streams
19 
20     def add_stream(self, content: object, identifier: UUID = None):
21         if not content:
22             raise TypeError("content can't be None")
23 
24         if self.streams is None:
25             self.streams: List[ResponseMessageStream] = []
26 
27         self.streams.append(
28             ResponseMessageStream(id=identifier or uuid4(), content=content)
29         )
30 
31     def set_body(self, body: Union[str, Serializable, Model]):
32         # TODO: verify if msrest.serialization.Model is necessary
33         if not body:
34             return
35 
36         if isinstance(body, Serializable):
37             body = body.to_json()
38         elif isinstance(body, Model):
39             body = json.dumps(body.as_dict())
40 
41         self.add_stream(list(body.encode()))
42 
43     @staticmethod
44     def create_response(status_code: int, body: object) -> "StreamingResponse":
45         response = StreamingResponse(status_code=status_code)
46 
47         if body:
48             response.add_stream(body)
49 
50         return response
51
```

Path: `libraries/botframework-streaming/botframework/streaming/receive_response.py`
Content:
```
1 # Copyright (c) Microsoft Corporation. All rights reserved.
2 # Licensed under the MIT License.
3 
4 from typing import List, Union, Type
5 
6 from msrest.serialization import Model
7 from botframework.streaming.payloads import ContentStream
8 from botframework.streaming.payloads.models import Serializable
9 
10 
11 class ReceiveResponse:
12     def __init__(self, status_code: int = None, streams: List[ContentStream] = None):
13         self.status_code = status_code
14         self.streams = streams
15 
16     def read_body_as_json(
17         self, cls: Union[Type[Model], Type[Serializable]]
18     ) -> Union[Model, Serializable]:
19         try:
20             body_str = self.read_body_as_str()
21             body = None
22 
23             if issubclass(cls, Serializable):
24                 body = cls().from_json(body_str)
25             elif isinstance(cls, Model):
26                 body = cls.deserialize(body_str)
27             return body
28         except Exception as error:
29             raise error
30 
31     def read_body_as_str(self) -> str:
32         try:
33             content_stream = self.read_body()
34 
35             if not content_stream:
36                 return ""
37 
38             # TODO: encoding double check
39             return content_stream.decode("utf8")
40         except Exception as error:
41             raise error
42 
43     def read_body(self) -> bytes:
44         try:
45             content_stream = self.streams[0] if self.streams else None
46 
47             if not content_stream:
48                 return None
49 
50             return bytes(content_stream.stream)
51         except Exception as error:
52             raise error
53
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/libraries/botframework-streaming/botframework/streaming/receive_request.py b/libraries/botframework-streaming/botframework/streaming/receive_request.py
--- a/libraries/botframework-streaming/botframework/streaming/receive_request.py
+++ b/libraries/botframework-streaming/botframework/streaming/receive_request.py
@@ -8,7 +8,7 @@
 
 class ReceiveRequest:
     def __init__(
-        self, *, verb: str = None, path: str = None, streams: List[ContentStream]
+        self, *, verb: str = None, path: str = None, streams: List[ContentStream] = None
     ):
         self.verb = verb
         self.path = path
diff --git a/libraries/botframework-streaming/botframework/streaming/receive_response.py b/libraries/botframework-streaming/botframework/streaming/receive_response.py
--- a/libraries/botframework-streaming/botframework/streaming/receive_response.py
+++ b/libraries/botframework-streaming/botframework/streaming/receive_response.py
@@ -9,9 +9,9 @@
 
 
 class ReceiveResponse:
-    def __init__(self, status_code: int = None, streams: List[ContentStream] = None):
+    def __init__(self, status_code: int = 0, streams: List[ContentStream] = None):
         self.status_code = status_code
-        self.streams = streams
+        self.streams = streams or []
 
     def read_body_as_json(
         self, cls: Union[Type[Model], Type[Serializable]]
diff --git a/libraries/botframework-streaming/botframework/streaming/streaming_response.py b/libraries/botframework-streaming/botframework/streaming/streaming_response.py
--- a/libraries/botframework-streaming/botframework/streaming/streaming_response.py
+++ b/libraries/botframework-streaming/botframework/streaming/streaming_response.py
@@ -2,6 +2,7 @@
 # Licensed under the MIT License.
 
 import json
+from http import HTTPStatus
 from uuid import UUID, uuid4
 from typing import List, Union
 
@@ -12,7 +13,7 @@
 
 class StreamingResponse:
     def __init__(
-        self, *, status_code: int = None, streams: List[ResponseMessageStream] = None
+        self, *, status_code: int = 0, streams: List[ResponseMessageStream] = None
     ):
         self.status_code = status_code
         self.streams = streams
@@ -48,3 +49,20 @@
             response.add_stream(body)
 
         return response
+
+    @staticmethod
+    def not_found(body: object = None) -> "StreamingResponse":
+        return StreamingResponse.create_response(HTTPStatus.NOT_FOUND, body)
+
+    @staticmethod
+    def forbidden(body: object = None) -> "StreamingResponse":
+        return StreamingResponse.create_response(HTTPStatus.FORBIDDEN, body)
+
+    # pylint: disable=invalid-name
+    @staticmethod
+    def ok(body: object = None) -> "StreamingResponse":
+        return StreamingResponse.create_response(HTTPStatus.OK, body)
+
+    @staticmethod
+    def internal_server_error(body: object = None) -> "StreamingResponse":
+        return StreamingResponse.create_response(HTTPStatus.INTERNAL_SERVER_ERROR, body)

{"golden_diff": "diff --git a/libraries/botframework-streaming/botframework/streaming/receive_request.py b/libraries/botframework-streaming/botframework/streaming/receive_request.py\n--- a/libraries/botframework-streaming/botframework/streaming/receive_request.py\n+++ b/libraries/botframework-streaming/botframework/streaming/receive_request.py\n@@ -8,7 +8,7 @@\n \n class ReceiveRequest:\n     def __init__(\n-        self, *, verb: str = None, path: str = None, streams: List[ContentStream]\n+        self, *, verb: str = None, path: str = None, streams: List[ContentStream] = None\n     ):\n         self.verb = verb\n         self.path = path\ndiff --git a/libraries/botframework-streaming/botframework/streaming/receive_response.py b/libraries/botframework-streaming/botframework/streaming/receive_response.py\n--- a/libraries/botframework-streaming/botframework/streaming/receive_response.py\n+++ b/libraries/botframework-streaming/botframework/streaming/receive_response.py\n@@ -9,9 +9,9 @@\n \n \n class ReceiveResponse:\n-    def __init__(self, status_code: int = None, streams: List[ContentStream] = None):\n+    def __init__(self, status_code: int = 0, streams: List[ContentStream] = None):\n         self.status_code = status_code\n-        self.streams = streams\n+        self.streams = streams or []\n \n     def read_body_as_json(\n         self, cls: Union[Type[Model], Type[Serializable]]\ndiff --git a/libraries/botframework-streaming/botframework/streaming/streaming_response.py b/libraries/botframework-streaming/botframework/streaming/streaming_response.py\n--- a/libraries/botframework-streaming/botframework/streaming/streaming_response.py\n+++ b/libraries/botframework-streaming/botframework/streaming/streaming_response.py\n@@ -2,6 +2,7 @@\n # Licensed under the MIT License.\n \n import json\n+from http import HTTPStatus\n from uuid import UUID, uuid4\n from typing import List, Union\n \n@@ -12,7 +13,7 @@\n \n class StreamingResponse:\n     def __init__(\n-        self, *, status_code: int = None, streams: List[ResponseMessageStream] = None\n+        self, *, status_code: int = 0, streams: List[ResponseMessageStream] = None\n     ):\n         self.status_code = status_code\n         self.streams = streams\n@@ -48,3 +49,20 @@\n             response.add_stream(body)\n \n         return response\n+\n+    @staticmethod\n+    def not_found(body: object = None) -> \"StreamingResponse\":\n+        return StreamingResponse.create_response(HTTPStatus.NOT_FOUND, body)\n+\n+    @staticmethod\n+    def forbidden(body: object = None) -> \"StreamingResponse\":\n+        return StreamingResponse.create_response(HTTPStatus.FORBIDDEN, body)\n+\n+    # pylint: disable=invalid-name\n+    @staticmethod\n+    def ok(body: object = None) -> \"StreamingResponse\":\n+        return StreamingResponse.create_response(HTTPStatus.OK, body)\n+\n+    @staticmethod\n+    def internal_server_error(body: object = None) -> \"StreamingResponse\":\n+        return StreamingResponse.create_response(HTTPStatus.INTERNAL_SERVER_ERROR, body)\n", "issue": "Increase streaming unit tests\nreach parity with C# unit tests\n", "before_files": [{"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nfrom typing import List\n\nfrom botframework.streaming.payloads import ContentStream\n\n\nclass ReceiveRequest:\n    def __init__(\n        self, *, verb: str = None, path: str = None, streams: List[ContentStream]\n    ):\n        self.verb = verb\n        self.path = path\n        self.streams: List[ContentStream] = streams or []\n\n    async def read_body_as_str(self) -> str:\n        try:\n            content_stream = self.streams[0] if self.streams else None\n\n            if not content_stream:\n                # TODO: maybe raise an error\n                return \"\"\n\n            # TODO: encoding double check\n            stream = await content_stream.stream.read_until_end()\n            return bytes(stream).decode(\"utf-8-sig\")\n        except Exception as error:\n            raise error\n", "path": "libraries/botframework-streaming/botframework/streaming/receive_request.py"}, {"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nimport json\nfrom uuid import UUID, uuid4\nfrom typing import List, Union\n\nfrom msrest.serialization import Model\nfrom botframework.streaming.payloads import ResponseMessageStream\nfrom botframework.streaming.payloads.models import Serializable\n\n\nclass StreamingResponse:\n    def __init__(\n        self, *, status_code: int = None, streams: List[ResponseMessageStream] = None\n    ):\n        self.status_code = status_code\n        self.streams = streams\n\n    def add_stream(self, content: object, identifier: UUID = None):\n        if not content:\n            raise TypeError(\"content can't be None\")\n\n        if self.streams is None:\n            self.streams: List[ResponseMessageStream] = []\n\n        self.streams.append(\n            ResponseMessageStream(id=identifier or uuid4(), content=content)\n        )\n\n    def set_body(self, body: Union[str, Serializable, Model]):\n        # TODO: verify if msrest.serialization.Model is necessary\n        if not body:\n            return\n\n        if isinstance(body, Serializable):\n            body = body.to_json()\n        elif isinstance(body, Model):\n            body = json.dumps(body.as_dict())\n\n        self.add_stream(list(body.encode()))\n\n    @staticmethod\n    def create_response(status_code: int, body: object) -> \"StreamingResponse\":\n        response = StreamingResponse(status_code=status_code)\n\n        if body:\n            response.add_stream(body)\n\n        return response\n", "path": "libraries/botframework-streaming/botframework/streaming/streaming_response.py"}, {"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nfrom typing import List, Union, Type\n\nfrom msrest.serialization import Model\nfrom botframework.streaming.payloads import ContentStream\nfrom botframework.streaming.payloads.models import Serializable\n\n\nclass ReceiveResponse:\n    def __init__(self, status_code: int = None, streams: List[ContentStream] = None):\n        self.status_code = status_code\n        self.streams = streams\n\n    def read_body_as_json(\n        self, cls: Union[Type[Model], Type[Serializable]]\n    ) -> Union[Model, Serializable]:\n        try:\n            body_str = self.read_body_as_str()\n            body = None\n\n            if issubclass(cls, Serializable):\n                body = cls().from_json(body_str)\n            elif isinstance(cls, Model):\n                body = cls.deserialize(body_str)\n            return body\n        except Exception as error:\n            raise error\n\n    def read_body_as_str(self) -> str:\n        try:\n            content_stream = self.read_body()\n\n            if not content_stream:\n                return \"\"\n\n            # TODO: encoding double check\n            return content_stream.decode(\"utf8\")\n        except Exception as error:\n            raise error\n\n    def read_body(self) -> bytes:\n        try:\n            content_stream = self.streams[0] if self.streams else None\n\n            if not content_stream:\n                return None\n\n            return bytes(content_stream.stream)\n        except Exception as error:\n            raise error\n", "path": "libraries/botframework-streaming/botframework/streaming/receive_response.py"}], "after_files": [{"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nfrom typing import List\n\nfrom botframework.streaming.payloads import ContentStream\n\n\nclass ReceiveRequest:\n    def __init__(\n        self, *, verb: str = None, path: str = None, streams: List[ContentStream] = None\n    ):\n        self.verb = verb\n        self.path = path\n        self.streams: List[ContentStream] = streams or []\n\n    async def read_body_as_str(self) -> str:\n        try:\n            content_stream = self.streams[0] if self.streams else None\n\n            if not content_stream:\n                # TODO: maybe raise an error\n                return \"\"\n\n            # TODO: encoding double check\n            stream = await content_stream.stream.read_until_end()\n            return bytes(stream).decode(\"utf-8-sig\")\n        except Exception as error:\n            raise error\n", "path": "libraries/botframework-streaming/botframework/streaming/receive_request.py"}, {"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nimport json\nfrom http import HTTPStatus\nfrom uuid import UUID, uuid4\nfrom typing import List, Union\n\nfrom msrest.serialization import Model\nfrom botframework.streaming.payloads import ResponseMessageStream\nfrom botframework.streaming.payloads.models import Serializable\n\n\nclass StreamingResponse:\n    def __init__(\n        self, *, status_code: int = 0, streams: List[ResponseMessageStream] = None\n    ):\n        self.status_code = status_code\n        self.streams = streams\n\n    def add_stream(self, content: object, identifier: UUID = None):\n        if not content:\n            raise TypeError(\"content can't be None\")\n\n        if self.streams is None:\n            self.streams: List[ResponseMessageStream] = []\n\n        self.streams.append(\n            ResponseMessageStream(id=identifier or uuid4(), content=content)\n        )\n\n    def set_body(self, body: Union[str, Serializable, Model]):\n        # TODO: verify if msrest.serialization.Model is necessary\n        if not body:\n            return\n\n        if isinstance(body, Serializable):\n            body = body.to_json()\n        elif isinstance(body, Model):\n            body = json.dumps(body.as_dict())\n\n        self.add_stream(list(body.encode()))\n\n    @staticmethod\n    def create_response(status_code: int, body: object) -> \"StreamingResponse\":\n        response = StreamingResponse(status_code=status_code)\n\n        if body:\n            response.add_stream(body)\n\n        return response\n\n    @staticmethod\n    def not_found(body: object = None) -> \"StreamingResponse\":\n        return StreamingResponse.create_response(HTTPStatus.NOT_FOUND, body)\n\n    @staticmethod\n    def forbidden(body: object = None) -> \"StreamingResponse\":\n        return StreamingResponse.create_response(HTTPStatus.FORBIDDEN, body)\n\n    # pylint: disable=invalid-name\n    @staticmethod\n    def ok(body: object = None) -> \"StreamingResponse\":\n        return StreamingResponse.create_response(HTTPStatus.OK, body)\n\n    @staticmethod\n    def internal_server_error(body: object = None) -> \"StreamingResponse\":\n        return StreamingResponse.create_response(HTTPStatus.INTERNAL_SERVER_ERROR, body)\n", "path": "libraries/botframework-streaming/botframework/streaming/streaming_response.py"}, {"content": "# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License.\n\nfrom typing import List, Union, Type\n\nfrom msrest.serialization import Model\nfrom botframework.streaming.payloads import ContentStream\nfrom botframework.streaming.payloads.models import Serializable\n\n\nclass ReceiveResponse:\n    def __init__(self, status_code: int = 0, streams: List[ContentStream] = None):\n        self.status_code = status_code\n        self.streams = streams or []\n\n    def read_body_as_json(\n        self, cls: Union[Type[Model], Type[Serializable]]\n    ) -> Union[Model, Serializable]:\n        try:\n            body_str = self.read_body_as_str()\n            body = None\n\n            if issubclass(cls, Serializable):\n                body = cls().from_json(body_str)\n            elif isinstance(cls, Model):\n                body = cls.deserialize(body_str)\n            return body\n        except Exception as error:\n            raise error\n\n    def read_body_as_str(self) -> str:\n        try:\n            content_stream = self.read_body()\n\n            if not content_stream:\n                return \"\"\n\n            # TODO: encoding double check\n            return content_stream.decode(\"utf8\")\n        except Exception as error:\n            raise error\n\n    def read_body(self) -> bytes:\n        try:\n            content_stream = self.streams[0] if self.streams else None\n\n            if not content_stream:\n                return None\n\n            return bytes(content_stream.stream)\n        except Exception as error:\n            raise error\n", "path": "libraries/botframework-streaming/botframework/streaming/receive_response.py"}]}