def test_blob_info_json_mapping(self):
     """Tests serialization of json ingestion blob info."""
     validation_policy = ValidationPolicy(
         ValidationOptions.ValidateCsvInputConstantColumns,
         ValidationImplications.BestEffort)
     properties = IngestionProperties(
         database="database",
         table="table",
         dataFormat=DataFormat.JSON,
         ingestionMapping=[
             ColumnMapping("ColumnName", "datatype", path="jsonpath")
         ],
         additionalTags=["tag"],
         ingestIfNotExists=["ingestIfNotExistTags"],
         ingestByTags=["ingestByTags"],
         dropByTags=["dropByTags"],
         flushImmediately=True,
         reportLevel=ReportLevel.DoNotReport,
         reportMethod=ReportMethod.Queue,
         validationPolicy=validation_policy,
     )
     blob = BlobDescriptor("somepath", 10)
     blob_info = _IngestionBlobInfo(blob,
                                    properties,
                                    auth_context="authorizationContextText")
     self._verify_ingestion_blob_info_result(blob_info.to_json())
    def test_blob_info_csv_mapping(self):
        """Tests serialization of csv ingestion blob info."""
        validation_policy = ValidationPolicy(
            ValidationOptions.ValidateCsvInputConstantColumns,
            ValidationImplications.BestEffort)
        column_mapping = ColumnMapping("ColumnName", "cslDataType", ordinal=1)

        properties = IngestionProperties(
            database="database",
            table="table",
            data_format=DataFormat.CSV,
            column_mappings=[column_mapping],
            additional_tags=["tag"],
            ingest_if_not_exists=["ingestIfNotExistTags"],
            ingest_by_tags=["ingestByTags"],
            drop_by_tags=["dropByTags"],
            flush_immediately=True,
            report_level=ReportLevel.DoNotReport,
            report_method=ReportMethod.Queue,
            validation_policy=validation_policy,
        )
        blob = BlobDescriptor("somepath", 10)
        blob_info = IngestionBlobInfo(blob,
                                      properties,
                                      auth_context="authorizationContextText")
        self._verify_ingestion_blob_info_result(blob_info.to_json())
def test_with_constant_value():
    IngestionProperties(
        database="database",
        table="table",
        column_mappings=[ColumnMapping("test", "int", const_value="1")],
        data_format=DataFormat.PARQUET,
        ingestion_mapping_kind=IngestionMappingKind.PARQUET,
    )
def test_duplicate_reference_and_column_mappings_raises():
    """Tests invalid ingestion properties."""
    with pytest.raises(KustoDuplicateMappingError):
        IngestionProperties(
            database="database",
            table="table",
            column_mappings=[ColumnMapping("test", "int")],
            ingestion_mapping_reference="ingestionMappingReference")
def test_mapping_kind_data_format_with_path():
    IngestionProperties(
        database="database",
        table="table",
        column_mappings=[ColumnMapping("test", "int", "path")],
        data_format=DataFormat.JSON,
        ingestion_mapping_kind=IngestionMappingKind.JSON,
    )
def test_mapping_kind_data_format_with_no_properties():
    with pytest.raises(KustoMappingError):
        IngestionProperties(
            database="database",
            table="table",
            column_mappings=[ColumnMapping("test", "int")],
            data_format=DataFormat.AVRO,
            ingestion_mapping_kind=IngestionMappingKind.AVRO,
        )
def test_mapping_kind_data_format_invalid_no_name():
    with pytest.raises(KustoMappingError):
        IngestionProperties(
            database="database",
            table="table",
            column_mappings=[ColumnMapping("", "int")],
            data_format=DataFormat.JSON,
            ingestion_mapping_kind=IngestionMappingKind.JSON,
        )
def test_mapping_kind_data_format_with_transform():
    IngestionProperties(
        database="database",
        table="table",
        column_mappings=[
            ColumnMapping("test",
                          "int",
                          transform=TransformationMethod.SOURCE_LINE_NUMBER)
        ],
        data_format=DataFormat.JSON,
        ingestion_mapping_kind=IngestionMappingKind.JSON,
    )
