Skip to content

Commit fc0c5e3

Browse files
committed
ensure generic adder supports escaping
1 parent 6247d5f commit fc0c5e3

File tree

3 files changed

+372
-607
lines changed

3 files changed

+372
-607
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
comp\\lex\.field: "value"
2+
"comp\\\\lex\\.quoted\\.field": "quoted"
3+
comp\\lex\.nested.field: 42
4+
nested.comp\\lex\.field: 1337

tests/unit/ng/processor/generic_adder/test_generic_adder.py

Lines changed: 10 additions & 290 deletions
Original file line numberDiff line numberDiff line change
@@ -14,303 +14,23 @@
1414
from logprep.ng.event.log_event import LogEvent
1515
from logprep.processor.base.exceptions import InvalidRuleDefinitionError
1616
from tests.unit.ng.processor.base import BaseProcessorTestCase
17+
from tests.unit.processor.generic_adder.test_generic_adder import (
18+
failure_test_cases as non_ng_failure_test_cases,
19+
)
20+
from tests.unit.processor.generic_adder.test_generic_adder import (
21+
test_cases as non_ng_test_cases,
22+
)
1723

1824
RULES_DIR_MISSING = "tests/testdata/unit/generic_adder/rules_missing"
1925
RULES_DIR_INVALID = "tests/testdata/unit/generic_adder/rules_invalid"
2026
RULES_DIR_FIRST_EXISTING = "tests/testdata/unit/generic_adder/rules_first_existing"
2127

2228

23-
class TestGenericAdder(BaseProcessorTestCase):
24-
test_cases = [ # testcase, rule, event, expected
25-
(
26-
"Add from file",
27-
{
28-
"filter": "add_list_generic_test",
29-
"generic_adder": {
30-
"add_from_file": "tests/testdata/unit/generic_adder/additions_file.yml"
31-
},
32-
},
33-
{"add_list_generic_test": "Test", "event_id": 123},
34-
{
35-
"add_list_generic_test": "Test",
36-
"event_id": 123,
37-
"some_added_field": "some value",
38-
"another_added_field": "another_value",
39-
"dotted": {"added": {"field": "yet_another_value"}},
40-
},
41-
),
42-
(
43-
"Add from file in list",
44-
{
45-
"filter": "add_lists_one_generic_test",
46-
"generic_adder": {
47-
"add_from_file": ["tests/testdata/unit/generic_adder/additions_file.yml"]
48-
},
49-
},
50-
{"add_lists_one_generic_test": "Test", "event_id": 123},
51-
{
52-
"add_lists_one_generic_test": "Test",
53-
"event_id": 123,
54-
"some_added_field": "some value",
55-
"another_added_field": "another_value",
56-
"dotted": {"added": {"field": "yet_another_value"}},
57-
},
58-
),
59-
(
60-
"Add from two files",
61-
{
62-
"filter": "add_lists_two_generic_test",
63-
"generic_adder": {
64-
"add_from_file": [
65-
"tests/testdata/unit/generic_adder/additions_file.yml",
66-
"tests/testdata/unit/generic_adder/additions_file_2.yml",
67-
]
68-
},
69-
},
70-
{"add_lists_two_generic_test": "Test", "event_id": 123},
71-
{
72-
"add_lists_two_generic_test": "Test",
73-
"event_id": 123,
74-
"added_from_other_file": "some field from another file",
75-
"some_added_field": "some value",
76-
"another_added_field": "another_value",
77-
"dotted": {"added": {"field": "yet_another_value"}},
78-
},
79-
),
80-
(
81-
"Add from two files using only first existing file",
82-
{
83-
"filter": "add_first_existing_generic_test",
84-
"generic_adder": {
85-
"add_from_file": [
86-
"tests/testdata/unit/generic_adder/additions_file.yml",
87-
"tests/testdata/unit/generic_adder/additions_file_2.yml",
88-
],
89-
"only_first_existing_file": True,
90-
},
91-
},
92-
{"add_first_existing_generic_test": "Test", "event_id": 123},
93-
{
94-
"add_first_existing_generic_test": "Test",
95-
"event_id": 123,
96-
"some_added_field": "some value",
97-
"another_added_field": "another_value",
98-
"dotted": {"added": {"field": "yet_another_value"}},
99-
},
100-
),
101-
(
102-
"Add from two files using only first existing file, but first file doesn't exist",
103-
{
104-
"filter": "add_first_existing_with_missing_generic_test",
105-
"generic_adder": {
106-
"add_from_file": [
107-
"I_DO_NOT_EXIST",
108-
"tests/testdata/unit/generic_adder/additions_file.yml",
109-
],
110-
"only_first_existing_file": True,
111-
},
112-
},
113-
{
114-
"add_first_existing_with_missing_generic_test": "Test",
115-
"event_id": 123,
116-
},
117-
{
118-
"add_first_existing_with_missing_generic_test": "Test",
119-
"event_id": 123,
120-
"some_added_field": "some value",
121-
"another_added_field": "another_value",
122-
"dotted": {"added": {"field": "yet_another_value"}},
123-
},
124-
),
125-
(
126-
"Add from rule definition",
127-
{
128-
"filter": "add_generic_test",
129-
"generic_adder": {
130-
"add": {
131-
"some_added_field": "some value",
132-
"another_added_field": "another_value",
133-
"dotted.added.field": "yet_another_value",
134-
}
135-
},
136-
"description": "",
137-
},
138-
{"add_generic_test": "Test", "event_id": 123},
139-
{
140-
"add_generic_test": "Test",
141-
"event_id": 123,
142-
"some_added_field": "some value",
143-
"another_added_field": "another_value",
144-
"dotted": {"added": {"field": "yet_another_value"}},
145-
},
146-
),
147-
(
148-
"Add to existing dict without conflict",
149-
{
150-
"filter": "add_generic_test",
151-
"generic_adder": {
152-
"add": {
153-
"some_added_field": "some value",
154-
"another_added_field": "another_value",
155-
"dotted.added.field": "yet_another_value",
156-
}
157-
},
158-
"description": "",
159-
},
160-
{
161-
"add_generic_test": "Test",
162-
"event_id": 123,
163-
"dotted": {"i_exist": "already"},
164-
},
165-
{
166-
"add_generic_test": "Test",
167-
"event_id": 123,
168-
"some_added_field": "some value",
169-
"another_added_field": "another_value",
170-
"dotted": {"added": {"field": "yet_another_value"}, "i_exist": "already"},
171-
},
172-
),
173-
(
174-
"Add to existing with setting overwrite",
175-
{
176-
"filter": "add_generic_test",
177-
"generic_adder": {
178-
"add": {
179-
"some_added_field": "some value",
180-
"another_added_field": "another_value",
181-
"dotted.added.field": "yet_another_value",
182-
},
183-
"overwrite_target": True,
184-
},
185-
},
186-
{
187-
"add_generic_test": "Test",
188-
"event_id": 123,
189-
"some_added_field": "some_non_dict",
190-
},
191-
{
192-
"add_generic_test": "Test",
193-
"event_id": 123,
194-
"some_added_field": "some value",
195-
"another_added_field": "another_value",
196-
"dotted": {"added": {"field": "yet_another_value"}},
197-
},
198-
),
199-
(
200-
"Extend list field with 'merge_with_target' enabled",
201-
{
202-
"filter": "extend_generic_test",
203-
"generic_adder": {
204-
"add": {
205-
"some_added_field": "some value",
206-
"another_added_field": "another_value",
207-
"dotted.added.field": "yet_another_value",
208-
},
209-
"merge_with_target": True,
210-
},
211-
},
212-
{"extend_generic_test": "Test", "event_id": 123, "some_added_field": []},
213-
{
214-
"extend_generic_test": "Test",
215-
"event_id": 123,
216-
"some_added_field": ["some value"],
217-
"another_added_field": "another_value",
218-
"dotted": {"added": {"field": "yet_another_value"}},
219-
},
220-
),
221-
(
222-
"Extend list field with 'merge_with_target' enabled",
223-
{
224-
"filter": "*",
225-
"generic_adder": {
226-
"add": {
227-
"some_added_field": ["some value"],
228-
},
229-
},
230-
},
231-
{"extend_generic_test": "Test"},
232-
{"extend_generic_test": "Test", "some_added_field": ["some value"]},
233-
),
234-
]
29+
test_cases = deepcopy(non_ng_test_cases)
30+
failure_test_cases = deepcopy(non_ng_failure_test_cases)
31+
23532

