@@ -787,7 +787,9 @@ def test_result(self):
787787 "location" : "EU" ,
788788 },
789789 "schema" : {"fields" : [{"name" : "col1" , "type" : "STRING" }]},
790- "totalRows" : "2" ,
790+ "totalRows" : "3" ,
791+ "rows" : [{"f" : [{"v" : "abc" }]}],
792+ "pageToken" : "next-page" ,
791793 }
792794 job_resource = self ._make_resource (started = True , location = "EU" )
793795 job_resource_done = self ._make_resource (started = True , ended = True , location = "EU" )
@@ -799,9 +801,9 @@ def test_result(self):
799801 query_page_resource = {
800802 # Explicitly set totalRows to be different from the initial
801803 # response to test update during iteration.
802- "totalRows" : "1 " ,
804+ "totalRows" : "2 " ,
803805 "pageToken" : None ,
804- "rows" : [{"f" : [{"v" : "abc " }]}],
806+ "rows" : [{"f" : [{"v" : "def " }]}],
805807 }
806808 conn = _make_connection (
807809 query_resource , query_resource_done , job_resource_done , query_page_resource
@@ -812,19 +814,20 @@ def test_result(self):
812814 result = job .result ()
813815
814816 self .assertIsInstance (result , RowIterator )
815- self .assertEqual (result .total_rows , 2 )
817+ self .assertEqual (result .total_rows , 3 )
816818 rows = list (result )
817- self .assertEqual (len (rows ), 1 )
819+ self .assertEqual (len (rows ), 2 )
818820 self .assertEqual (rows [0 ].col1 , "abc" )
821+ self .assertEqual (rows [1 ].col1 , "def" )
819822 # Test that the total_rows property has changed during iteration, based
820823 # on the response from tabledata.list.
821- self .assertEqual (result .total_rows , 1 )
824+ self .assertEqual (result .total_rows , 2 )
822825
823826 query_results_path = f"/projects/{ self .PROJECT } /queries/{ self .JOB_ID } "
824827 query_results_call = mock .call (
825828 method = "GET" ,
826829 path = query_results_path ,
827- query_params = {"maxResults" : 0 , " location" : "EU" },
830+ query_params = {"location" : "EU" },
828831 timeout = None ,
829832 )
830833 reload_call = mock .call (
@@ -839,6 +842,7 @@ def test_result(self):
839842 query_params = {
840843 "fields" : _LIST_ROWS_FROM_QUERY_RESULTS_FIELDS ,
841844 "location" : "EU" ,
845+ "pageToken" : "next-page" ,
842846 },
843847 timeout = None ,
844848 )
@@ -851,7 +855,9 @@ def test_result_with_done_job_calls_get_query_results(self):
851855 "jobComplete" : True ,
852856 "jobReference" : {"projectId" : self .PROJECT , "jobId" : self .JOB_ID },
853857 "schema" : {"fields" : [{"name" : "col1" , "type" : "STRING" }]},
854- "totalRows" : "1" ,
858+ "totalRows" : "2" ,
859+ "rows" : [{"f" : [{"v" : "abc" }]}],
860+ "pageToken" : "next-page" ,
855861 }
856862 job_resource = self ._make_resource (started = True , ended = True , location = "EU" )
857863 job_resource ["configuration" ]["query" ]["destinationTable" ] = {
@@ -860,9 +866,9 @@ def test_result_with_done_job_calls_get_query_results(self):
860866 "tableId" : "dest_table" ,
861867 }
862868 results_page_resource = {
863- "totalRows" : "1 " ,
869+ "totalRows" : "2 " ,
864870 "pageToken" : None ,
865- "rows" : [{"f" : [{"v" : "abc " }]}],
871+ "rows" : [{"f" : [{"v" : "def " }]}],
866872 }
867873 conn = _make_connection (query_resource_done , results_page_resource )
868874 client = _make_client (self .PROJECT , connection = conn )
@@ -871,14 +877,15 @@ def test_result_with_done_job_calls_get_query_results(self):
871877 result = job .result ()
872878
873879 rows = list (result )
874- self .assertEqual (len (rows ), 1 )
880+ self .assertEqual (len (rows ), 2 )
875881 self .assertEqual (rows [0 ].col1 , "abc" )
882+ self .assertEqual (rows [1 ].col1 , "def" )
876883
877884 query_results_path = f"/projects/{ self .PROJECT } /queries/{ self .JOB_ID } "
878885 query_results_call = mock .call (
879886 method = "GET" ,
880887 path = query_results_path ,
881- query_params = {"maxResults" : 0 , " location" : "EU" },
888+ query_params = {"location" : "EU" },
882889 timeout = None ,
883890 )
884891 query_results_page_call = mock .call (
@@ -887,6 +894,7 @@ def test_result_with_done_job_calls_get_query_results(self):
887894 query_params = {
888895 "fields" : _LIST_ROWS_FROM_QUERY_RESULTS_FIELDS ,
889896 "location" : "EU" ,
897+ "pageToken" : "next-page" ,
890898 },
891899 timeout = None ,
892900 )
@@ -900,6 +908,12 @@ def test_result_with_max_results(self):
900908 "jobReference" : {"projectId" : self .PROJECT , "jobId" : self .JOB_ID },
901909 "schema" : {"fields" : [{"name" : "col1" , "type" : "STRING" }]},
902910 "totalRows" : "5" ,
911+ # These rows are discarded because max_results is set.
912+ "rows" : [
913+ {"f" : [{"v" : "xyz" }]},
914+ {"f" : [{"v" : "uvw" }]},
915+ {"f" : [{"v" : "rst" }]},
916+ ],
903917 }
904918 query_page_resource = {
905919 "totalRows" : "5" ,
@@ -925,6 +939,7 @@ def test_result_with_max_results(self):
925939 rows = list (result )
926940
927941 self .assertEqual (len (rows ), 3 )
942+ self .assertEqual (rows [0 ].col1 , "abc" )
928943 self .assertEqual (len (connection .api_request .call_args_list ), 2 )
929944 query_page_request = connection .api_request .call_args_list [1 ]
930945 self .assertEqual (
@@ -979,7 +994,7 @@ def test_result_w_retry(self):
979994 query_results_call = mock .call (
980995 method = "GET" ,
981996 path = f"/projects/{ self .PROJECT } /queries/{ self .JOB_ID } " ,
982- query_params = {"maxResults" : 0 , " location" : "asia-northeast1" },
997+ query_params = {"location" : "asia-northeast1" },
983998 timeout = None ,
984999 )
9851000 reload_call = mock .call (
@@ -1079,6 +1094,12 @@ def test_result_w_page_size(self):
10791094 "jobReference" : {"projectId" : self .PROJECT , "jobId" : self .JOB_ID },
10801095 "schema" : {"fields" : [{"name" : "col1" , "type" : "STRING" }]},
10811096 "totalRows" : "4" ,
1097+ # These rows are discarded because page_size is set.
1098+ "rows" : [
1099+ {"f" : [{"v" : "xyz" }]},
1100+ {"f" : [{"v" : "uvw" }]},
1101+ {"f" : [{"v" : "rst" }]},
1102+ ],
10821103 }
10831104 job_resource = self ._make_resource (started = True , ended = True , location = "US" )
10841105 q_config = job_resource ["configuration" ]["query" ]
@@ -1109,6 +1130,7 @@ def test_result_w_page_size(self):
11091130 # Assert
11101131 actual_rows = list (result )
11111132 self .assertEqual (len (actual_rows ), 4 )
1133+ self .assertEqual (actual_rows [0 ].col1 , "row1" )
11121134
11131135 query_results_path = f"/projects/{ self .PROJECT } /queries/{ self .JOB_ID } "
11141136 query_page_1_call = mock .call (
@@ -1142,6 +1164,12 @@ def test_result_with_start_index(self):
11421164 "jobReference" : {"projectId" : self .PROJECT , "jobId" : self .JOB_ID },
11431165 "schema" : {"fields" : [{"name" : "col1" , "type" : "STRING" }]},
11441166 "totalRows" : "5" ,
1167+ # These rows are discarded because start_index is set.
1168+ "rows" : [
1169+ {"f" : [{"v" : "xyz" }]},
1170+ {"f" : [{"v" : "uvw" }]},
1171+ {"f" : [{"v" : "rst" }]},
1172+ ],
11451173 }
11461174 tabledata_resource = {
11471175 "totalRows" : "5" ,
@@ -1168,6 +1196,7 @@ def test_result_with_start_index(self):
11681196 rows = list (result )
11691197
11701198 self .assertEqual (len (rows ), 4 )
1199+ self .assertEqual (rows [0 ].col1 , "abc" )
11711200 self .assertEqual (len (connection .api_request .call_args_list ), 2 )
11721201 tabledata_list_request = connection .api_request .call_args_list [1 ]
11731202 self .assertEqual (
0 commit comments