diff options
| author | fumingwei <[email protected]> | 2023-10-18 17:37:53 +0800 |
|---|---|---|
| committer | 付明卫 <[email protected]> | 2023-10-19 09:19:36 +0000 |
| commit | e1bde3e05693c8435aad44923f705d35dee802c4 (patch) | |
| tree | 561c678391ff0a46fbfa856f91ede054fe75dd12 /test | |
| parent | 1424397232edc426b33c870a85ebcf97cf3fb166 (diff) | |
feature:Add disable_table option for local exporter.feature-update-support-multi-table
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_fieldstat_exporter.py | 156 |
1 files changed, 95 insertions, 61 deletions
diff --git a/test/test_fieldstat_exporter.py b/test/test_fieldstat_exporter.py index 3a68512..562af4b 100644 --- a/test/test_fieldstat_exporter.py +++ b/test/test_fieldstat_exporter.py @@ -259,30 +259,30 @@ class TestCounterTable(unittest.TestCase): def setUp(self): self.c_table = CounterTable() - - def test_add_field_names(self): - self.c_table.field_names = [] - + def test_create_row_table(self): fields_names_0 = {"column0": 0, "column1": 1} - self.c_table.add_field_names(fields_names_0) - self.assertEqual(self.c_table.field_names, ["", "column0", "column1"]) + table = self.c_table.create_row_table(fields_names_0) + self.assertEqual(table.field_names, ["", "column0", "column1"]) fields_names_1 = {"column2": 2, "column3": 3} - self.c_table.add_field_names(fields_names_1) - self.assertEqual(self.c_table.field_names, ["", "column0", "column1"]) + table = self.c_table.create_row_table(fields_names_1) + self.assertEqual(table.field_names, ["", "column2", "column3"]) - - def test_append_field_rows(self): + def test_add_row_table_row(self): self.c_table.field_names = [] - fields_names_0 = {"column0": 0, "column1": 1} - self.c_table.append_field_rows({"name": "0"}, {}, fields_names_0) - self.assertEqual(self.c_table.rows[0], ["name_0", 0, 1]) - - fields_names_1 = {"column2": 2, "column3": 3} - self.c_table.append_field_rows({"name": "1"}, {}, fields_names_1) - self.assertEqual(self.c_table.rows[1], ["name_1", 2, 3]) + table = self.c_table.create_row_table({"column0": 0, "column1": 1}) + tags = {"row": "0"} + field = {"column0": 0, "column1":1} + self.c_table.add_row_table_row(None, tags, field) + table_str = table.get_string() + row_count = len(table_str.split("\n")) - 1 + self.assertEqual(row_count, 0) + + self.c_table.add_row_table_row(table, tags, field) + row_count = len(table_str.split("\n")) - 1 + self.assertEqual(row_count, 0) def test_add_table_column(self): head = "policy_hit" @@ -325,16 +325,6 @@ class TestCounterTable(unittest.TestCase): self.assertEqual(self.c_table.read_tables_num(), math.ceil(100/table_size)) - def test__build_rows_tables(self): - self.c_table.field_names = ["", "column0", "column1"] - self.c_table.rows = [["row0", 1, 1], ["row1", 2, 2]] - - n_tables_before = self.c_table.read_tables_num() - self.c_table._CounterTable__build_rows_tables() - n_table_after = self.c_table.read_tables_num() - self.assertEqual(n_table_after - n_tables_before, 1) - - def test_print_tables(self): self.c_table.columns = [] for i in range(100): @@ -572,7 +562,7 @@ class TestLocalExporter(unittest.TestCase): ret = self.local._LocalExporter__match_tags(tags) self.assertEqual(ret, True) - def test__is_counter_table(self): + def test__generate_table_bundle(self): json_data_0 = [{ "name": "-", "tags": { "send_log": "sum" @@ -584,8 +574,9 @@ class TestLocalExporter(unittest.TestCase): "timestamp_ms": 1000, "timestamp_ms_delta": 0 }] - ret = self.local._LocalExporter__is_counter_table(json_data_0) - self.assertEqual(ret, False) + table_bundle_0 = self.local._LocalExporter__generate_table_bundle(json_data_0) + self.assertEqual(table_bundle_0["not_table_field"], []) + self.assertEqual(len(table_bundle_0["send_logT_fail_logT_fail_log_delta-"]), 1) json_data_1 = [{ "name": "-", "tags": { @@ -609,14 +600,9 @@ class TestLocalExporter(unittest.TestCase): "timestamp_ms": 1000, "timestamp_ms_delta": 0 }] - - self.local.match_tags = {"policy": 1} - ret = self.local._LocalExporter__is_counter_table(json_data_1) - self.assertEqual(ret, True) - - self.local.match_tags = {"send_log": "sum"} - ret = self.local._LocalExporter__is_counter_table(json_data_1) - self.assertEqual(ret, False) + table_bundle_1 = self.local._LocalExporter__generate_table_bundle(json_data_1) + self.assertEqual(table_bundle_1["not_table_field"], []) + self.assertEqual(len(table_bundle_1["send_logT_fail_logT_fail_log_delta-"]), 2) json_data_2 = [{ "name": "-", "tags": { @@ -640,9 +626,10 @@ class TestLocalExporter(unittest.TestCase): "timestamp_ms": 1000, "timestamp_ms_delta": 0 }] - self.local.match_tags = {} - ret = self.local._LocalExporter__is_counter_table(json_data_2) - self.assertEqual(ret, False) + table_bundle_2 = self.local._LocalExporter__generate_table_bundle(json_data_2) + self.assertEqual(table_bundle_2["not_table_field"], []) + self.assertEqual(len(table_bundle_2["send_logT_fail_logT_fail_log_delta-"]), 1) + self.assertEqual(len(table_bundle_2["send_log_0T_fail_logT_fail_log_delta-"]), 1) json_data_3 = [{ "name": "-", "tags": { @@ -666,26 +653,72 @@ class TestLocalExporter(unittest.TestCase): "timestamp_ms": 1000, "timestamp_ms_delta": 0 }] - self.local.match_tags = {} - ret = self.local._LocalExporter__is_counter_table(json_data_3) - self.assertEqual(ret, True) + table_bundle_3 = self.local._LocalExporter__generate_table_bundle(json_data_3) + self.assertEqual(table_bundle_3["not_table_field"], []) + self.assertEqual(len(table_bundle_3["send_logT_fail_logT_fail_log_delta-"]), 2) + + json_data_4 = [{ "name": "-", + "tags": { + "send_log": "sum" + }, + "fields": { + "T_fail_log": 2, + "T_fail_log_delta": 2 + }, + "timestamp_ms": 1000, + "timestamp_ms_delta": 0 + }, + { "name": "-", + "tags": { + "send_log": "firewall" + }, + "fields": { + "T_fail_log": 2, + "T_fail_log_delta": 2 + }, + "timestamp_ms": 1000, + "timestamp_ms_delta": 0 + }] + self.local.disable_table = True + table_bundle_4 = self.local._LocalExporter__generate_table_bundle(json_data_4) + self.assertEqual(len(table_bundle_4["not_table_field"]), 2) + + def test__read_match_tags_objects(self): + json_objects = [{ "name": "-", + "tags": { + "send_log": "sum" + }, + "fields": { + "T_fail_log": 2, + "T_fail_log_delta": 2 + }, + "timestamp_ms": 1000, + "timestamp_ms_delta": 0 + }, + { "name": "-", + "tags": { + "send_log": "firewall" + }, + "fields": { + "T_fail_log": 2, + "T_fail_log_delta": 2 + }, + "timestamp_ms": 1000, + "timestamp_ms_delta": 0 + }] + + self.local.match_tags = {} + match_object = self.local._LocalExporter__read_match_tags_objects(json_objects) + self.assertEqual(len(match_object), 2) + + self.local.match_tags = {"test": 1} + match_object = self.local._LocalExporter__read_match_tags_objects(json_objects) + self.assertEqual(len(match_object), 0) + + self.local.match_tags = {"send_log": "firewall"} + match_object = self.local._LocalExporter__read_match_tags_objects(json_objects) + self.assertEqual(len(match_object), 1) - def test__parse_json_object(self): - #counter json object - peradd = len(self.local.ctable.columns) - self.local._LocalExporter__parse_json_object(self.counter_json_object) - postadd = len(self.local.ctable.columns) - self.assertEqual(postadd - peradd, 1) - #histogram json object - peradd = len(self.local.htable.tables) - self.local._LocalExporter__parse_json_object(self.hist_json_object) - postadd = len(self.local.htable.tables) - self.assertEqual(postadd - peradd, 1) - #hll json object - peradd = len(self.local.hlltable.columns) - self.local._LocalExporter__parse_json_object(self.hll_json_object) - postadd = len(self.local.hlltable.columns) - self.assertEqual(postadd - peradd, 1) def test_parse_data(self): self.local.hlltable = CounterTable() @@ -750,13 +783,14 @@ class TestFieldstatExporter(unittest.TestCase): self.assertEqual(args.loop, False) self.assertEqual(args.clear_screen, False) - args = parser.parse_args(["local", "--loop", "--clear-screen", "-i", "1000", "--display-hist", "--display-hll", "--display-counter", "--match-tags", "policy:1,rule:1"]) + args = parser.parse_args(["local", "--loop", "--clear-screen", "-i", "1000", "--display-hist", "--display-hll", "--display-counter", "--disable-table", "--match-tags", "policy:1,rule:1"]) self.assertEqual(args.interval, 1000) self.assertEqual(args.loop, True) self.assertEqual(args.clear_screen, True) self.assertEqual(args.display_counter, True) self.assertEqual(args.display_hist, True) self.assertEqual(args.display_hll, True) + self.assertEqual(args.disable_table, True) self.assertEqual(args.match_tags, "policy:1,rule:1") |