236-
failure_test_cases = [ # testcase, rule, event, expected, error_message
237-
(
238-
"Add to existing value with 'overwrite_target' disabled",
239-
{
240-
"filter": "add_generic_test",
241-
"generic_adder": {
242-
"add": {
243-
"some_added_field": "some value",
244-
"another_added_field": "another_value",
245-
"dotted.added.field": "yet_another_value",
246-
},
247-
"overwrite_target": False,
248-
},
249-
},
250-
{
251-
"add_generic_test": "Test",
252-
"event_id": 123,
253-
"some_added_field": "some_non_dict",
254-
},
255-
{
256-
"add_generic_test": "Test",
257-
"event_id": 123,
258-
"some_added_field": "some_non_dict",
259-
"another_added_field": "another_value",
260-
"dotted": {"added": {"field": "yet_another_value"}},
261-
"tags": ["_generic_adder_failure"],
262-
},
263-
r"subfields existed and could not be extended: some_added_field",
264-
),
265-
(
266-
"Extend list field with 'merge_with_target' disabled",
267-
{
268-
"filter": "extend_generic_test",
269-
"generic_adder": {
270-
"add": {
271-
"some_added_field": "some value",
272-
"another_added_field": "another_value",
273-
"dotted.added.field": "yet_another_value",
274-
},
275-
"merge_with_target": False,
276-
},
277-
},
278-
{"extend_generic_test": "Test", "event_id": 123, "some_added_field": []},
279-
{
280-
"extend_generic_test": "Test",
281-
"event_id": 123,
282-
"some_added_field": [],
283-
"another_added_field": "another_value",
284-
"dotted": {"added": {"field": "yet_another_value"}},
285-
"tags": ["_generic_adder_failure"],
286-
},
287-
r"subfields existed and could not be extended: some_added_field",
288-
),
289-
(
290-
"Extend list field with 'merge_with_target' enabled, but non-list target",
291-
{
292-
"filter": "extend_generic_test",
293-
"generic_adder": {
294-
"add": {
295-
"some_added_field": "some value",
296-
"another_added_field": "another_value",
297-
"dotted.added.field": "yet_another_value",
298-
},
299-
"merge_with_target": True,
300-
},
301-
},
302-
{"extend_generic_test": "Test", "event_id": 123, "some_added_field": "not_a_list"},
303-
{
304-
"extend_generic_test": "Test",
305-
"event_id": 123,
306-
"some_added_field": "not_a_list",
307-
"another_added_field": "another_value",
308-
"dotted": {"added": {"field": "yet_another_value"}},
309-
"tags": ["_generic_adder_failure"],
310-
},
311-
r"subfields existed and could not be extended: some_added_field",
312-
),
313-
]
33+
class TestGenericAdder(BaseProcessorTestCase):
31434

31535
CONFIG = {
31636
"type": "ng_generic_adder",

0 commit comments

Comments
 (0)