def setUp(self): self.settings = { "sample": { "query": "SELECT * FROM data", "sender": "*****@*****.**", "recipients": ["*****@*****.**"], "subject": "Reports for 2000-01-02", "header": """<html> <head> <title>Reports for {date}</title> </head> <body> <table> """, "footer": """</tbody> </table> </body> </html> """ } } table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [ [1, "x", "stuff"], [2, "y", "more stuff"] ] self.dataReader = MagicMock() self.dataReader.Read.return_value = table self.formatter = MagicMock() self.notifier = MagicMock() self.sut = ReportGenerator(self.settings, self.dataReader, self.formatter, self.notifier)
def test_RunDoesNotFormatTheDataIfNoRows(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [] self.dataReader.Read.return_value = table self.sut.Run("sample") self.assertEquals(0, self.formatter.Format.call_count)
def test_RunFormatsTheData(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [[1, "x", "stuff"], [2, "y", "more stuff"]] self.dataReader.Read.return_value = table self.sut.Run("sample") self.formatter.Format.assert_called_with(table)
def test_RunDoesNotSendNotificationIfNoRows(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [] self.dataReader.Read.return_value = table self.formatter.Format.return_value = "abc" self.sut.Run("sample") self.assertEquals(0, self.notifier.Send.call_count)
def test_RunSendsNotification(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [[1, "x", "stuff"], [2, "y", "more stuff"]] self.dataReader.Read.return_value = table self.formatter.Format.return_value = "abc" self.sut.Run("sample") self.notifier.Send.assert_called_with("*****@*****.**", ["*****@*****.**"], "Reports for 2000-01-02", "abc")
def test_RunFormatsTheData(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [ [1, "x", "stuff"], [2, "y", "more stuff"] ] self.dataReader.Read.return_value = table self.sut.Run("sample") self.formatter.Format.assert_called_with(table)
def test_RunSendsNotification(self): table = MagicMock() table.Columns = ["a", "b", "c"] table.Rows = [ [1, "x", "stuff"], [2, "y", "more stuff"] ] self.dataReader.Read.return_value = table self.formatter.Format.return_value = "abc" self.sut.Run("sample") self.notifier.Send.assert_called_with("*****@*****.**", ["*****@*****.**"], "Reports for 2000-01-02", "abc")