2
2
# Licensed under the MIT License.
3
3
4
4
import aiounittest
5
- from botbuilder .dialogs import DialogSet , ComponentDialog
6
- from botbuilder .core import ConversationState , MemoryStorage
5
+ from botbuilder .dialogs import DialogSet , ComponentDialog , WaterfallDialog
6
+ from botbuilder .core import ConversationState , MemoryStorage , NullTelemetryClient
7
+
8
+
9
+ class MyBotTelemetryClient (NullTelemetryClient ):
10
+ # pylint: disable=useless-return
11
+ def __init__ (self ):
12
+ super ().__init__ ()
13
+ return
7
14
8
15
9
16
class DialogSetTests (aiounittest .AsyncTestCase ):
@@ -18,3 +25,85 @@ def test_dialogset_constructor_null_property(self):
18
25
19
26
def test_dialogset_constructor_null_from_componentdialog (self ):
20
27
ComponentDialog ("MyId" )
28
+
29
+ def test_dialogset_telemetryset (self ):
30
+ convo_state = ConversationState (MemoryStorage ())
31
+ dialog_state_property = convo_state .create_property ("dialogstate" )
32
+ dialog_set = DialogSet (dialog_state_property )
33
+
34
+ dialog_set .add (WaterfallDialog ("A" ))
35
+ dialog_set .add (WaterfallDialog ("B" ))
36
+
37
+ self .assertTrue (
38
+ isinstance (
39
+ dialog_set .find_dialog ("A" ).telemetry_client , NullTelemetryClient
40
+ )
41
+ )
42
+ self .assertTrue (
43
+ isinstance (
44
+ dialog_set .find_dialog ("B" ).telemetry_client , NullTelemetryClient
45
+ )
46
+ )
47
+
48
+ dialog_set .telemetry_client = MyBotTelemetryClient ()
49
+
50
+ self .assertTrue (
51
+ isinstance (
52
+ dialog_set .find_dialog ("A" ).telemetry_client , MyBotTelemetryClient
53
+ )
54
+ )
55
+ self .assertTrue (
56
+ isinstance (
57
+ dialog_set .find_dialog ("B" ).telemetry_client , MyBotTelemetryClient
58
+ )
59
+ )
60
+
61
+ def test_dialogset_nulltelemetryset (self ):
62
+ convo_state = ConversationState (MemoryStorage ())
63
+ dialog_state_property = convo_state .create_property ("dialogstate" )
64
+ dialog_set = DialogSet (dialog_state_property )
65
+
66
+ dialog_set .add (WaterfallDialog ("A" ))
67
+ dialog_set .add (WaterfallDialog ("B" ))
68
+
69
+ dialog_set .telemetry_client = MyBotTelemetryClient ()
70
+ dialog_set .telemetry_client = None
71
+
72
+ self .assertFalse (
73
+ isinstance (
74
+ dialog_set .find_dialog ("A" ).telemetry_client , MyBotTelemetryClient
75
+ )
76
+ )
77
+ self .assertFalse (
78
+ isinstance (
79
+ dialog_set .find_dialog ("B" ).telemetry_client , MyBotTelemetryClient
80
+ )
81
+ )
82
+ self .assertTrue (
83
+ isinstance (
84
+ dialog_set .find_dialog ("A" ).telemetry_client , NullTelemetryClient
85
+ )
86
+ )
87
+ self .assertTrue (
88
+ isinstance (
89
+ dialog_set .find_dialog ("B" ).telemetry_client , NullTelemetryClient
90
+ )
91
+ )
92
+
93
+ # pylint: disable=pointless-string-statement
94
+ """
95
+ This test will be enabled when telematry tests are fixed for DialogSet telemetry
96
+ def test_dialogset_addtelemetryset(self):
97
+ convo_state = ConversationState(MemoryStorage())
98
+ dialog_state_property = convo_state.create_property("dialogstate")
99
+ dialog_set = DialogSet(dialog_state_property)
100
+
101
+ dialog_set.add(WaterfallDialog("A"))
102
+ dialog_set.add(WaterfallDialog("B"))
103
+
104
+ dialog_set.telemetry_client = MyBotTelemetryClient()
105
+
106
+ dialog_set.add(WaterfallDialog("C"))
107
+
108
+ self.assertTrue(isinstance(dialog_set.find_dialog("C").telemetry_client, MyBotTelemetryClient))
109
+ """
0 commit comments