def testSingleRowChunks(self): table = rdf_osquery.OsqueryTable() table.query = "SELECT foo, bar, baz FROM quux;" table.header.columns.append(rdf_osquery.OsqueryColumn(name="foo")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="bar")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="baz")) table.rows.append(rdf_osquery.OsqueryRow(values=["ABC", "DEF", "GHI"])) table.rows.append(rdf_osquery.OsqueryRow(values=["JKL", "MNO", "PQR"])) table.rows.append(rdf_osquery.OsqueryRow(values=["RST", "UVW", "XYZ"])) chunks = list(osquery.ChunkTable(table, max_chunk_size=9)) self.assertLen(chunks, 3) self.assertEqual(chunks[0].query, table.query) self.assertEqual(chunks[0].header, table.header) self.assertEqual(chunks[0].rows, [ rdf_osquery.OsqueryRow(values=["ABC", "DEF", "GHI"]), ]) self.assertEqual(chunks[1].query, table.query) self.assertEqual(chunks[1].header, table.header) self.assertEqual(chunks[1].rows, [ rdf_osquery.OsqueryRow(values=["JKL", "MNO", "PQR"]), ]) self.assertEqual(chunks[2].query, table.query) self.assertEqual(chunks[2].header, table.header) self.assertEqual(chunks[2].rows, [ rdf_osquery.OsqueryRow(values=["RST", "UVW", "XYZ"]), ])
def testNoRows(self): table = rdf_osquery.OsqueryTable() table.header.columns.append(rdf_osquery.OsqueryColumn(name="foo")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="bar")) table.query = "SELECT * FROM quux;" chunks = list( osquery.ChunkTable(table, max_chunk_size=1024 * 1024 * 1024)) self.assertEmpty(chunks)
def testMultiByteStrings(self): table = rdf_osquery.OsqueryTable() table.query = "SELECT foo, bar, baz FROM quux;" table.header.columns.append(rdf_osquery.OsqueryColumn(name="foo")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="bar")) table.rows.append(rdf_osquery.OsqueryRow(values=["🐔", "🐓"])) table.rows.append(rdf_osquery.OsqueryRow(values=["🐣", "🐤"])) table.rows.append(rdf_osquery.OsqueryRow(values=["🐥", "🦆"])) chunks = list(osquery.ChunkTable(table, max_chunk_size=10)) self.assertLen(chunks, 3) self.assertEqual(chunks[0].rows, [rdf_osquery.OsqueryRow(values=["🐔", "🐓"])]) self.assertEqual(chunks[1].rows, [rdf_osquery.OsqueryRow(values=["🐣", "🐤"])]) self.assertEqual(chunks[2].rows, [rdf_osquery.OsqueryRow(values=["🐥", "🦆"])])
def testMultiRowChunks(self): table = rdf_osquery.OsqueryTable() table.query = "SELECT foo, bar, baz FROM quux;" table.header.columns.append(rdf_osquery.OsqueryColumn(name="foo")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="bar")) table.header.columns.append(rdf_osquery.OsqueryColumn(name="baz")) table.rows.append(rdf_osquery.OsqueryRow(values=["A", "B", "C"])) table.rows.append(rdf_osquery.OsqueryRow(values=["D", "E", "F"])) table.rows.append(rdf_osquery.OsqueryRow(values=["G", "H", "I"])) table.rows.append(rdf_osquery.OsqueryRow(values=["J", "K", "L"])) table.rows.append(rdf_osquery.OsqueryRow(values=["M", "N", "O"])) table.rows.append(rdf_osquery.OsqueryRow(values=["P", "Q", "R"])) table.rows.append(rdf_osquery.OsqueryRow(values=["S", "T", "U"])) table.rows.append(rdf_osquery.OsqueryRow(values=["V", "W", "X"])) chunks = list(osquery.ChunkTable(table, max_chunk_size=10)) self.assertLen(chunks, 3) self.assertEqual(chunks[0].query, table.query) self.assertEqual(chunks[0].header, table.header) self.assertEqual(chunks[0].rows, [ rdf_osquery.OsqueryRow(values=["A", "B", "C"]), rdf_osquery.OsqueryRow(values=["D", "E", "F"]), rdf_osquery.OsqueryRow(values=["G", "H", "I"]), ]) self.assertEqual(chunks[1].query, table.query) self.assertEqual(chunks[1].header, table.header) self.assertEqual(chunks[1].rows, [ rdf_osquery.OsqueryRow(values=["J", "K", "L"]), rdf_osquery.OsqueryRow(values=["M", "N", "O"]), rdf_osquery.OsqueryRow(values=["P", "Q", "R"]), ]) self.assertEqual(chunks[2].query, table.query) self.assertEqual(chunks[2].header, table.header) self.assertEqual(chunks[2].rows, [ rdf_osquery.OsqueryRow(values=["S", "T", "U"]), rdf_osquery.OsqueryRow(values=["V", "W", "X"]), ])