예제 #1
0
    def test_convert_dttm(self):
        dttm = self.get_dttm()

        self.assertEqual(
            OracleEngineSpec.convert_dttm("DATE", dttm),
            "TO_DATE('2019-01-02', 'YYYY-MM-DD')",
        )

        self.assertEqual(
            OracleEngineSpec.convert_dttm("TIMESTAMP", dttm),
            """TO_TIMESTAMP('2019-01-02T03:04:05.678900', 'YYYY-MM-DD"T"HH24:MI:SS.ff6')""",
        )
예제 #2
0
    def test_column_datatype_to_string(self):
        test_cases = (
            (DATE(), "DATE"),
            (VARCHAR(length=255), "VARCHAR(255 CHAR)"),
            (VARCHAR(length=255, collation="utf8"), "VARCHAR(255 CHAR)"),
            (NVARCHAR(length=128), "NVARCHAR2(128)"),
        )

        for original, expected in test_cases:
            actual = OracleEngineSpec.column_datatype_to_string(
                original, oracle.dialect())
            self.assertEqual(actual, expected)
 def test_oracle_time_expression_reserved_keyword_1m_grain(self):
     col = column("decimal")
     expr = OracleEngineSpec.get_timestamp_expr(col, None, "P1M")
     result = str(expr.compile(dialect=oracle.dialect()))
     self.assertEqual(result, "TRUNC(CAST(\"decimal\" as DATE), 'MONTH')")
 def test_oracle_sqla_column_name_length_exceeded(self):
     col = column("This_Is_32_Character_Column_Name")
     label = OracleEngineSpec.make_label_compatible(col.name)
     self.assertEqual(label.quote, True)
     label_expected = "3b26974078683be078219674eeb8f5"
     self.assertEqual(label, label_expected)
예제 #5
0
def test_convert_dttm(date_format, expected):
    dttm = TestOracleDbEngineSpec.get_dttm()
    assert OracleEngineSpec.convert_dttm(date_format, dttm) == expected
예제 #6
0
 def test_fetch_data(self):
     cursor = mock.MagicMock()
     result = ["a", "b"]
     cursor.fetchall.return_value = result
     assert OracleEngineSpec.fetch_data(cursor) == result
예제 #7
0
 def test_fetch_data_no_description(self):
     cursor = mock.MagicMock()
     cursor.description = []
     assert OracleEngineSpec.fetch_data(cursor) == []