Skip to content

Commit 5da338a

Browse files
Extended tests on exporter_create_ts() (#279)
1 parent d8d07a3 commit 5da338a

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

redisbench_admin/utils/remote.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -549,19 +549,22 @@ def push_data_to_redistimeseries(rts, time_series_dict: dict, expire_msecs=0):
549549

550550

551551
def exporter_create_ts(rts, time_series, timeseries_name):
552+
updated_create = False
552553
try:
553-
if rts.redis.exists(timeseries_name) is False:
554+
if rts.redis.exists(timeseries_name):
555+
updated_create = check_rts_labels(rts, time_series, timeseries_name)
556+
else:
554557
logging.debug(
555558
"Creating timeseries named {} with labels {}".format(
556559
timeseries_name, time_series["labels"]
557560
)
558561
)
559562
rts.create(timeseries_name, labels=time_series["labels"], chunk_size=128)
560-
else:
561-
check_rts_labels(rts, time_series, timeseries_name)
563+
updated_create = True
564+
562565
except redis.exceptions.ResponseError as e:
563566
if "already exists" in e.__str__():
564-
check_rts_labels(rts, time_series, timeseries_name)
567+
updated_create = check_rts_labels(rts, time_series, timeseries_name)
565568
pass
566569
else:
567570
logging.error(
@@ -570,9 +573,11 @@ def exporter_create_ts(rts, time_series, timeseries_name):
570573
)
571574
)
572575
raise
576+
return updated_create
573577

574578

575579
def check_rts_labels(rts, time_series, timeseries_name):
580+
updated_create = False
576581
logging.debug(
577582
"Timeseries named {} already exists. Checking that the labels match.".format(
578583
timeseries_name
@@ -586,7 +591,9 @@ def check_rts_labels(rts, time_series, timeseries_name):
586591
timeseries_name, time_series["labels"]
587592
)
588593
)
594+
updated_create = True
589595
rts.alter(timeseries_name, labels=time_series["labels"])
596+
return updated_create
590597

591598

592599
def extract_redisgraph_version_from_resultdict(results_dict: dict):

tests/test_remote.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,3 +449,27 @@ def test_common_timeseries_extraction():
449449
assert timeseries_dict[key_self_t2]["labels"]["target+branch"] == "{} {}".format(
450450
break_by_value, "target-2"
451451
)
452+
453+
454+
def test_exporter_create_ts():
455+
timeseries_name = "ts1"
456+
time_series = {"labels": {"metric-type": "commandstats"}}
457+
try:
458+
rts = Client(port=16379)
459+
rts.redis.ping()
460+
rts.redis.flushall()
461+
assert True == exporter_create_ts(rts, time_series, timeseries_name)
462+
assert rts.redis.exists(timeseries_name)
463+
# no update
464+
assert False == exporter_create_ts(rts, time_series, timeseries_name)
465+
# change existing label
466+
time_series["labels"]["metric-type"] = "latencystats"
467+
assert True == exporter_create_ts(rts, time_series, timeseries_name)
468+
# add new label
469+
time_series["labels"]["metric-name"] = "latency_usecs"
470+
assert True == exporter_create_ts(rts, time_series, timeseries_name)
471+
# no update
472+
assert False == exporter_create_ts(rts, time_series, timeseries_name)
473+
474+
except redis.exceptions.ConnectionError:
475+
pass

0 commit comments

Comments
 (0)