def test_like_operator(self): """ tests ~~ operator. """ options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_str_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", "~~", "1")] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 1) self.assertEqual(ret[0], [1, "1"]) quals = [Qual("col1", "~~", "%1")] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 10) self.assertEqual(ret[0], [1, "1"]) self.assertEqual(ret[1], [11, "11"]) self.assertEqual(ret[-1], [91, "91"]) quals = [Qual("col1", "~~", "1%")] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 11) self.assertEqual(ret[0], [1, "1"]) self.assertEqual(ret[1], [10, "10"]) self.assertEqual(ret[-1], [19, "19"]) quals = [Qual("col1", "~~", "_")] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 10) self.assertEqual(ret[0], [0, "0"]) self.assertEqual(ret[1], [1, "1"]) self.assertEqual(ret[-1], [9, "9"])
def test_like_operator(self): """ tests ~~ operator. """ options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_str_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '~~', '1')] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 1) self.assertEqual(ret[0], [1, '1']) quals = [Qual('col1', '~~', '%1')] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 10) self.assertEqual(ret[0], [1, '1']) self.assertEqual(ret[1], [11, '11']) self.assertEqual(ret[-1], [91, '91']) quals = [Qual('col1', '~~', '1%')] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 11) self.assertEqual(ret[0], [1, '1']) self.assertEqual(ret[1], [10, '10']) self.assertEqual(ret[-1], [19, '19']) quals = [Qual('col1', '~~', '_')] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 10) self.assertEqual(ret[0], [0, '0']) self.assertEqual(ret[1], [1, '1']) self.assertEqual(ret[-1], [9, '9'])
def test_logs_unknown_qual(self, fake_log): fake_log.expects_call().with_args(arg.contains("Unknown operator"), WARNING, hint=arg.contains("Implement")) options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_str_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", "?", "3")] list(wrapper.execute(quals, columns))
def test_generates_datetimes(self): options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_datetime_header_and_100_rows_gzipped.msg")} quals = [] columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 100) self.assertEqual(ret[0], [0, datetime(2015, 8, 30, 12, 9, 10, 681995)])
def test_equals_operator(self): """ tests = operator. """ options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_str_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", "=", "3")] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 1) self.assertEqual(ret[0], [3, "3"])
def test_greater_than_operator(self): options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_int_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", ">", 10)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 89) self.assertEqual(ret[0], [11, 11]) self.assertEqual(ret[1], [12, 12]) self.assertEqual(ret[2], [13, 13])
def test_greater_than_or_equal_operator(self): """ tests >= operator. """ options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_int_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", ">=", 98)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 2) self.assertEqual(ret[0], [98, 98]) self.assertEqual(ret[1], [99, 99])
def test_less_than_operator(self): """ tests < operator. """ options = {"filename": os.path.join(TEST_FILES_DIR, "rowid_int_col1_int_header_and_100_rows_gzipped.msg")} columns = ["rowid", "col1"] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual("col1", "<", 3)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 3) self.assertEqual(ret[0], [0, 0]) self.assertEqual(ret[1], [1, 1]) self.assertEqual(ret[2], [2, 2])
def test_generates_strings(self): options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_str_header_and_100_rows_gzipped.msg') } quals = [] columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 100) self.assertEqual(ret[0], [0, '0'])
def test_equals_operator(self): """ tests = operator. """ options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_str_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '=', '3')] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 1) self.assertEqual(ret[0], [3, '3'])
def test_logs_unknown_qual(self, fake_log): fake_log\ .expects_call()\ .with_args(arg.contains('Unknown operator'), WARNING, hint=arg.contains('Implement')) options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_str_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '?', '3')] list(wrapper.execute(quals, columns))
def test_greater_than_or_equal_operator(self): """ tests >= operator. """ options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_int_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '>=', 98)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 2) self.assertEqual(ret[0], [98, 98]) self.assertEqual(ret[1], [99, 99])
def test_greater_than_operator(self): options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_int_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '>', 10)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 89) self.assertEqual(ret[0], [11, 11]) self.assertEqual(ret[1], [12, 12]) self.assertEqual(ret[2], [13, 13])
def test_less_than_operator(self): """ tests < operator. """ options = { 'filename': os.path.join(TEST_FILES_DIR, 'rowid_int_col1_int_header_and_100_rows_gzipped.msg') } columns = ['rowid', 'col1'] wrapper = PartitionMsgpackForeignDataWrapper(options, columns) quals = [Qual('col1', '<', 3)] ret = list(wrapper.execute(quals, columns)) self.assertEqual(len(ret), 3) self.assertEqual(ret[0], [0, 0]) self.assertEqual(ret[1], [1, 1]) self.assertEqual(ret[2], [2, 2])