Repository: microsoft/botbuilder-python

Issue:
[Dialogs] InputHint is hardcoded for AttachmentPrompt as expecting_input
## Version
4.12.0

## Describe the bug
In the [AttachmentPrompt](https://github.com/microsoft/botbuilder-python/blame/main/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py) class, the **prompt.input_hint** is set as [expecting_input](https://github.com/microsoft/botbuilder-python/blame/main/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py#L45) replacing any value the user could set.
This behavior is not present in either .NET or JS SDKs.

## To Reproduce
Steps to reproduce the behavior:
1. Using the sample: [05.multi-turn-prompt](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/05.multi-turn-prompt):
    - Open [dialogs/user_profile_dialog.py](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/python/05.multi-turn-prompt/dialogs/user_profile_dialog.py) file.
    - Add the following line to the imports section `from botbuilder.schema import InputHints`.
    - Update picture_step method adding `input_hint=InputHints.accepting_input` to the message as can be seen below:
![image](https://user-images.githubusercontent.com/44245136/115744805-45a0ed00-a369-11eb-9eb1-6d86e9d73a26.png)
    - Save the changes.
    - Open the console in the bots folder and run the following commands:
        -  python -m pip install -r requirements.txt
        - python app.py

2. Open BotFramework Emulator and connect to your bot.
3. Follow the dialog flow until the profile picture step.
4. See the activity in the Inspection panel and check the value of the inputHint property.
![image](https://user-images.githubusercontent.com/44245136/115744882-56516300-a369-11eb-837b-833dcce1bec7.png)

## Expected behavior
The bot should send the activity with the inputHint property that was set for the message in the prompt options.



Discussion:

Resolving patch:
diff --git a/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py b/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py
--- a/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py
+++ b/libraries/botbuilder-dialogs/botbuilder/dialogs/prompts/attachment_prompt.py
@@ -3,7 +3,7 @@
 
 from typing import Callable, Dict
 
-from botbuilder.schema import ActivityTypes, InputHints
+from botbuilder.schema import ActivityTypes
 from botbuilder.core import TurnContext
 
 from .prompt import Prompt, PromptValidatorContext
@@ -39,10 +39,8 @@ async def on_prompt(
             )
 
         if is_retry and options.retry_prompt:
-            options.retry_prompt.input_hint = InputHints.expecting_input
             await turn_context.send_activity(options.retry_prompt)
         elif options.prompt:
-            options.prompt.input_hint = InputHints.expecting_input
             await turn_context.send_activity(options.prompt)
 
     async def on_recognize(


Test patch:
diff --git a/libraries/botbuilder-dialogs/tests/test_attachment_prompt.py b/libraries/botbuilder-dialogs/tests/test_attachment_prompt.py
--- a/libraries/botbuilder-dialogs/tests/test_attachment_prompt.py
+++ b/libraries/botbuilder-dialogs/tests/test_attachment_prompt.py
@@ -1,13 +1,14 @@
 # Copyright (c) Microsoft Corporation. All rights reserved.
 # Licensed under the MIT License.
 
+import copy
 import aiounittest
 from botbuilder.dialogs.prompts import (
     AttachmentPrompt,
     PromptOptions,
     PromptValidatorContext,
 )
-from botbuilder.schema import Activity, ActivityTypes, Attachment
+from botbuilder.schema import Activity, ActivityTypes, Attachment, InputHints
 
 from botbuilder.core import (
     TurnContext,
@@ -71,6 +72,42 @@ async def exec_test(turn_context: TurnContext):
         step3 = await step2.send(attachment_activity)
         await step3.assert_reply("some content")
 
+    async def test_attachment_prompt_with_input_hint(self):
+        prompt_activity = Activity(
+            type=ActivityTypes.message,
+            text="please add an attachment.",
+            input_hint=InputHints.accepting_input,
+        )
+
+        async def exec_test(turn_context: TurnContext):
+            dialog_context = await dialogs.create_context(turn_context)
+
+            results = await dialog_context.continue_dialog()
+
+            if results.status == DialogTurnStatus.Empty:
+                options = PromptOptions(prompt=copy.copy(prompt_activity))
+                await dialog_context.prompt("AttachmentPrompt", options)
+            elif results.status == DialogTurnStatus.Complete:
+                attachment = results.result[0]
+                content = MessageFactory.text(attachment.content)
+                await turn_context.send_activity(content)
+
+            await convo_state.save_changes(turn_context)
+
+        # Initialize TestAdapter.
+        adapter = TestAdapter(exec_test)
+
+        # Create ConversationState with MemoryStorage and register the state as middleware.
+        convo_state = ConversationState(MemoryStorage())
+
+        # Create a DialogState property, DialogSet and AttachmentPrompt.
+        dialog_state = convo_state.create_property("dialog_state")
+        dialogs = DialogSet(dialog_state)
+        dialogs.add(AttachmentPrompt("AttachmentPrompt"))
+
+        step1 = await adapter.send("hello")
+        await step1.assert_reply(prompt_activity)
+
     async def test_attachment_prompt_with_validator(self):
         async def exec_test(turn_context: TurnContext):
             dialog_context = await dialogs.create_context(turn_context)