@@ -32,16 +32,50 @@ def test_query_execute_response_AdventureWorks2014(self):
32
32
33
33
request = queryservice .QueryExecuteStringRequest (
34
34
2 , rpc_client , parameters )
35
- self .verify_query_response (request = request )
35
+ self .verify_query_response (request = request ,
36
+ expected_message_event = 1 ,
37
+ expected_complete_event = 1 ,
38
+ expected_batch_summaries = 1 ,
39
+ expected_result_set_summaries = 1 ,
40
+ expected_row_count = 16 )
36
41
rpc_client .shutdown ()
37
42
38
- def verify_query_response (self , request ):
43
+ def test_malformed_query_AdventureWorks2014 (self ):
44
+ """
45
+ Verify a failed query execute response for "select * from [HumanResources.Department"
46
+ """
47
+
48
+ with open (self .get_test_baseline (u'malformed_query_adventureworks2014.txt' ), u'r+b' , buffering = 0 ) as response_file :
49
+ request_stream = io .BytesIO ()
50
+ rpc_client = json_rpc_client .JsonRpcClient (
51
+ request_stream , response_file )
52
+ rpc_client .start ()
53
+ # Submit a dummy request.
54
+ parameters = {u'OwnerUri' : u'connectionservicetest' ,
55
+ u'Query' : "select * from [HumanResources.Department" }
56
+
57
+ request = queryservice .QueryExecuteStringRequest (
58
+ 2 , rpc_client , parameters )
59
+ self .verify_query_response (request = request ,
60
+ expected_complete_event = 1 ,
61
+ expected_error_count = 1 )
62
+ rpc_client .shutdown ()
63
+
64
+ def verify_query_response (self ,
65
+ request ,
66
+ expected_message_event = 0 ,
67
+ expected_complete_event = 0 ,
68
+ expected_batch_summaries = 0 ,
69
+ expected_result_set_summaries = 0 ,
70
+ expected_row_count = 0 ,
71
+ expected_error_count = 0 ):
39
72
message_event = 0
40
73
complete_event = 0
41
74
batch_summaries = 0
42
75
result_set_summaries = 0
43
- # For the executed query expected row count is 16
44
76
row_count = 0
77
+ error_count = 0
78
+
45
79
request .execute ()
46
80
time .sleep (1 )
47
81
@@ -50,18 +84,22 @@ def verify_query_response(self, request):
50
84
if response :
51
85
if isinstance (response , queryservice .QueryMessageEvent ):
52
86
message_event += 1
87
+ elif isinstance (response , queryservice .QueryExecuteErrorResponseEvent ):
88
+ error_count += 1
53
89
elif isinstance (response , queryservice .QueryCompleteEvent ):
54
90
complete_event += 1
55
- batch_summaries = len (response .batch_summaries )
56
- result_set_summaries = len (
57
- response .batch_summaries [0 ].result_set_summaries )
58
- row_count = response .batch_summaries [0 ].result_set_summaries [0 ].row_count
91
+ if hasattr (response , 'batch_summaries' ):
92
+ batch_summaries = len (response .batch_summaries )
93
+ result_set_summaries = len (
94
+ response .batch_summaries [0 ].result_set_summaries )
95
+ row_count = response .batch_summaries [0 ].result_set_summaries [0 ].row_count
59
96
60
- self .assertEqual (message_event , 1 )
61
- self .assertEqual (complete_event , 1 )
62
- self .assertEqual (batch_summaries , 1 )
63
- self .assertEqual (result_set_summaries , 1 )
64
- self .assertEqual (row_count , 16 )
97
+ self .assertEqual (message_event , expected_message_event )
98
+ self .assertEqual (complete_event , expected_complete_event )
99
+ self .assertEqual (batch_summaries , expected_batch_summaries )
100
+ self .assertEqual (result_set_summaries , expected_result_set_summaries )
101
+ self .assertEqual (row_count , expected_row_count )
102
+ self .assertEqual (error_count , expected_error_count )
65
103
66
104
def get_test_baseline (self , file_name ):
67
105
"""
0 commit comments