예제 #1
0
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
예제 #2
0
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