@@ -398,6 +398,120 @@ def test_to_pb_exclusive_end(self):
398398 self .assertEqual (row_filter .to_pb (), expected_pb )
399399
400400
401+ class TestTimestampRange (unittest2 .TestCase ):
402+
403+ def _getTargetClass (self ):
404+ from gcloud .bigtable .row import TimestampRange
405+ return TimestampRange
406+
407+ def _makeOne (self , * args , ** kwargs ):
408+ return self ._getTargetClass ()(* args , ** kwargs )
409+
410+ def test_constructor (self ):
411+ start = object ()
412+ end = object ()
413+ time_range = self ._makeOne (start = start , end = end )
414+ self .assertTrue (time_range .start is start )
415+ self .assertTrue (time_range .end is end )
416+
417+ def test___eq__ (self ):
418+ start = object ()
419+ end = object ()
420+ time_range1 = self ._makeOne (start = start , end = end )
421+ time_range2 = self ._makeOne (start = start , end = end )
422+ self .assertEqual (time_range1 , time_range2 )
423+
424+ def test___eq__type_differ (self ):
425+ start = object ()
426+ end = object ()
427+ time_range1 = self ._makeOne (start = start , end = end )
428+ time_range2 = object ()
429+ self .assertNotEqual (time_range1 , time_range2 )
430+
431+ def test___ne__same_value (self ):
432+ start = object ()
433+ end = object ()
434+ time_range1 = self ._makeOne (start = start , end = end )
435+ time_range2 = self ._makeOne (start = start , end = end )
436+ comparison_val = (time_range1 != time_range2 )
437+ self .assertFalse (comparison_val )
438+
439+ def _to_pb_helper (self , start_micros = None , end_micros = None ):
440+ import datetime
441+ from gcloud ._helpers import _EPOCH
442+ from gcloud .bigtable ._generated import bigtable_data_pb2 as data_pb2
443+
444+ pb_kwargs = {}
445+
446+ start = None
447+ if start_micros is not None :
448+ start = _EPOCH + datetime .timedelta (microseconds = start_micros )
449+ pb_kwargs ['start_timestamp_micros' ] = start_micros
450+ end = None
451+ if end_micros is not None :
452+ end = _EPOCH + datetime .timedelta (microseconds = end_micros )
453+ pb_kwargs ['end_timestamp_micros' ] = end_micros
454+ time_range = self ._makeOne (start = start , end = end )
455+
456+ expected_pb = data_pb2 .TimestampRange (** pb_kwargs )
457+ self .assertEqual (time_range .to_pb (), expected_pb )
458+
459+ def test_to_pb (self ):
460+ # Makes sure already milliseconds granularity
461+ start_micros = 30871000
462+ end_micros = 12939371000
463+ self ._to_pb_helper (start_micros = start_micros ,
464+ end_micros = end_micros )
465+
466+ def test_to_pb_start_only (self ):
467+ # Makes sure already milliseconds granularity
468+ start_micros = 30871000
469+ self ._to_pb_helper (start_micros = start_micros )
470+
471+ def test_to_pb_end_only (self ):
472+ # Makes sure already milliseconds granularity
473+ end_micros = 12939371000
474+ self ._to_pb_helper (end_micros = end_micros )
475+
476+
477+ class TestTimestampRangeFilter (unittest2 .TestCase ):
478+
479+ def _getTargetClass (self ):
480+ from gcloud .bigtable .row import TimestampRangeFilter
481+ return TimestampRangeFilter
482+
483+ def _makeOne (self , * args , ** kwargs ):
484+ return self ._getTargetClass ()(* args , ** kwargs )
485+
486+ def test_constructor (self ):
487+ range_ = object ()
488+ row_filter = self ._makeOne (range_ )
489+ self .assertTrue (row_filter .range_ is range_ )
490+
491+ def test___eq__type_differ (self ):
492+ range_ = object ()
493+ row_filter1 = self ._makeOne (range_ )
494+ row_filter2 = object ()
495+ self .assertNotEqual (row_filter1 , row_filter2 )
496+
497+ def test___eq__same_value (self ):
498+ range_ = object ()
499+ row_filter1 = self ._makeOne (range_ )
500+ row_filter2 = self ._makeOne (range_ )
501+ self .assertEqual (row_filter1 , row_filter2 )
502+
503+ def test_to_pb (self ):
504+ from gcloud .bigtable ._generated import bigtable_data_pb2 as data_pb2
505+ from gcloud .bigtable .row import TimestampRange
506+
507+ range_ = TimestampRange ()
508+ row_filter = self ._makeOne (range_ )
509+ pb_val = row_filter .to_pb ()
510+ expected_pb = data_pb2 .RowFilter (
511+ timestamp_range_filter = data_pb2 .TimestampRange ())
512+ self .assertEqual (pb_val , expected_pb )
513+
514+
401515class TestValueRegexFilter (unittest2 .TestCase ):
402516
403517 def _getTargetClass (self ):
0 commit comments