def test_query_term_status(self, db_request): email0 = EmailMessageFactory.create(status=EmailStatuses.Bounced.value) EmailMessageFactory.create() db_request.GET["q"] = "status:bounced" result = views.email_list(db_request) assert result == {"emails": [email0], "query": "status:bounced"}
def test_query_term_from(self, db_request): email0 = EmailMessageFactory.create(from_="*****@*****.**") EmailMessageFactory.create() db_request.GET["q"] = "from:[email protected]" result = views.email_list(db_request) assert result == {"emails": [email0], "query": "from:[email protected]"}
def test_query_term_subject(self, db_request): email0 = EmailMessageFactory.create(subject="foo bar") EmailMessageFactory.create() db_request.GET["q"] = "subject:'foo bar'" result = views.email_list(db_request) assert result == {"emails": [email0], "query": "subject:'foo bar'"}
def test_no_query(self, db_request): emails = sorted( [EmailMessageFactory.create() for _ in range(30)], key=lambda e: e.created, reverse=True, ) result = views.email_list(db_request) assert result == {"emails": emails[:25], "query": None}
def test_basic_query(self, db_request): emails = sorted( [EmailMessageFactory.create() for _ in range(30)], key=lambda e: e.created, reverse=True, ) db_request.GET["q"] = emails[0].to result = views.email_list(db_request) assert result == {"emails": [emails[0]], "query": emails[0].to}
def test_with_page(self, db_request): emails = sorted( [EmailMessageFactory.create() for _ in range(30)], key=lambda e: e.created, reverse=True, ) db_request.GET["page"] = "2" result = views.email_list(db_request) assert result == {"emails": emails[25:], "query": None}
def test_wildcard_query(self, db_request): emails = sorted( [EmailMessageFactory.create() for _ in range(30)], key=lambda e: e.created, reverse=True, ) db_request.GET["q"] = emails[0].to[:-1] + "%" result = views.email_list(db_request) assert result == {"emails": [emails[0]], "query": emails[0].to[:-1] + "%"}
def test_with_invalid_page(self): request = pretend.stub(params={"page": "not an integer"}) with pytest.raises(HTTPBadRequest): views.email_list(request)