Exemple #1
0
    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"])
Exemple #2
0
    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))
Exemple #3
0
 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)])
Exemple #4
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"])
Exemple #5
0
 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])
Exemple #6
0
 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])
Exemple #7
0
 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])
Exemple #8
0
 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'])
Exemple #9
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'])
Exemple #10
0
    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))
Exemple #11
0
 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])
Exemple #12
0
 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])
Exemple #13
0
 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])
Exemple #14
0
    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'])
Exemple #15
0
 def test_requires_filename(self):
     with self.assertRaises(RuntimeError):
         PartitionMsgpackForeignDataWrapper({}, [])