mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-07 11:48:19 +02:00
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
42 lines
1.2 KiB
Python
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()
|