示例#1
0
 def test_mapping_access_attribute(self):
     self.assertEqual(
         ' | where (mapField.key) == "bar"',
         Query().where(t.mapField.key == 'bar').render(),
     )
示例#2
0
 def test_ge(self):
     self.assertEqual(
         ' | where numField >= 10',
         Query().where(t.numField >= 10).render(),
     )
示例#3
0
 def test_swapped_mod(self):
     self.assertEqual(
         ' | extend foo = 2 % numField',
         Query().extend(foo=2 % t.numField).render(),
     )
示例#4
0
 def test_swapped_or(self):
     self.assertEqual(
         ' | where 0 or boolField',
         Query().where(0 | t.boolField).render(),
     )
示例#5
0
 def test_execute_no_table(self):
     self.assertRaises(RuntimeError("No table supplied"),
                       Query().take(5).execute)
示例#6
0
 def test_to_int(self):
     self.assertEqual(
         ' | extend intFoo = toint(stringField)',
         Query().extend(intFoo=t.stringField.to_int()).render(),
     )
示例#7
0
 def test_swapped_and(self):
     self.assertEqual(
         ' | where 1 and boolField',
         Query().where(1 & t.boolField).render(),
     )
示例#8
0
 def test_column_with_dot(self):
     self.assertEqual(
         " | project ['foo.bar']",
         Query().project(t['foo.bar']).render(),
     )
示例#9
0
 def test_is_in_expression(self):
     self.assertEqual(
         ' | where arrayField contains stringField',
         Query().where(t.stringField.is_in(t.arrayField)).render())
示例#10
0
 def test_extend_const(self):
     self.assertEqual(
         ' | extend foo = 5, bar = "bar", other_col = stringField',
         Query().extend(foo=5, bar="bar", other_col=t.stringField).render(),
     )
示例#11
0
 def test_array_contains(self):
     self.assertEqual(
         ' | where arrayField contains "true"',
         Query().where(t.arrayField.array_contains(True)).render(),
     )
示例#12
0
 def test_dynamic(self):
     self.assertEqual(
         ' | where (mapField["foo"][0].bar[1][2][tolower(stringField)]) > time(1.0:0:0.0)',
         Query().where(t.mapField['foo'][0].bar[1][2][t.stringField.lower()]
                       > timedelta(1)).render(),
     )
示例#13
0
 def test_mapping_access_yields_any_expression(self):
     self.assertEqual(
         ' | where (mapField["key"]) contains "substr"',
         Query().where(t.mapField['key'].contains("substr")).render(),
     )
示例#14
0
 def test_mapping_access_expression_index(self):
     self.assertEqual(
         ' | where (mapField[stringField]) == "bar"',
         Query().where(t.mapField[t.stringField] == 'bar').render(),
     )
示例#15
0
 def test_not_equals(self):
     self.assertEqual(
         ' | where stringField != "bar"',
         Query().where(t.stringField != 'bar').render(),
     )
示例#16
0
 def test_has(self):
     self.assertEqual(' | where stringField has "test"',
                      Query().where(t.stringField.has("test")).render())
示例#17
0
 def test_to_bool(self):
     self.assertEqual(
         ' | extend boolFoo = tobool(stringField)',
         Query().extend(boolFoo=t.stringField.to_bool()).render(),
     )
示例#18
0
 def test_has_cs(self):
     self.assertEqual(
         ' | where stringField has_cs "test"',
         Query().where(t.stringField.has("test",
                                         case_sensitive=True)).render())
示例#19
0
 def test_to_long(self):
     self.assertEqual(
         ' | extend longFoo = tolong(stringField)',
         Query().extend(longFoo=t.stringField.to_long()).render(),
     )
示例#20
0
 def test_bag_contains(self):
     self.assertEqual(
         ' | where mapField contains "2"',
         Query().where(t.mapField.bag_contains(2)).render(),
     )
示例#21
0
 def test_or(self):
     self.assertEqual(
         ' | where boolField or (stringField contains "hello")',
         Query().where(t.boolField
                       | t.stringField.contains("hello")).render(),
     )
示例#22
0
 def test_column_name_quoting(self):
     self.assertEqual(' | where [\'title\'] has "test"',
                      Query().where(t.title.has("test")).render())
     self.assertEqual(
         ' | where [\'stringField\'] has "test"',
         Query().where(col.of('stringField').has("test")).render())
示例#23
0
 def test_single_table(self):
     mock_kusto_client = MockKustoClient()
     table = PyKustoClient(mock_kusto_client)['test_db']['mock_table']
     Query(table).take(5).execute()
     self.assertEqual([RecordedQuery('test_db', 'mock_table | take 5')],
                      mock_kusto_client.recorded_queries)
示例#24
0
 def test_add_number_column(self):
     self.assertEqual(
         ' | where (todouble(100 + numberField)) > 0.2',
         Query().where(f.to_double(100 + t.numberField) > 0.2).render(),
     )
示例#25
0
 def test_not(self):
     self.assertEqual(
         ' | where not(stringField contains "hello")',
         Query().where(~t.stringField.contains("hello")).render(),
     )
示例#26
0
 def test_multiply_number_expression(self):
     self.assertEqual(
         ' | where (100 * (todouble(numberField))) > 0.2',
         Query().where(100 * f.to_double(t.numberField) > 0.2).render(),
     )
示例#27
0
 def test_mod(self):
     self.assertEqual(
         ' | extend foo = numField % 2',
         Query().extend(foo=t.numField % 2).render(),
     )
示例#28
0
 def test_column_with_digits(self):
     self.assertEqual(
         " | where (['100'] * (todouble(numberField))) > 0.2",
         Query().where(
             col['100'] * f.to_double(t.numberField) > 0.2).render(),
     )
示例#29
0
 def test_negation(self):
     self.assertEqual(
         ' | extend foo = -numField',
         Query().extend(foo=-t.numField).render(),
     )
示例#30
0
 def test_mapping_access(self):
     self.assertEqual(
         ' | where (mapField["key"]) == "bar"',
         Query().where(t.mapField['key'] == 'bar').render(),
     )