def test_get_row_by_time_nothing_found(self): """Test get_row_by_time with a big enough timestamp.""" txlogs = [self.obj_factory.make_transaction_log() for i in range(2)] tstamp = txlogs[-1].timestamp + datetime.timedelta(seconds=1) txid, newtstamp = utils.get_row_by_time(tstamp) self.assertEqual(txid, None) self.assertEqual(newtstamp, None)
def test_get_row_by_time_nothing_found(self): """Test get_row_by_time with a big enough timestamp.""" txlogs = [self.obj_factory.make_transaction_log() for i in range(2)] tstamp = txlogs[-1].timestamp + datetime.timedelta(seconds=1) txid, newtstamp = utils.get_row_by_time(self.obj_factory.sstore_name, tstamp) self.assertEqual(txid, None) self.assertEqual(newtstamp, None)
def test_get_row_by_time_with_data(self): """Test get_row_by_time function when data is present.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log( timestamp=ts + datetime.timedelta(i, 0)) for i in range(5)] tstamp = txlogs[2].timestamp txid, newtstamp = utils.get_row_by_time(tstamp) self.assertEqual(txid, txlogs[2].id) self.assertEqual(newtstamp, tstamp)
def test_get_row_by_time_with_data(self): """Test get_row_by_time function when data is present.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log(timestamp=ts + datetime.timedelta(i, 0)) for i in range(5) ] tstamp = txlogs[2].timestamp txid, newtstamp = utils.get_row_by_time(self.obj_factory.sstore_name, tstamp) self.assertEqual(txid, txlogs[2].id) self.assertEqual(newtstamp, tstamp)
def test_get_row_by_time_timestamp_twice(self): """Test get_row_by_time having two lines with same timestamp.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log( timestamp=ts + datetime.timedelta(i, 0)) for i in range(5)] # put the timestamp of [3] into [1], the function should return the # id of [1] tstamp = txlogs[1].timestamp = txlogs[3].timestamp txid, newtstamp = utils.get_row_by_time(tstamp) self.assertEqual(txid, txlogs[1].id) self.assertEqual(newtstamp, tstamp)
def test_get_row_by_time_timestamp_twice(self): """Test get_row_by_time having two lines with same timestamp.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log(timestamp=ts + datetime.timedelta(i, 0)) for i in range(5) ] # put the timestamp of [3] into [1], the function should return the # id of [1] tstamp = txlogs[1].timestamp = txlogs[3].timestamp txid, newtstamp = utils.get_row_by_time(self.obj_factory.sstore_name, tstamp) self.assertEqual(txid, txlogs[1].id) self.assertEqual(newtstamp, tstamp)
def test_get_row_by_time_not_exact(self): """Test get_row_by_time not giving an exact timestamp.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log( timestamp=ts + datetime.timedelta(i, 0)) for i in range(5)] # get a timestamp in the middle of [2] and [3], the function should # return the id of [3] tx2, tx3 = txlogs[2:4] delta = (txlogs[3].timestamp - txlogs[2].timestamp) / 2 tstamp = txlogs[2].timestamp + delta txid, newtstamp = utils.get_row_by_time(tstamp) self.assertEqual(txid, txlogs[3].id) self.assertEqual(newtstamp, txlogs[3].timestamp)
def test_get_row_by_time_not_exact(self): """Test get_row_by_time not giving an exact timestamp.""" ts = datetime.datetime.utcnow() txlogs = [ self.obj_factory.make_transaction_log(timestamp=ts + datetime.timedelta(i, 0)) for i in range(5) ] # get a timestamp in the middle of [2] and [3], the function should # return the id of [3] tx2, tx3 = txlogs[2:4] delta = (txlogs[3].timestamp - txlogs[2].timestamp) / 2 tstamp = txlogs[2].timestamp + delta txid, newtstamp = utils.get_row_by_time(self.obj_factory.sstore_name, tstamp) self.assertEqual(txid, txlogs[3].id) self.assertEqual(newtstamp, txlogs[3].timestamp)
def test_get_row_by_time_with_no_data(self): """Test the get_row_by_time function when no data is present.""" txid, _ = utils.get_row_by_time(self.obj_factory.sstore_name, datetime.datetime.utcnow()) self.assertEqual(txid, None)