mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 19:42:00 +00:00
b75963d370
This PR formats all the `*.py` files found under the `tests/integration` folder. It also reorders the imports and cleans up a bunch of unused imports. The formatting also takes care of other things like wrapping lines and fixing spaces and indents such that the tests look more readable.
60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
import time
|
|
|
|
import pytest
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
node1 = cluster.add_instance('node1', with_zookeeper=True,
|
|
main_configs=['configs/asynchronous_metrics_update_period_s.xml'])
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def started_cluster():
|
|
try:
|
|
cluster.start()
|
|
yield cluster
|
|
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
|
|
# Tests that the event_time_microseconds field in system.asynchronous_metric_log table gets populated.
|
|
# asynchronous metrics are updated once every 60s by default. To make the test run faster, the setting
|
|
# asynchronous_metric_update_period_s is being set to 2s so that the metrics are populated faster and
|
|
# are available for querying during the test.
|
|
def test_event_time_microseconds_field(started_cluster):
|
|
try:
|
|
cluster.start()
|
|
node1.query("SET log_queries = 1;")
|
|
node1.query("CREATE DATABASE replica;")
|
|
query_create = '''CREATE TABLE replica.test
|
|
(
|
|
id Int64,
|
|
event_time DateTime
|
|
)
|
|
Engine=MergeTree()
|
|
PARTITION BY toYYYYMMDD(event_time)
|
|
ORDER BY id;'''
|
|
time.sleep(2)
|
|
node1.query(query_create)
|
|
node1.query('''INSERT INTO replica.test VALUES (1, now())''')
|
|
node1.query("SYSTEM FLUSH LOGS;")
|
|
# query assumes that the event_time field is accurate
|
|
equals_query = '''WITH (
|
|
(
|
|
SELECT event_time_microseconds
|
|
FROM system.asynchronous_metric_log
|
|
ORDER BY event_time DESC
|
|
LIMIT 1
|
|
) AS time_with_microseconds,
|
|
(
|
|
SELECT event_time
|
|
FROM system.asynchronous_metric_log
|
|
ORDER BY event_time DESC
|
|
LIMIT 1
|
|
) AS time)
|
|
SELECT if(dateDiff('second', toDateTime(time_with_microseconds), toDateTime(time)) = 0, 'ok', 'fail')'''
|
|
assert "ok\n" in node1.query(equals_query)
|
|
finally:
|
|
cluster.shutdown()
|