From 0dbd662b5bdc372f2148f72c86412e0555eac1dc Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Wed, 18 Mar 2015 16:55:55 -0300 Subject: TestCase logic moved to AppTestClient, enabling reuse outside of integration (performance tests) --- .../test/support/integration/app_test_client.py | 58 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'service/test/support/integration/app_test_client.py') diff --git a/service/test/support/integration/app_test_client.py b/service/test/support/integration/app_test_client.py index 3ba6646e..baa95132 100644 --- a/service/test/support/integration/app_test_client.py +++ b/service/test/support/integration/app_test_client.py @@ -39,15 +39,19 @@ from pixelated.config import App from pixelated.resources.root_resource import RootResource from test.support.integration.model import MailBuilder from test.support.test_helper import request_mock +from test.support.integration.model import ResponseMail -class AppTestClient: +class AppTestClient(object): INDEX_KEY = '\xde3?\x87\xff\xd9\xd3\x14\xf0\xa7>\x1f%C{\x16.\\\xae\x8c\x13\xa7\xfb\x04\xd4]+\x8d_\xed\xd1\x8d\x0bI' \ '\x8a\x0e\xa4tm\xab\xbf\xb4\xa5\x99\x00d\xd5w\x9f\x18\xbc\x1d\xd4_W\xd2\xb6\xe8H\x83\x1b\xd8\x9d\xad' ACCOUNT = 'test' MAIL_ADDRESS = 'test@pixelated.org' def __init__(self): + self.start_client() + + def start_client(self): soledad_test_folder = self._generate_soledad_test_folder_name() SearchEngine.DEFAULT_INDEX_HOME = soledad_test_folder @@ -154,6 +158,58 @@ class AppTestClient: def _generate_soledad_test_folder_name(self, soledad_test_folder='/tmp/soledad-test/test'): return os.path.join(soledad_test_folder, str(uuid.uuid4())) + def get_mails_by_tag(self, tag, page=1, window=100): + tags = 'tag:%s' % tag + return self.search(tags, page, window) + + def search(self, query, page=1, window=100): + res, req = self.get("/mails", { + 'q': [query], + 'w': [str(window)], + 'p': [str(page)] + }) + return [ResponseMail(m) for m in res['mails']] + + def get_attachment(self, ident, encoding): + res, req = self.get("/attachment/%s" % ident, {'encoding': [encoding]}, as_json=False) + return res + + def put_mail(self, data): + res, req = self.put('/mails', data) + return res, req + + def post_tags(self, mail_ident, tags_json): + res, req = self.post("/mail/%s/tags" % mail_ident, tags_json) + return res + + def get_tags(self, **kwargs): + res, req = self.get('/tags', kwargs) + return res + + def get_mail(self, mail_ident): + res, req = self.get('/mail/%s' % mail_ident) + return res + + def delete_mail(self, mail_ident): + res, req = self.delete("/mail/%s" % mail_ident) + return req + + def delete_mails(self, idents): + res, req = self.post("/mails/delete", json.dumps({'idents': idents})) + return req + + def mark_many_as_unread(self, idents): + res, req = self.post('/mails/unread', json.dumps({'idents': idents})) + return req + + def mark_many_as_read(self, idents): + res, req = self.post('/mails/read', json.dumps({'idents': idents})) + return req + + def get_contacts(self, query): + res, req = self.get('/contacts', get_args={'q': query}) + return res + def initialize_soledad(tempdir): if os.path.isdir(tempdir): -- cgit v1.2.3