Example #9
0
 def test_table_csv_mappings():
     """A method to define csv mappings to test table."""
     mappings = list()
     mappings.append(
         ColumnMapping(column_name="rownumber",
                       column_type="int",
                       ordinal=0))
     mappings.append(
         ColumnMapping(column_name="rowguid",
                       column_type="string",
                       ordinal=1))
     mappings.append(
         ColumnMapping(column_name="xdouble", column_type="real",
                       ordinal=2))
     mappings.append(
         ColumnMapping(column_name="xfloat", column_type="real", ordinal=3))
     mappings.append(
         ColumnMapping(column_name="xbool", column_type="bool", ordinal=4))
     mappings.append(
         ColumnMapping(column_name="xint16", column_type="int", ordinal=5))
     mappings.append(
         ColumnMapping(column_name="xint32", column_type="int", ordinal=6))
     mappings.append(
         ColumnMapping(column_name="xint64", column_type="long", ordinal=7))
     mappings.append(
         ColumnMapping(column_name="xuint8", column_type="long", ordinal=8))
     mappings.append(
         ColumnMapping(column_name="xuint16", column_type="long",
                       ordinal=9))
     mappings.append(
         ColumnMapping(column_name="xuint32",
                       column_type="long",
                       ordinal=10))
     mappings.append(
         ColumnMapping(column_name="xuint64",
                       column_type="long",
                       ordinal=11))
     mappings.append(
         ColumnMapping(column_name="xdate",
                       column_type="datetime",
                       ordinal=12))
     mappings.append(
         ColumnMapping(column_name="xsmalltext",
                       column_type="string",
                       ordinal=13))
     mappings.append(
         ColumnMapping(column_name="xtext",
                       column_type="string",
                       ordinal=14))
     mappings.append(
         ColumnMapping(column_name="xnumberAsText",
                       column_type="string",
                       ordinal=15))
     mappings.append(
         ColumnMapping(column_name="xtime",
                       column_type="timespan",
                       ordinal=16))
     mappings.append(
         ColumnMapping(column_name="xtextWithNulls",
                       column_type="string",
                       ordinal=17))
     mappings.append(
         ColumnMapping(column_name="xdynamicWithNulls",
                       column_type="dynamic",
                       ordinal=18))
     return mappings
Example #10
0
 def test_table_json_mappings():
     """A method to define json mappings to test table."""
     mappings = list()
     mappings.append(
         ColumnMapping(column_name="rownumber",
                       path="$.rownumber",
                       column_type="int"))
     mappings.append(
         ColumnMapping(column_name="rowguid",
                       path="$.rowguid",
                       column_type="string"))
     mappings.append(
         ColumnMapping(column_name="xdouble",
                       path="$.xdouble",
                       column_type="real"))
     mappings.append(
         ColumnMapping(column_name="xfloat",
                       path="$.xfloat",
                       column_type="real"))
     mappings.append(
         ColumnMapping(column_name="xbool",
                       path="$.xbool",
                       column_type="bool"))
     mappings.append(
         ColumnMapping(column_name="xint16",
                       path="$.xint16",
                       column_type="int"))
     mappings.append(
         ColumnMapping(column_name="xint32",
                       path="$.xint32",
                       column_type="int"))
     mappings.append(
         ColumnMapping(column_name="xint64",
                       path="$.xint64",
                       column_type="long"))
     mappings.append(
         ColumnMapping(column_name="xuint8",
                       path="$.xuint8",
                       column_type="long"))
     mappings.append(
         ColumnMapping(column_name="xuint16",
                       path="$.xuint16",
                       column_type="long"))
     mappings.append(
         ColumnMapping(column_name="xuint32",
                       path="$.xuint32",
                       column_type="long"))
     mappings.append(
         ColumnMapping(column_name="xuint64",
                       path="$.xuint64",
                       column_type="long"))
     mappings.append(
         ColumnMapping(column_name="xdate",
                       path="$.xdate",
                       column_type="datetime"))
     mappings.append(
         ColumnMapping(column_name="xsmalltext",
                       path="$.xsmalltext",
                       column_type="string"))
     mappings.append(
         ColumnMapping(column_name="xtext",
                       path="$.xtext",
                       column_type="string"))
     mappings.append(
         ColumnMapping(column_name="xnumberAsText",
                       path="$.xnumberAsText",
                       column_type="string"))
     mappings.append(
         ColumnMapping(column_name="xtime",
                       path="$.xtime",
                       column_type="timespan"))
     mappings.append(
         ColumnMapping(column_name="xtextWithNulls",
                       path="$.xtextWithNulls",
                       column_type="string"))
     mappings.append(
         ColumnMapping(column_name="xdynamicWithNulls",
                       path="$.xdynamicWithNulls",
                       column_type="dynamic"))
     return mappings