def test_no_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(30)], key=lambda u: u.username.lower() ) result = views.user_list(db_request) assert result == {"users": users[:25], "query": None}
def test_ignores_invalid_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower() ) db_request.GET["q"] = "foobar:what" result = views.user_list(db_request) assert result == {"users": users, "query": "foobar:what"}
def test_wildcard_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower() ) db_request.GET["q"] = users[0].username[:-1] + "%" result = views.user_list(db_request) assert result == {"users": [users[0]], "query": users[0].username[:-1] + "%"}
def test_with_page(self, db_request): users = sorted( [UserFactory.create() for _ in range(30)], key=lambda u: u.username.lower() ) db_request.GET["page"] = "2" result = views.user_list(db_request) assert result == {"users": users[25:], "query": None}
def test_email_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower() ) emails = [EmailFactory.create(user=u, primary=True) for u in users] db_request.GET["q"] = "email:" + emails[0].email result = views.user_list(db_request) assert result == {"users": [users[0]], "query": "email:" + emails[0].email}
def test_or_query(self, db_request): users = sorted([UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower()) emails = [EmailFactory.create(user=u, primary=True) for u in users] db_request.GET["q"] = " ".join([ users[0].username, users[1].username[:-1] + "%", "email:" + emails[2].email, "email:" + emails[3].email[:-5] + "%", ]) result = views.user_list(db_request) assert result == {"users": users[:4], "query": db_request.GET["q"]}
def test_email_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower(), ) emails = [EmailFactory.create(user=u, primary=True) for u in users] db_request.GET["q"] = "email:" + emails[0].email result = views.user_list(db_request) assert result == { "users": [users[0]], "query": "email:" + emails[0].email, }
def test_or_query(self, db_request): users = sorted( [UserFactory.create() for _ in range(5)], key=lambda u: u.username.lower() ) emails = [EmailFactory.create(user=u, primary=True) for u in users] db_request.GET["q"] = " ".join( [ users[0].username, users[1].username[:-1] + "%", "email:" + emails[2].email, "email:" + emails[3].email[:-5] + "%", ] ) result = views.user_list(db_request) assert result == {"users": users[:4], "query": db_request.GET["q"]}
def test_with_invalid_page(self): request = pretend.stub(params={"page": "not an integer"}) with pytest.raises(HTTPBadRequest): views.user_list(request)
def test_no_query(self, db_request): users = sorted([UserFactory.create() for _ in range(30)], key=lambda u: u.username.lower()) result = views.user_list(db_request) assert result == {"users": users[:25], "query": None}