• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Hekxsler / pudding / 25738751695

12 May 2026 01:48PM UTC coverage: 92.24% (-1.0%) from 93.254%
25738751695

Pull #5

github

web-flow
Merge bd9dfd2d9 into a91d4e7d1
Pull Request #5: Feature/specifiy output

1260 of 1366 relevant lines covered (92.24%)

0.92 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.0
pudding/processor/triggers.py
1
"""Module defining Trigger and TriggerQueue class."""
2

3
from enum import Enum
1✔
4
from re import Pattern
1✔
5

6
from pudding.tokens.token import Token
1✔
7

8
Timing = Enum("Timing", "AFTER BEFORE ON_ADD")
1✔
9

10

11
class Trigger:
1✔
12
    """Base trigger class."""
13

14
    def __init__(self, match: Pattern[str], token: Token) -> None:
1✔
15
        """Trigger class.
16

17
        :param match: Pattern to match before executing.
18
        :param token: Token to execute on match.
19
        """
20
        self.match = match
1✔
21
        self.token = token
1✔
22

23
    def __repr__(self) -> str:
24
        """Return string representation of this object."""
25
        cls = self.__class__.__name__
26
        return f"<{cls} match=/{self.match.pattern}/ token={self.token}>"
27

28

29
class TriggerQueue(dict[Timing, list[Trigger]]):
1✔
30
    """Queue for triggers.
31

32
    :var triggers: Dictionary where the key is a timing and
33
        the value a list of triggers.
34
    """
35

36
    def __init__(self) -> None:
1✔
37
        """Init TriggerQueue."""
38
        super().__init__()
1✔
39
        self.triggers: dict[Timing, list[Trigger]] = {}
1✔
40

41
    def add_trigger(self, timing: Timing, trigger: Trigger) -> None:
1✔
42
        """Add a trigger to the queue.
43

44
        :param timing: Timing of the queue.
45
        :param trigger: Trigger to add.
46
        """
47
        triggers = self.get(timing, [])
1✔
48
        triggers.append(trigger)
1✔
49
        self[timing] = triggers
1✔
50

51
    def clear_triggers(self, timing: Timing | None = None) -> None:
1✔
52
        """Clear a trigger queue.
53

54
        :param timing: Timing of a queue to clear or none to clear all.
55
        """
56
        if timing:
×
57
            self[timing] = []
×
58
        else:
59
            self.triggers = {}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc