gecko-dev/toolkit/components/glean/tests/pytest/test_yaml_indices.py
Chris H-C 08a4a976ec Bug 1805427 - Turn on Glean's trim_data_to_registered_pings r=janerik
FOG gets to learn which app ids register which pings, allowing it to tell the
Glean SDK to trim all data not associated with those pings.

This will keep other app_ids' custom pings' events from growing without bound.

Alas, this does not come with tests as the trim behaviour is very internal to
the SDK. As such we'll have to rely on the SDK's tests.

Depends on D164604

Differential Revision: https://phabricator.services.mozilla.com/D164605
2023-01-16 18:51:19 +00:00

42 lines
1.2 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import sys
from os import path
import mozunit
# Shenanigans to import the metrics index's lists of yamls
FOG_ROOT_PATH = path.abspath(
path.join(path.dirname(__file__), path.pardir, path.pardir)
)
sys.path.append(FOG_ROOT_PATH)
import metrics_index
def test_yamls_sorted():
"""
Ensure the yamls indices are sorted lexicographically.
"""
# Ignore lists that are the concatenation of others.
to_ignore = ["metrics_yamls", "pings_yamls"]
# Fetch names of all variables defined in the `metrics_index` module.
yaml_lists = [
item
for item in dir(metrics_index)
if isinstance(item, list) and not item.startswith("__")
]
for name in yaml_lists:
if name in to_ignore:
continue
yamls_to_test = metrics_index.__dict__[name]
assert (
sorted(yamls_to_test) == yamls_to_test
), f"{name} must be be lexicographically sorted."
if __name__ == "__main__":
mozunit.main()