Skip to content

Commit

Permalink
directory: add peers_and_owners property (bug 1836340) (#70)
Browse files Browse the repository at this point in the history
  • Loading branch information
zzzeid authored Jun 2, 2023
1 parent e96f0e6 commit f926794
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/mots/directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from collections import defaultdict
from dataclasses import asdict
from dataclasses import dataclass
from itertools import chain
import logging
from mots.module import Module
from mots.utils import parse_real_name
Expand Down Expand Up @@ -118,6 +119,20 @@ def query(self, *paths: str) -> "QueryResult":

return QueryResult(result, rejected)

@property
def peers_and_owners(self):
"""Return a sorted list of all peers and owners."""
all_modules = self.modules
all_submodules = list(chain(*[module.submodules for module in all_modules]))
modules_and_submodules = all_modules + all_submodules

peers_and_owners = set()
for module in modules_and_submodules:
peers_and_owners.update(
[person["bmo_id"] for person in module.peers + module.owners]
)
return sorted(list(peers_and_owners))


class QueryResult:
"""Helper class to simplify query result interpretation."""
Expand Down
6 changes: 6 additions & 0 deletions tests/test_directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,3 +184,9 @@ def test_directory__QueryResult_empty_addition():
empty_result = QueryResult()
other_empty_result = QueryResult()
assert not (empty_result + other_empty_result)


def test_directory__peers_and_owners(repo):
file_config = FileConfig(repo / "mots.yml")
directory = Directory(file_config)
assert directory.peers_and_owners == [0, 1, 2]

0 comments on commit f926794

Please sign in to comment.