def test_archive_published(mocker): # !! mocks all .query getters on all models. Save here as we only use one mock_query = mocker.patch("flask_sqlalchemy._QueryProperty.__get__").return_value mock_query.filter.return_value.exists.return_value = True vuln = Vulnerability(state=VulnerabilityState.PUBLISHED) vuln.archive_entry() assert vuln.state == VulnerabilityState.ARCHIVED assert not vuln.is_publishable assert not vuln.is_in_review
def test_archive_requires_published(mocker): # !! mocks all .query getters on all models. Save here as we only use one mock_query = mocker.patch("flask_sqlalchemy._QueryProperty.__get__").return_value mock_query.filter.return_value.first.return_value = False vuln = Vulnerability(state=VulnerabilityState.PUBLISHED) with pytest.raises(TransitionDenied): vuln.archive_entry() assert vuln.state == VulnerabilityState.PUBLISHED assert not vuln.is_publishable assert not vuln.is_in_review