|
55 | 55 | from pyatlan.model.group import GroupRequest
|
56 | 56 | from pyatlan.model.lineage import LineageListRequest
|
57 | 57 | from pyatlan.model.response import AssetMutationResponse
|
58 |
| -from pyatlan.model.search import Bool, Term |
| 58 | +from pyatlan.model.search import Bool, Term, TermAttributes |
59 | 59 | from pyatlan.model.search_log import SearchLogRequest
|
60 | 60 | from pyatlan.model.typedef import EnumDef
|
61 | 61 | from pyatlan.model.user import AtlanUser, UserRequest
|
@@ -1606,6 +1606,56 @@ def test_index_search_with_no_aggregation_results(
|
1606 | 1606 | mock_api_caller.reset_mock()
|
1607 | 1607 |
|
1608 | 1608 |
|
| 1609 | +def test_type_name_in_asset_search(mock_api_caller): |
| 1610 | + # When the type name is not present in the request |
| 1611 | + request = (FluentSearch().where(CompoundQuery.active_assets())).to_request() |
| 1612 | + client = AssetClient(mock_api_caller) |
| 1613 | + client._ensure_type_filter_present(request) |
| 1614 | + |
| 1615 | + assert request.dsl.query and request.dsl.query.filter |
| 1616 | + assert isinstance(request.dsl.query.filter, list) |
| 1617 | + |
| 1618 | + has_type_filter = any( |
| 1619 | + isinstance(f, Term) and f.field == TermAttributes.SUPER_TYPE_NAMES.value |
| 1620 | + for f in request.dsl.query.filter |
| 1621 | + ) |
| 1622 | + assert has_type_filter is True |
| 1623 | + |
| 1624 | + # When the type name is present in the request (no need to add super type filter) |
| 1625 | + request = ( |
| 1626 | + FluentSearch() |
| 1627 | + .where(CompoundQuery.active_assets()) |
| 1628 | + .where(CompoundQuery.asset_type(AtlasGlossary)) |
| 1629 | + ).to_request() |
| 1630 | + client._ensure_type_filter_present(request) |
| 1631 | + |
| 1632 | + assert request.dsl.query and request.dsl.query.filter |
| 1633 | + assert isinstance(request.dsl.query.filter, list) |
| 1634 | + |
| 1635 | + has_type_filter = any( |
| 1636 | + isinstance(f, Term) and f.field == TermAttributes.SUPER_TYPE_NAMES.value |
| 1637 | + for f in request.dsl.query.filter |
| 1638 | + ) |
| 1639 | + assert has_type_filter is False |
| 1640 | + |
| 1641 | + # When multiple type name(s) is present in the request (no need to add super type filter) |
| 1642 | + request = ( |
| 1643 | + FluentSearch() |
| 1644 | + .where(CompoundQuery.active_assets()) |
| 1645 | + .where(CompoundQuery.asset_types([AtlasGlossary, AtlasGlossaryTerm])) |
| 1646 | + ).to_request() |
| 1647 | + client._ensure_type_filter_present(request) |
| 1648 | + |
| 1649 | + assert request.dsl.query and request.dsl.query.filter |
| 1650 | + assert isinstance(request.dsl.query.filter, list) |
| 1651 | + |
| 1652 | + has_type_filter = any( |
| 1653 | + isinstance(f, Term) and f.field == TermAttributes.SUPER_TYPE_NAMES.value |
| 1654 | + for f in request.dsl.query.filter |
| 1655 | + ) |
| 1656 | + assert has_type_filter is False |
| 1657 | + |
| 1658 | + |
1609 | 1659 | def _assert_search_results(results, response_json, sorts, bulk=False):
|
1610 | 1660 | for i, result in enumerate(results):
|
1611 | 1661 | assert result and response_json["entities"][i]
|
@@ -2553,7 +2603,7 @@ def test_atlan_client_headers(client: AtlanClient):
|
2553 | 2603 | assert expected == client._session.headers
|
2554 | 2604 |
|
2555 | 2605 |
|
2556 |
| -def test_get_all_pagation(group_client, mock_api_caller): |
| 2606 | +def test_get_all_pagination(group_client, mock_api_caller): |
2557 | 2607 | mock_page_1 = [
|
2558 | 2608 | {"id": "1", "alias": "Group3"},
|
2559 | 2609 | {"id": "2", "alias": "Group4"},
|
|
0 commit comments