Skip to content

Commit

Permalink
feat: replace confirm/verify commands with analyze
Browse files Browse the repository at this point in the history
  • Loading branch information
pyoor committed Feb 21, 2023
1 parent 17ee883 commit 8683418
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 11 deletions.
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,8 @@ In addition to Bugmon's automatic analysis, specific actions can be requested vi

### Valid Commands

- `confirm` - Request manual bug confirmation
- `verify` - Request manual verification
- `bisect` - Request manual bisection
- `analyze` - Request to determine if a bug is still reproducible
- `bisect` - Request to perform bisection

### Status Flags
In addition to requesting manual actions, some actions can be excluded by adding the following status flags to the bugmon whiteboard.
Expand Down
14 changes: 6 additions & 8 deletions bugmon/bugmon.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,11 +507,10 @@ def needs_bisect(self) -> bool:

def needs_confirm(self) -> bool:
"""Helper function to determine eligibility for 'confirm'"""
if "confirmed" in self.bug.commands:
return False
if "confirm" in self.bug.commands:
confirmable = self.bug.status in ("ASSIGNED", "NEW", "UNCONFIRMED", "REOPENED")
if confirmable and "analyze" in self.bug.commands:
return True
if self.bug.status in ["ASSIGNED", "NEW", "UNCONFIRMED", "REOPENED"]:
if confirmable and "confirmed" not in self.bug.commands:
return True

return False
Expand All @@ -522,11 +521,10 @@ def needs_pernosco(self) -> bool:

def needs_verify(self) -> bool:
"""Helper function to determine eligibility for 'verify'"""
if "verified" in self.bug.commands:
return False
if "verify" in self.bug.commands:
verifiable = self.bug.status == "RESOLVED" and self.bug.resolution == "FIXED"
if "analyze" in self.bug.commands and verifiable:
return True
if self.bug.status == "RESOLVED" and self.bug.resolution == "FIXED":
if verifiable and "verified" not in self.bug.commands:
return True

return False
Expand Down
50 changes: 50 additions & 0 deletions tests/test_bugmon.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,53 @@ def test_bugmon_pernosco_no_creds(browser_config, bugmon, build, caplog, mocker)
bugmon._pernosco()

assert caplog.messages[-1] == "Pernosco creds required for submitting traces!"


@pytest.mark.parametrize("status", ["ASSIGNED", "NEW", "UNCONFIRMED", "REOPENED"])
def test_bugmon_needs_confirm_status(status, bugmon):
"""Test that bug is confirmed based on status"""
bugmon.bug.status = status
bugmon.remove_command("confirmed")
assert bugmon.needs_confirm() is True


@pytest.mark.parametrize("status", ["ASSIGNED", "NEW", "UNCONFIRMED", "REOPENED"])
def test_bugmon_already_confirmed(status, bugmon):
"""Test that bug is not reconfirmed"""
bugmon.bug.status = status
bugmon.add_command("confirmed")
assert bugmon.needs_confirm() is False


@pytest.mark.parametrize("status", ["ASSIGNED", "NEW", "UNCONFIRMED", "REOPENED"])
def test_bugmon_confirm_requested(status, bugmon):
"""Test that bug is confirmed when requested regardless if it was already confirmed"""
bugmon.bug.status = status
bugmon.add_command("analyze")
bugmon.add_command("confirmed")
assert bugmon.needs_confirm() is True


def test_bugmon_needs_verify_status(bugmon):
"""Test that bug is verified based on status"""
bugmon.bug.status = "RESOLVED"
bugmon.bug.resolution = "FIXED"
bugmon.remove_command("verified")
assert bugmon.needs_verify() is True


def test_bugmon_already_verified(bugmon):
"""Test that bug is not re-verified"""
bugmon.bug.status = "RESOLVED"
bugmon.bug.resolution = "FIXED"
bugmon.add_command("verified")
assert bugmon.needs_verify() is False


def test_bugmon_verify_requested(bugmon):
"""Test that bug is verified when requested regardless if it was already verified"""
bugmon.bug.status = "RESOLVED"
bugmon.bug.resolution = "FIXED"
bugmon.add_command("analyze")
bugmon.add_command("verified")
assert bugmon.needs_verify() is True

0 comments on commit 8683418

Please sign in to comment.