|
406 | 406 | srt_key=None, |
407 | 407 | tenantId="c4e43418-07d9-4a9f-a138-29f39a124d33", |
408 | 408 | ) |
409 | | - |
| 409 | +TEST_SAVED_SEARCH_3 = SavedSearch().parse_obj( |
| 410 | + { |
| 411 | + "apiVersion": 2, |
| 412 | + "columns": None, |
| 413 | + "createdByUID": "testcreatoruid", |
| 414 | + "createdByUsername": "example@code42.com", |
| 415 | + "creationTimestamp": "2025-02-04T15:36:59.926404Z", |
| 416 | + "groupClause": "AND", |
| 417 | + "groups": [ |
| 418 | + { |
| 419 | + "filterClause": "AND", |
| 420 | + "filters": [ |
| 421 | + { |
| 422 | + "operator": "WITHIN_THE_LAST", |
| 423 | + "term": "@timestamp", |
| 424 | + "value": "P90D", |
| 425 | + "display": None, |
| 426 | + } |
| 427 | + ], |
| 428 | + "display": '{"data":{"isMultivalue":false},"version":"v2"}', |
| 429 | + }, |
| 430 | + { |
| 431 | + "filterClause": "OR", |
| 432 | + "filters": [ |
| 433 | + { |
| 434 | + "operator": "IS", |
| 435 | + "term": "file.category", |
| 436 | + "value": "Image", |
| 437 | + "display": None, |
| 438 | + } |
| 439 | + ], |
| 440 | + "display": '{"data":{"isMultivalue":true},"version":"v2"}', |
| 441 | + }, |
| 442 | + { |
| 443 | + "subgroupClause": "OR", |
| 444 | + "subgroups": [ |
| 445 | + { |
| 446 | + "subgroupClause": "AND", |
| 447 | + "subgroups": [ |
| 448 | + { |
| 449 | + "filterClause": "AND", |
| 450 | + "filters": [ |
| 451 | + { |
| 452 | + "operator": "IS", |
| 453 | + "term": "file.name", |
| 454 | + "value": "*gomez*", |
| 455 | + "display": None, |
| 456 | + } |
| 457 | + ], |
| 458 | + "display": '{"data":{"isMultivalue":false},"version":"v2"}', |
| 459 | + } |
| 460 | + ], |
| 461 | + "display": None, |
| 462 | + }, |
| 463 | + { |
| 464 | + "subgroupClause": "AND", |
| 465 | + "subgroups": [ |
| 466 | + { |
| 467 | + "filterClause": "AND", |
| 468 | + "filters": [ |
| 469 | + { |
| 470 | + "operator": "IS", |
| 471 | + "term": "file.name", |
| 472 | + "value": "*Ticia*", |
| 473 | + "display": None, |
| 474 | + } |
| 475 | + ], |
| 476 | + "display": '{"data":{"isMultivalue":false},"version":"v2"}', |
| 477 | + } |
| 478 | + ], |
| 479 | + "display": None, |
| 480 | + }, |
| 481 | + ], |
| 482 | + "display": None, |
| 483 | + }, |
| 484 | + ], |
| 485 | + "id": "test-search-id", |
| 486 | + "modifiedByUID": "test-modified-uid", |
| 487 | + "modifiedByUsername": "example@code42.com", |
| 488 | + "modifiedTimestamp": "2025-02-04T15:36:59.926404Z", |
| 489 | + "name": "Chad Ticia/Gomez block saved search", |
| 490 | + "notes": "testing functionality of search blocks", |
| 491 | + "srtDir": "desc", |
| 492 | + "srtKey": None, |
| 493 | + "tenantId": "test-tenant-id", |
| 494 | + } |
| 495 | +) |
410 | 496 |
|
411 | 497 | TEST_DICT_QUERY = { |
412 | 498 | "groupClause": "AND", |
@@ -487,6 +573,14 @@ def mock_get_saved_search(httpserver_auth): |
487 | 573 | ).respond_with_json(search_data) |
488 | 574 |
|
489 | 575 |
|
| 576 | +@pytest.fixture |
| 577 | +def mock_get_saved_search_with_subgroups(httpserver_auth): |
| 578 | + search_data = {"searches": [json.loads(TEST_SAVED_SEARCH_3.json())]} |
| 579 | + httpserver_auth.expect_request( |
| 580 | + f"/v2/file-events/saved-searches/{TEST_SAVED_SEARCH_ID}", method="GET" |
| 581 | + ).respond_with_json(search_data) |
| 582 | + |
| 583 | + |
490 | 584 | @pytest.fixture |
491 | 585 | def mock_list_saved_searches(httpserver_auth): |
492 | 586 | search_data = { |
@@ -559,6 +653,15 @@ def test_get_saved_search_returns_expected_data(mock_get_saved_search): |
559 | 653 | assert search.json() == TEST_SAVED_SEARCH_1.json() |
560 | 654 |
|
561 | 655 |
|
| 656 | +def test_get_saved_search_returns_expected_data_when_search_has_subgroups( |
| 657 | + mock_get_saved_search_with_subgroups, |
| 658 | +): |
| 659 | + client = Client() |
| 660 | + search = client.file_events.v2.get_saved_search(TEST_SAVED_SEARCH_ID) |
| 661 | + assert isinstance(search, SavedSearch) |
| 662 | + assert search.json() == TEST_SAVED_SEARCH_3.json() |
| 663 | + |
| 664 | + |
562 | 665 | # ************************************************ CLI ************************************************ |
563 | 666 |
|
564 | 667 | format_arg = pytest.mark.parametrize( |
|
0 commit comments