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(getattr(metrics_index, 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()
|