def test_async_results_fails_with_message(self, mocked_upload): mocked_upload.return_value = 'http://s3.com/your-file.csv' q = SimpleQueryFactory(sql='select x from foo;', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 2) self.assertIn('[SQL Explorer] Error ', mail.outbox[1].subject) self.assertEqual(mocked_upload.call_count, 0)
def test_async_results(self, mocked_upload): mocked_upload.return_value = 'http://s3.com/your-file.csv' q = SimpleQueryFactory(sql='select 1 "a", 2 "b", 3 "c";', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 2) self.assertIn('[SQL Explorer] Your query is running', mail.outbox[0].subject) self.assertIn('[SQL Explorer] Report ', mail.outbox[1].subject) self.assertEqual(mocked_upload.call_args[0][1].getvalue(), output.getvalue()) self.assertEqual(mocked_upload.call_count, 1)
def test_async_results_failswith_message(self, mocked_s3): s3_client = Mock() s3_client.generate_presigned_url = Mock() s3_client.generate_presigned_url.return_value = 'http://s3.com/your-file.csv' mocked_s3.return_value = s3_client q = SimpleQueryFactory(sql='select x from foo;', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 1) self.assertIn('[SQL Explorer] Report ', mail.outbox[0].subject)
def test_async_results(self, mocked_upload): mocked_upload.return_value = 'http://s3.com/your-file.csv' q = SimpleQueryFactory(sql='select 1 "a", 2 "b", 3 "c";', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 1) self.assertIn('[SQL Explorer] Report ', mail.outbox[0].subject) self.assertEqual(mocked_upload.call_args[0][1].getvalue(), output.getvalue()) self.assertEqual(mocked_upload.call_count, 1)
def test_async_results_failswith_message(self, mocked_s3): conn = Mock() conn.upload = Mock() conn.upload.return_value = type('obj', (object,), {'url': 'http://s3.com/your-file.csv'}) mocked_s3.return_value = conn q = SimpleQueryFactory(sql='select x from foo;', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 1) self.assertIn('[SQL Explorer] Report ', mail.outbox[0].subject) self.assertEqual(conn.upload.call_args[0][1].getvalue(), "no such table: foo")
def test_async_results_failswith_message(self, mocked_s3): conn = Mock() conn.upload = Mock() conn.upload.return_value = type('obj', (object, ), {'url': 'http://s3.com/your-file.csv'}) mocked_s3.return_value = conn q = SimpleQueryFactory(sql='select x from foo;', title="testquery") execute_query(q.id, '*****@*****.**') output = StringIO() output.write('a,b,c\r\n1,2,3\r\n') self.assertEqual(len(mail.outbox), 1) self.assertIn('[SQL Explorer] Report ', mail.outbox[0].subject) self.assertEqual(conn.upload.call_args[0][1].getvalue(), "no such table: foo")