GRAYBYTE WORDPRESS FILE MANAGER7405

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/tap/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/tap//rules.py
from tap.adapter import Adapter
from tap.directive import Directive
from tap.line import Result


class Rules:
    def __init__(self, filename, suite):
        self._filename = filename
        self._suite = suite
        self._lines_seen = {"plan": [], "test": 0, "version": []}

    def check(self, final_line_count):
        """Check the status of all provided data and update the suite."""
        if self._lines_seen["version"]:
            self._process_version_lines()
        self._process_plan_lines(final_line_count)

    def _process_version_lines(self):
        """Process version line rules."""
        if len(self._lines_seen["version"]) > 1:
            self._add_error("Multiple version lines appeared.")
        elif self._lines_seen["version"][0] != 1:
            self._add_error("The version must be on the first line.")

    def _process_plan_lines(self, final_line_count):
        """Process plan line rules."""
        if not self._lines_seen["plan"]:
            self._add_error("Missing a plan.")
            return

        if len(self._lines_seen["plan"]) > 1:
            self._add_error("Only one plan line is permitted per file.")
            return

        plan, at_line = self._lines_seen["plan"][0]
        if not self._plan_on_valid_line(at_line, final_line_count):
            self._add_error("A plan must appear at the beginning or end of the file.")
            return

        if plan.expected_tests != self._lines_seen["test"]:
            self._add_error(
                "Expected {expected_count} tests but only {seen_count} ran.".format(
                    expected_count=plan.expected_tests,
                    seen_count=self._lines_seen["test"],
                )
            )

    def _plan_on_valid_line(self, at_line, final_line_count):
        """Check if a plan is on a valid line."""
        # Put the common cases first.
        if at_line == 1 or at_line == final_line_count:
            return True

        # The plan may only appear on line 2 if the version is at line 1.
        after_version = (
            self._lines_seen["version"]
            and self._lines_seen["version"][0] == 1
            and at_line == 2
        )
        return bool(after_version)

    def handle_bail(self, bail):
        """Handle a bail line."""
        self._add_error(f"Bailed: {bail.reason}")

    def handle_file_does_not_exist(self):
        """Handle a test file that does not exist."""
        self._add_error(f"{self._filename} does not exist.")

    def handle_skipping_plan(self, skip_plan):
        """Handle a plan that contains a SKIP directive."""
        skip_line = Result(True, None, skip_plan.directive.text, Directive("SKIP"))
        self._suite.addTest(Adapter(self._filename, skip_line))

    def saw_plan(self, plan, at_line):
        """Record when a plan line was seen."""
        self._lines_seen["plan"].append((plan, at_line))

    def saw_test(self):
        """Record when a test line was seen."""
        self._lines_seen["test"] += 1

    def saw_version_at(self, line_counter):
        """Record when a version line was seen."""
        self._lines_seen["version"].append(line_counter)

    def _add_error(self, message):
        """Add an error test to the suite."""
        error_line = Result(False, None, message, Directive(""))
        self._suite.addTest(Adapter(self._filename, error_line))

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 25 2025 08:31:36
root / root
0755
__pycache__
--
May 15 2025 08:30:34
root / root
0755
tests
--
May 15 2025 08:30:38
root / root
0755
__init__.py
0.083 KB
April 17 2025 13:10:58
root / root
0644
__main__.py
0.047 KB
April 17 2025 13:10:58
root / root
0644
adapter.py
1.474 KB
April 17 2025 13:10:58
root / root
0644
directive.py
1.749 KB
April 17 2025 13:10:58
root / root
0644
formatter.py
0.744 KB
April 17 2025 13:10:58
root / root
0644
line.py
4.563 KB
April 17 2025 13:10:58
root / root
0644
loader.py
2.874 KB
April 17 2025 13:10:58
root / root
0644
main.py
2.074 KB
April 17 2025 13:10:58
root / root
0644
parser.py
6.628 KB
April 17 2025 13:10:58
root / root
0644
rules.py
3.299 KB
April 17 2025 13:10:58
root / root
0644
runner.py
4.947 KB
April 17 2025 13:10:58
root / root
0644
tracker.py
7.398 KB
April 17 2025 13:10:58
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF