def full(): """ Full example """ return relevancy_to_adjust(""" # feature has been added in Fedora 33 distro < fedora-33: False # using logical operators component = firefox && arch = ppc64: False arch = s390x: PHASES=novalgrind # modify environment # try special operators collection contains httpd24 && fips defined: False """.replace(' ', ''))
def mini(): """ Minimal example """ return relevancy_to_adjust("distro = fedora: False")
def test_empty(): """ Empty relevancy """ assert relevancy_to_adjust('') == list()
def check(condition, expected): """ Check condition against expected """ adjusted = relevancy_to_adjust(f"{condition}: False")[0]['when'] assert adjusted == expected
def test_invalid_operator(): """ Invalid relevancy operator """ with pytest.raises(ConvertError, match='Invalid.*operator'): relevancy_to_adjust("distro <> fedora-33: False")
def test_invalid_expression(): """ Invalid relevancy expression """ with pytest.raises(ConvertError, match='Invalid.*expression'): relevancy_to_adjust("distro * fedora-33: False")
def test_invalid_decision(): """ Invalid relevancy decision """ with pytest.raises(ConvertError, match='Invalid.*decision'): relevancy_to_adjust("distro < fedora-33: weird")
def test_invalid_rule(): """ Invalid relevancy rule """ with pytest.raises(ConvertError, match='Invalid.*rule'): relevancy_to_adjust("weird")