def test_warns_about_request_deprecation_with_old_style_requirement(member): import warnings allows = Allows(identity_loader=lambda: member) with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always", DeprecationWarning) allows.fulfill([lambda u, r: True]) warnings.simplefilter("default", DeprecationWarning) assert len(w) == 1 assert issubclass(w[0].category, DeprecationWarning) assert "Passing request to requirements is now deprecated" in str( w[0].message)
def test_req_not_called_when_both_added_and_overridden(member, never): allows = Allows(identity_loader=lambda: member) allows.additional.push(Additional(never)) allows.overrides.push(Override(never)) assert allows.fulfill([])
def test_fulfill_calls_additional_requirements(member, always): allows = Allows(identity_loader=lambda: member) allows.additional.push(Additional(always)) assert allows.fulfill([]) assert always.called
def test_fulfills_skips_overridden_requirements(member, never): allows = Allows(identity_loader=lambda: member) allows.overrides.push(Override(never)) assert allows.fulfill([never]) # be a good test denizen and cleanup allows.overrides.pop()
def test_allows_can_call_requirements_with_old_and_new_style_arguments(member): allows = Allows(identity_loader=lambda: member) def new_style(user): return True def old_style(user, request): return True assert allows.fulfill([new_style, old_style])
def test_Allows_fulfill_ident_override(member, guest, spy): allows = Allows(identity_loader=lambda: guest) allows.fulfill([spy], identity=member) assert spy.called_with["user"] is member
def test_Allows_fulfill_false(member, never): allows = Allows(identity_loader=lambda: member) assert not allows.fulfill([never])
def test_Allows_fulfill_true(member, always): allows = Allows(identity_loader=lambda: member) assert allows.fulfill([always]) assert always.called_with == {"user": member}
def test_req_called_once_even_if_added_multiple_times(member, counter): allows = Allows(identity_loader=lambda: member) allows.additional.push(Additional(counter, counter)) assert allows.fulfill([]) assert counter.count == 1
def test_Allows_fulfill_ident_override(member, guest, spy): allows = Allows(identity_loader=lambda: guest) allows.fulfill([spy], identity=member) assert spy.called_with['user'] is member
def test_Allows_fulfill_false(member, never, request): allows = Allows(identity_loader=lambda: member) assert not allows.fulfill([never])
def test_Allows_fulfill_true(member, always, request): allows = Allows(identity_loader=lambda: member) assert allows.fulfill([always]) assert always.called_with == {'user': member, 'request': request}