@@ -821,9 +821,6 @@ def test_pseudonymize_string_adds_pseudonyms(self):
821
821
assert len (self .object .result .data ) == 1
822
822
823
823
def test_resolve_from_cache_pseudonym (self ):
824
- self .object .metrics .new_results = 0
825
- self .object .metrics .cached_results = 0
826
- self .object .metrics .num_cache_entries = 0
827
824
rule_dict = {
828
825
"filter" : "winlog.event_id: 1234 AND winlog.provider_name: Test456" ,
829
826
"pseudonymizer" : {
@@ -844,15 +841,15 @@ def test_resolve_from_cache_pseudonym(self):
844
841
}
845
842
}
846
843
self ._load_specific_rule (rule_dict )
844
+ self .object .metrics .new_results = 0
845
+ self .object .metrics .cached_results = 0
846
+ self .object .metrics .num_cache_entries = 0
847
847
self .object .process (event )
848
848
assert self .object .metrics .new_results == 1
849
849
assert self .object .metrics .cached_results == 1
850
850
assert self .object .metrics .num_cache_entries == 1
851
851
852
852
def test_resolve_from_cache_pseudonymize_urls (self ):
853
- self .object .metrics .new_results = 0
854
- self .object .metrics .cached_results = 0
855
- self .object .metrics .num_cache_entries = 0
856
853
rule_dict = {
857
854
"filter" : "filter_this: does_not_matter" ,
858
855
"pseudonymizer" : {
@@ -869,6 +866,9 @@ def test_resolve_from_cache_pseudonymize_urls(self):
869
866
"and_pseudo_this" : "https://www.pseudo.this.de" ,
870
867
}
871
868
self ._load_specific_rule (rule_dict )
869
+ self .object .metrics .new_results = 0
870
+ self .object .metrics .cached_results = 0
871
+ self .object .metrics .num_cache_entries = 0
872
872
self .object .process (event )
873
873
# 1 subdomains -> pseudonym_cache, 1 url -> url_cache
874
874
assert self .object .metrics .new_results == 2
@@ -1089,3 +1089,37 @@ def test_setup_raises_invalid_configuration_on_missing_regex_mapping(self):
1089
1089
)
1090
1090
with pytest .raises (InvalidConfigurationError , match = error_message ):
1091
1091
self .object .setup ()
1092
+
1093
+ def test_cache_metrics_updated (self ):
1094
+ rule_dict = {
1095
+ "filter" : "winlog.event_id: 1234 AND winlog.provider_name: Test456" ,
1096
+ "pseudonymizer" : {
1097
+ "mapping" : {
1098
+ "winlog.event_data.param1" : "RE_WHOLE_FIELD" ,
1099
+ }
1100
+ },
1101
+ }
1102
+ event = {
1103
+ "@timestamp" : "custom timestamp" ,
1104
+ "winlog" : {
1105
+ "event_id" : 1234 ,
1106
+ "provider_name" : "Test456" ,
1107
+ "event_data" : {
1108
+ "param1" : "Pseudonymize me - appears twice!" ,
1109
+ },
1110
+ },
1111
+ }
1112
+ self ._load_specific_rule (rule_dict )
1113
+
1114
+ self .object .metrics .new_results = 0
1115
+ self .object .metrics .cached_results = 0
1116
+ self .object .metrics .num_cache_entries = 0
1117
+
1118
+ self .object .process (deepcopy (event ))
1119
+ self .object .process (deepcopy (event ))
1120
+ self .object .process (event )
1121
+ # because the event is the same, the result is cached
1122
+ # metrics are mocked by integers and incremented by cache_info results
1123
+ assert self .object .metrics .new_results == 3
1124
+ assert self .object .metrics .cached_results == 3
1125
+ assert self .object .metrics .num_cache_entries == 3
0 commit comments