Beispiel #1
0
    def test_progressive_unsupported(self):
        with self.open_json_file("progressive_result.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            with pytest.raises(KustoUnsupportedApiError):
                for _ in reader:
                    pass

        with self.open_json_file("deft_with_progressive_result.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            with pytest.raises(KustoUnsupportedApiError):
                for _ in reader:
                    pass
Beispiel #2
0
    def test_sanity_kusto_streaming_response_dataset(self):
        with self.open_json_file("deft.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            response = KustoStreamingResponseDataSet(reader)
            primary_tables = response.iter_primary_results()

            # Before reading all of the tables these results won't be available
            with pytest.raises(KustoStreamingQueryError):
                errors_count = response.errors_count
            with pytest.raises(KustoStreamingQueryError):
                exceptions = response.get_exceptions()

            first_table = next(primary_tables)

            # Can't advance by default until current table is finished
            with pytest.raises(KustoStreamingQueryError):
                next(primary_tables)

            self._assert_sanity_query_primary_results(first_table)

            assert next(primary_tables, None) is None
            assert response.errors_count == 0
            assert response.get_exceptions() == []

            assert response.finished
Beispiel #3
0
    def test_dynamic(self):
        with self.open_json_file("dynamic.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            for i in reader:
                if i["FrameType"] == FrameType.DataTable and i[
                        "TableKind"] == WellKnownDataSet.PrimaryResult.value:
                    row = next(i["Rows"])
                    self._assert_dynamic_response(row)
Beispiel #4
0
    def test_exception_in_row(self):
        with self.open_json_file(
                "query_partial_results_defer_is_false.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            response = KustoStreamingResponseDataSet(reader)
            table = next(response.iter_primary_results())
            with pytest.raises(KustoServiceError):
                rows = [r for r in table]
Beispiel #5
0
    def test_alternative_order(self):
        with self.open_json_file("alternative_order.json") as f:
            reader = StreamingDataSetEnumerator(JsonTokenReader(f))

            for i in reader:
                if i["FrameType"] == FrameType.DataTable and i[
                        "TableKind"] == WellKnownDataSet.PrimaryResult.value:
                    columns = [
                        KustoResultColumn(column, index)
                        for index, column in enumerate(i["Columns"])
                    ]
                    self._assert_sanity_query_primary_results(
                        KustoResultRow(columns, r) for r in i["Rows"])
Beispiel #6
0
 def get_reader(self, data) -> JsonTokenReader:
     return JsonTokenReader(StringIO(data))