Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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")
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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")