def test_deliver_slice_attachment(self, mtime, send_email_smtp, driver_class): element = Mock() driver = Mock() mtime.sleep.return_value = None driver_class.return_value = driver # Ensure that we are able to login with the driver driver.find_elements_by_id.side_effect = [True, False] driver.find_element_by_class_name.return_value = element element.screenshot_as_png = read_fixture('sample.png') schedule = db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0] schedule.email_format = SliceEmailReportFormat.visualization schedule.delivery_type = EmailDeliveryType.attachment deliver_slice(schedule) mtime.sleep.assert_called_once() driver.screenshot.assert_not_called() send_email_smtp.assert_called_once() self.assertEquals( send_email_smtp.call_args[1]['data']['screenshot.png'], element.screenshot_as_png, )
def test_deliver_slice_attachment(self, mtime, send_email_smtp, driver_class): element = Mock() driver = Mock() mtime.sleep.return_value = None driver_class.return_value = driver # Ensure that we are able to login with the driver driver.find_elements_by_id.side_effect = [True, False] driver.find_element_by_class_name.return_value = element element.screenshot_as_png = read_fixture("sample.png") schedule = (db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0]) schedule.email_format = SliceEmailReportFormat.visualization schedule.delivery_type = EmailDeliveryType.attachment deliver_slice(schedule) mtime.sleep.assert_called_once() driver.screenshot.assert_not_called() send_email_smtp.assert_called_once() self.assertEquals( send_email_smtp.call_args[1]["data"]["screenshot.png"], element.screenshot_as_png, )
def test_deliver_slice_attachment( self, mtime, send_email_smtp, driver_class, files_upload ): element = Mock() driver = Mock() mtime.sleep.return_value = None driver_class.return_value = driver # Ensure that we are able to login with the driver driver.find_elements_by_id.side_effect = [True, False] driver.find_element_by_class_name.return_value = element element.screenshot_as_png = read_fixture("sample.png") schedule = ( db.session.query(SliceEmailSchedule).filter_by(id=self.slice_schedule).one() ) schedule.email_format = SliceEmailReportFormat.visualization schedule.delivery_type = EmailDeliveryType.attachment deliver_slice( schedule.slice_id, schedule.recipients, schedule.slack_channel, schedule.delivery_type, schedule.email_format, schedule.deliver_as_group, db.session, ) mtime.sleep.assert_called_once() driver.screenshot.assert_not_called() send_email_smtp.assert_called_once() self.assertEqual( send_email_smtp.call_args[1]["data"]["screenshot"], element.screenshot_as_png, ) self.assertEqual( files_upload.call_args[1], { "channels": "#test_channel", "file": element.screenshot_as_png, "initial_comment": f"\n *Region Filter*\n\n <http://0.0.0.0:8080/superset/slice/{schedule.slice_id}/|Explore in Superset>\n ", "title": "[Report] Region Filter", }, )
def test_deliver_slice_csv_inline(self, send_email_smtp, get): response = Mock() get.return_value = response response.raise_for_status.return_value = None response.content = self.CSV schedule = db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0] schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.inline deliver_slice(schedule) send_email_smtp.assert_called_once() self.assertIsNone(send_email_smtp.call_args[1]['data']) self.assertTrue('<table ' in send_email_smtp.call_args[0][2])
def test_deliver_slice_csv_inline(self, send_email_smtp, get): response = Mock() get.return_value = response response.raise_for_status.return_value = None response.content = self.CSV schedule = (db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0]) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.inline deliver_slice(schedule) send_email_smtp.assert_called_once() self.assertIsNone(send_email_smtp.call_args[1]["data"]) self.assertTrue("<table " in send_email_smtp.call_args[0][2])
def test_deliver_slice_csv_attachment(self, send_email_smtp, get): response = Mock() get.return_value = response response.raise_for_status.return_value = None response.content = self.CSV schedule = (db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0]) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.attachment deliver_slice(schedule) send_email_smtp.assert_called_once() file_name = __("%(name)s.csv", name=schedule.slice.slice_name) self.assertEquals(send_email_smtp.call_args[1]["data"][file_name], self.CSV)
def test_deliver_slice_csv_inline(self, send_email_smtp, mock_open, mock_urlopen): response = Mock() mock_open.return_value = response mock_urlopen.return_value = response mock_urlopen.return_value.getcode.return_value = 200 response.read.return_value = self.CSV schedule = ( db.session.query(SliceEmailSchedule) .filter_by(id=self.slice_schedule) .all()[0] ) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.inline deliver_slice(schedule) send_email_smtp.assert_called_once() self.assertIsNone(send_email_smtp.call_args[1]["data"]) self.assertTrue("<table " in send_email_smtp.call_args[0][2])
def test_deliver_slice_csv_attachment(self, send_email_smtp, mock_open, mock_urlopen, files_upload): response = Mock() mock_open.return_value = response mock_urlopen.return_value = response mock_urlopen.return_value.getcode.return_value = 200 response.read.return_value = self.CSV schedule = (db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).one()) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.attachment deliver_slice( schedule.slice_id, schedule.recipients, schedule.slack_channel, schedule.delivery_type, schedule.email_format, schedule.deliver_as_group, db.session, ) send_email_smtp.assert_called_once() file_name = __("%(name)s.csv", name=schedule.slice.slice_name) self.assertEqual(send_email_smtp.call_args[1]["data"][file_name], self.CSV) self.assertEqual( files_upload.call_args[1], { "channels": "#test_channel", "file": self.CSV, "initial_comment": f"\n *Participants*\n\n <http://0.0.0.0:8080/superset/slice/{schedule.slice_id}/|Explore in Superset>\n ", "title": "[Report] Participants", }, )
def test_deliver_slice_csv_attachment(self, send_email_smtp, get): response = Mock() get.return_value = response response.raise_for_status.return_value = None response.content = self.CSV schedule = db.session.query(SliceEmailSchedule).filter_by( id=self.slice_schedule).all()[0] schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.attachment deliver_slice(schedule) send_email_smtp.assert_called_once() file_name = __('%(name)s.csv', name=schedule.slice.slice_name) self.assertEquals( send_email_smtp.call_args[1]['data'][file_name], self.CSV, )
def test_deliver_slice_csv_inline( self, send_email_smtp, mock_open, mock_urlopen, files_upload ): response = Mock() mock_open.return_value = response mock_urlopen.return_value = response mock_urlopen.return_value.getcode.return_value = 200 response.read.return_value = self.CSV schedule = ( db.session.query(SliceEmailSchedule).filter_by(id=self.slice_schedule).one() ) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.inline deliver_slice( schedule.slice_id, schedule.recipients, schedule.slack_channel, schedule.delivery_type, schedule.email_format, schedule.deliver_as_group, db.session, ) send_email_smtp.assert_called_once() self.assertIsNone(send_email_smtp.call_args[1]["data"]) self.assertTrue("<table " in send_email_smtp.call_args[0][2]) self.assertEqual( files_upload.call_args[1], { "channels": "#test_channel", "file": self.CSV, "initial_comment": f"\n *Region Filter*\n\n <http://0.0.0.0:8080/superset/slice/{schedule.slice_id}/|Explore in Superset>\n ", "title": "[Report] Region Filter", }, )
def test_deliver_slice_csv_attachment( self, send_email_smtp, mock_open, mock_urlopen ): response = Mock() mock_open.return_value = response mock_urlopen.return_value = response mock_urlopen.return_value.getcode.return_value = 200 response.read.return_value = self.CSV schedule = ( db.session.query(SliceEmailSchedule) .filter_by(id=self.slice_schedule) .all()[0] ) schedule.email_format = SliceEmailReportFormat.data schedule.delivery_type = EmailDeliveryType.attachment deliver_slice(schedule) send_email_smtp.assert_called_once() file_name = __("%(name)s.csv", name=schedule.slice.slice_name) self.assertEqual(send_email_smtp.call_args[1]["data"][file_name], self.CSV)