blob: 1b58bcdee1bb2ba44501136689996b9d6a3b5322 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
from iotdb.IoTDBContainer import IoTDBContainer
from iotdb.Session import Session
from iotdb.template.InternalNode import InternalNode
from iotdb.template.MeasurementNode import MeasurementNode
from iotdb.template.Template import Template
from iotdb.utils.IoTDBConstants import TSDataType, Compressor, TSEncoding
def test_template_create():
with IoTDBContainer("iotdb:dev") as db:
db: IoTDBContainer
session = Session(db.get_container_host_ip(), db.get_exposed_port(6667))
session.open(False)
measurement_template_name = "template_python"
template = Template(name=measurement_template_name, share_time=False)
m_node_1 = MeasurementNode(
name="s1",
data_type=TSDataType.INT64,
encoding=TSEncoding.RLE,
compression_type=Compressor.SNAPPY,
)
m_node_2 = MeasurementNode(
name="s2",
data_type=TSDataType.INT64,
encoding=TSEncoding.RLE,
compression_type=Compressor.SNAPPY,
)
m_node_3 = MeasurementNode(
name="s3",
data_type=TSDataType.INT64,
encoding=TSEncoding.RLE,
compression_type=Compressor.SNAPPY,
)
template.add_template(m_node_1)
template.add_template(m_node_2)
template.add_template(m_node_3)
session.create_schema_template(template)
assert session.show_measurements_in_template(measurement_template_name) == [
"s3",
"s1",
"s2",
]
session.drop_schema_template(measurement_template_name)
session.close()
def test_set_template():
with IoTDBContainer("iotdb:dev") as db:
db: IoTDBContainer
session = Session(db.get_container_host_ip(), db.get_exposed_port(6667))
session.open(False)
template_name = "set_template_python"
template = Template(name=template_name, share_time=False)
m_node_x = MeasurementNode(
name="x",
data_type=TSDataType.INT64,
encoding=TSEncoding.RLE,
compression_type=Compressor.SNAPPY,
)
m_node_y = MeasurementNode(
name="y",
data_type=TSDataType.INT64,
encoding=TSEncoding.RLE,
compression_type=Compressor.SNAPPY,
)
template.add_template(m_node_x)
template.add_template(m_node_y)
session.create_schema_template(template)
session.execute_non_query_statement("CREATE DATABASE root.python")
session.set_schema_template(template_name, "root.python.GPS")
session.execute_non_query_statement(
"create timeseries of device template on root.python.GPS"
)
assert session.show_paths_template_set_on(template_name) == ["root.python.GPS"]
assert session.show_paths_template_using_on(template_name) == [
"root.python.GPS"
]
session.execute_non_query_statement(
"delete timeseries of device template from root.python.GPS"
)
session.unset_schema_template(template_name, "root.python.GPS")
session.drop_schema_template(template_name)
session.close()