def test_is_blocked(db_session): db_session.add(models.Blocklist(uri="http://example.com")) db_session.add(models.Blocklist(uri="http://example.com/bar")) db_session.flush() assert models.Blocklist.is_blocked(db_session, "http://example.com") assert models.Blocklist.is_blocked(db_session, "http://example.com/bar") assert not models.Blocklist.is_blocked(db_session, "http://example.com/foo")
def test_is_blocked_with_wildcards(db_session): db_session.add(models.Blocklist(uri="%//example.com%")) db_session.flush() assert models.Blocklist.is_blocked(db_session, "http://example.com/") assert models.Blocklist.is_blocked(db_session, "http://example.com/bar") assert models.Blocklist.is_blocked(db_session, "http://example.com/foo")
def blocked_uris(db_session): uris = [] for uri in ["blocked1", "blocked2", "blocked3"]: uris.append(models.Blocklist(uri=uri)) db_session.add_all(uris) db_session.flush() return uris
def blocked_uris(db_session): from h import models uris = [] for uri in ['blocked1', 'blocked2', 'blocked3']: uris.append(models.Blocklist(uri=uri)) db_session.add_all(uris) db_session.flush() return uris
def badge_add(request): uri = request.params['add'] item = models.Blocklist(uri=uri) request.db.add(item) # There's a uniqueness constraint on `uri`, so we flush the session, # catching any IntegrityError and responding appropriately. try: request.db.flush() except IntegrityError: request.db.rollback() msg = _("{uri} is already blocked.").format(uri=uri) request.session.flash(msg, 'error') index = request.route_path('admin_badge') return httpexceptions.HTTPSeeOther(location=index)
def badge_add(request): try: request.db.add(models.Blocklist(uri=request.params['add'])) except ValueError as err: request.session.flash(err.message, 'error') return badge_index(request)