Revision 526f866b test/ganeti.query_unittest.py

b/test/ganeti.query_unittest.py
1777 1777
    self.assertEqual(q.Query(data),
1778 1778
                     [[(constants.RS_NORMAL, i)] for i in range(50, 100)])
1779 1779

  
1780
  def testFilterLessGreaterJobId(self):
1781
    fielddefs = query._PrepareFieldList([
1782
      (query._MakeField("id", "ID", constants.QFT_TEXT, "Job ID"),
1783
       None, query.QFF_JOB_ID, lambda ctx, item: item),
1784
      ], [])
1785

  
1786
    data = ["1", "2", "3", "10", "102", "120", "125", "15", "100", "7"]
1787

  
1788
    assert data != utils.NiceSort(data), "Test data should not be sorted"
1789

  
1790
    q = query.Query(fielddefs, ["id"], qfilter=["<", "id", "20"])
1791
    self.assertTrue(q.RequestedNames() is None)
1792
    self.assertEqual(q.Query(data), [
1793
      [(constants.RS_NORMAL, "1")],
1794
      [(constants.RS_NORMAL, "2")],
1795
      [(constants.RS_NORMAL, "3")],
1796
      [(constants.RS_NORMAL, "10")],
1797
      [(constants.RS_NORMAL, "15")],
1798
      [(constants.RS_NORMAL, "7")],
1799
      ])
1800

  
1801
    q = query.Query(fielddefs, ["id"], qfilter=[">=", "id", "100"])
1802
    self.assertTrue(q.RequestedNames() is None)
1803
    self.assertEqual(q.Query(data), [
1804
      [(constants.RS_NORMAL, "102")],
1805
      [(constants.RS_NORMAL, "120")],
1806
      [(constants.RS_NORMAL, "125")],
1807
      [(constants.RS_NORMAL, "100")],
1808
      ])
1809

  
1810
    # Integers are no valid job IDs
1811
    self.assertRaises(errors.ParameterError, query.Query,
1812
                      fielddefs, ["id"], qfilter=[">=", "id", 10])
1813

  
1814
  def testFilterLessGreaterSplitTimestamp(self):
1815
    fielddefs = query._PrepareFieldList([
1816
      (query._MakeField("ts", "Timestamp", constants.QFT_OTHER, "Timestamp"),
1817
       None, query.QFF_SPLIT_TIMESTAMP, lambda ctx, item: item),
1818
      ], [])
1819

  
1820
    data = [
1821
      utils.SplitTime(0),
1822
      utils.SplitTime(0.1),
1823
      utils.SplitTime(18224.7872),
1824
      utils.SplitTime(919896.12623),
1825
      utils.SplitTime(999),
1826
      utils.SplitTime(989.9999),
1827
      ]
1828

  
1829
    for i in [0, [0, 0]]:
1830
      q = query.Query(fielddefs, ["ts"], qfilter=["<", "ts", i])
1831
      self.assertTrue(q.RequestedNames() is None)
1832
      self.assertEqual(q.Query(data), [])
1833

  
1834
    q = query.Query(fielddefs, ["ts"], qfilter=["<", "ts", 1000])
1835
    self.assertTrue(q.RequestedNames() is None)
1836
    self.assertEqual(q.Query(data), [
1837
      [(constants.RS_NORMAL, (0, 0))],
1838
      [(constants.RS_NORMAL, (0, 100000))],
1839
      [(constants.RS_NORMAL, (999, 0))],
1840
      [(constants.RS_NORMAL, (989, 999900))],
1841
      ])
1842

  
1843
    q = query.Query(fielddefs, ["ts"], qfilter=[">=", "ts", 5000.3])
1844
    self.assertTrue(q.RequestedNames() is None)
1845
    self.assertEqual(q.Query(data), [
1846
      [(constants.RS_NORMAL, (18224, 787200))],
1847
      [(constants.RS_NORMAL, (919896, 126230))],
1848
      ])
1849

  
1850
    for i in [18224.7772, utils.SplitTime(18224.7772)]:
1851
      q = query.Query(fielddefs, ["ts"], qfilter=[">=", "ts", i])
1852
      self.assertTrue(q.RequestedNames() is None)
1853
      self.assertEqual(q.Query(data), [
1854
        [(constants.RS_NORMAL, (18224, 787200))],
1855
        [(constants.RS_NORMAL, (919896, 126230))],
1856
        ])
1857

  
1858
    q = query.Query(fielddefs, ["ts"], qfilter=[">", "ts", 18224.7880])
1859
    self.assertTrue(q.RequestedNames() is None)
1860
    self.assertEqual(q.Query(data), [
1861
      [(constants.RS_NORMAL, (919896, 126230))],
1862
      ])
1863

  
1780 1864

  
1781 1865
if __name__ == "__main__":
1782 1866
  testutils.GanetiTestProgram()

Also available in: Unified diff