def test_less_equal_than(self): self.assertTrue( DateTimeType("2019-06-12-16:30:16.770").less_equal_than( "2019-06-12-16:30:16.770")) self.assertFalse( DateTimeType("2018-06-15").less_equal_than("2009-07-13")) self.assertTrue( DateTimeType("2018-06-13").less_equal_than("2020-06-19"))
def test_greater_equal_than(self): self.assertTrue( DateTimeType("2019-06-12-16:30:16.770").greater_equal_than( "2019-06-12-16:30:16.770")) self.assertTrue( DateTimeType("2018-06-15").greater_equal_than("2018-06-13")) self.assertFalse( DateTimeType("2018-06-13").greater_equal_than("2018-06-19"))
def test_equal_to(self): self.assertTrue( DateTimeType("2018-06-12-16:30:16.770").equal_to( "2018-06-12-16:30:16.770")) self.assertFalse( DateTimeType("2018-06-12-16:30:16.770").equal_to("2018-06-12-16")) self.assertTrue(DateTimeType("2018-06-13").equal_to("2018-06-13")) self.assertFalse(DateTimeType("2018-06-13").equal_to("2018-07-13"))
def test_datetime_equal_to(self): self.assertTrue( DateTimeType(self.TEST_DATETIME).equal_to(self.TEST_DATETIME)) self.assertTrue( DateTimeType(self.TEST_DATETIME).equal_to(self.TEST_DATETIME_OBJ)) self.assertTrue(DateTimeType(self.TEST_DATE).equal_to(self.TEST_DATE)) self.assertTrue( DateTimeType(self.TEST_DATE).equal_to(self.TEST_DATE_OBJ))
def test_datetime_before_than_or_equal_to(self): self.assertTrue( DateTimeType(self.TEST_DATE).before_than_or_equal_to( self.TEST_DATE)) self.assertFalse( DateTimeType(self.TEST_DATETIME).before_than_or_equal_to( self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertTrue( DateTimeType(self.TEST_DATETIME).before_than_or_equal_to( self.TEST_DATETIME_OBJ + timedelta(seconds=1)))
def test_datetime_after_than(self): self.assertTrue( DateTimeType( self.TEST_DATETIME).after_than(self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertFalse( DateTimeType(self.TEST_DATE).after_than(self.TEST_DATE)) self.assertFalse( DateTimeType( self.TEST_DATETIME).after_than(self.TEST_DATETIME_OBJ + timedelta(seconds=1)))
def test_datetime_type_validates_and_cast_datetime(self): result = DateTimeType(self.TEST_DATETIME) self.assertTrue(isinstance(result.value, int)) result = DateTimeType(self.TEST_DATE) self.assertTrue(isinstance(result.value, int)) result = DateTimeType(self.TEST_DATETIME_OBJ) self.assertTrue(isinstance(result.value, int)) result = DateTimeType(self.TEST_DATE_OBJ) self.assertTrue(isinstance(result.value, int))
def setUp(self): super(DateTimeOperatorTests, self).setUp() self.TEST_YEAR = 2017 self.TEST_MONTH = 1 self.TEST_DAY = 16 self.TEST_HOUR = 13 self.TEST_MINUTE = 55 self.TEST_SECOND = 25 self.TEST_DATETIME = '{year}-0{month}-{day}T{hour}:{minute}:{second}'.format( year=self.TEST_YEAR, month=self.TEST_MONTH, day=self.TEST_DAY, hour=self.TEST_HOUR, minute=self.TEST_MINUTE, second=self.TEST_SECOND ) self.TEST_DATE = '{year}-0{month}-{day}'.format( year=self.TEST_YEAR, month=self.TEST_MONTH, day=self.TEST_DAY ) self.TEST_DATETIME_OBJ = datetime(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY, self.TEST_HOUR, self.TEST_MINUTE, self.TEST_SECOND) self.TEST_DATE_OBJ = date(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY) self.TEST_DATETIME_UTC_OBJ = datetime(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY, self.TEST_HOUR, self.TEST_MINUTE, self.TEST_SECOND, tzinfo=pytz.UTC) self.datetime_type_date = DateTimeType(self.TEST_DATE) self.datetime_type_datetime = DateTimeType(self.TEST_DATETIME) self.datetime_type_datetime_obj = DateTimeType(self.TEST_DATETIME_OBJ) self.datetime_type_datetime_utc_obj = DateTimeType(self.TEST_DATETIME_UTC_OBJ)
def test_other_value_not_datetime(self): error_string = "2016-10 is not a valid datetime type" with self.assertRaisesRegexp(AssertionError, error_string): DateTimeType(self.TEST_DATE).equal_to("2016-10")
def test_instantiate(self): err_string = "foo is not a valid datetime type" with self.assertRaisesRegexp(AssertionError, err_string): DateTimeType("foo")
class DateTimeOperatorTests(TestCase): def setUp(self): super(DateTimeOperatorTests, self).setUp() self.TEST_YEAR = 2017 self.TEST_MONTH = 1 self.TEST_DAY = 16 self.TEST_HOUR = 13 self.TEST_MINUTE = 55 self.TEST_SECOND = 25 self.TEST_DATETIME = '{year}-0{month}-{day}T{hour}:{minute}:{second}'.format( year=self.TEST_YEAR, month=self.TEST_MONTH, day=self.TEST_DAY, hour=self.TEST_HOUR, minute=self.TEST_MINUTE, second=self.TEST_SECOND) self.TEST_DATE = '{year}-0{month}-{day}'.format(year=self.TEST_YEAR, month=self.TEST_MONTH, day=self.TEST_DAY) self.TEST_DATETIME_OBJ = datetime(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY, self.TEST_HOUR, self.TEST_MINUTE, self.TEST_SECOND) self.TEST_DATE_OBJ = date(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY) self.TEST_DATETIME_UTC_OBJ = datetime(self.TEST_YEAR, self.TEST_MONTH, self.TEST_DAY, self.TEST_HOUR, self.TEST_MINUTE, self.TEST_SECOND, tzinfo=pytz.UTC) self.datetime_type_date = DateTimeType(self.TEST_DATE) self.datetime_type_datetime = DateTimeType(self.TEST_DATETIME) self.datetime_type_datetime_obj = DateTimeType(self.TEST_DATETIME_OBJ) self.datetime_type_datetime_utc_obj = DateTimeType( self.TEST_DATETIME_UTC_OBJ) def test_instantiate(self): err_string = "foo is not a valid datetime type" with self.assertRaisesRegexp(AssertionError, err_string): DateTimeType("foo") def test_datetime_type_validates_and_cast_datetime(self): result = DateTimeType(self.TEST_DATETIME) self.assertTrue(isinstance(result.value, datetime)) result = DateTimeType(self.TEST_DATE) self.assertTrue(isinstance(result.value, datetime)) result = DateTimeType(self.TEST_DATETIME_OBJ) self.assertTrue(isinstance(result.value, datetime)) result = DateTimeType(self.TEST_DATE_OBJ) self.assertTrue(isinstance(result.value, datetime)) def test_datetime_equal_to(self): self.assertTrue( self.datetime_type_datetime.equal_to(self.TEST_DATETIME)) self.assertTrue( self.datetime_type_datetime.equal_to(self.TEST_DATETIME_OBJ)) self.assertTrue( self.datetime_type_datetime.equal_to(self.TEST_DATETIME_UTC_OBJ)) self.assertTrue( self.datetime_type_datetime_obj.equal_to(self.TEST_DATETIME)) self.assertTrue( self.datetime_type_datetime_obj.equal_to(self.TEST_DATETIME_OBJ)) self.assertTrue( self.datetime_type_datetime_obj.equal_to( self.TEST_DATETIME_UTC_OBJ)) self.assertTrue( self.datetime_type_datetime_utc_obj.equal_to(self.TEST_DATETIME)) self.assertTrue( self.datetime_type_datetime_utc_obj.equal_to( self.TEST_DATETIME_OBJ)) self.assertTrue( self.datetime_type_datetime_utc_obj.equal_to( self.TEST_DATETIME_UTC_OBJ)) self.assertTrue(self.datetime_type_date.equal_to(self.TEST_DATE)) self.assertTrue(self.datetime_type_date.equal_to(self.TEST_DATE_OBJ)) def test_other_value_not_datetime(self): error_string = "2016-10 is not a valid datetime type" with self.assertRaisesRegexp(AssertionError, error_string): DateTimeType(self.TEST_DATE).equal_to("2016-10") def datetime_after_than_asserts(self, datetime_type): # type: (DateTimeType) -> None self.assertFalse(datetime_type.after_than(self.TEST_DATETIME)) self.assertFalse(datetime_type.after_than(self.TEST_DATETIME_OBJ)) self.assertFalse(datetime_type.after_than(self.TEST_DATETIME_UTC_OBJ)) self.assertTrue( datetime_type.after_than(self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertTrue( datetime_type.after_than(self.TEST_DATETIME_UTC_OBJ - timedelta(seconds=1))) self.assertFalse( datetime_type.after_than(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertFalse( datetime_type.after_than(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def test_datetime_after_than(self): self.datetime_after_than_asserts(self.datetime_type_datetime) self.datetime_after_than_asserts(self.datetime_type_datetime_obj) self.datetime_after_than_asserts(self.datetime_type_datetime_utc_obj) self.assertFalse(self.datetime_type_date.after_than(self.TEST_DATE)) self.assertFalse( self.datetime_type_date.after_than(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertFalse( self.datetime_type_date.after_than(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def datetime_after_than_or_equal_to_asserts(self, datetime_type): # type: (DateTimeType) -> None self.assertTrue( datetime_type.after_than_or_equal_to(self.TEST_DATETIME)) self.assertTrue( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_OBJ)) self.assertTrue( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ)) self.assertTrue( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertFalse( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertTrue( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ - timedelta(seconds=1))) self.assertFalse( datetime_type.after_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def test_datetime_after_than_or_equal_to(self): self.assertTrue( self.datetime_type_date.after_than_or_equal_to(self.TEST_DATE)) self.datetime_after_than_or_equal_to_asserts( self.datetime_type_datetime) self.datetime_after_than_or_equal_to_asserts( self.datetime_type_datetime_obj) self.datetime_after_than_or_equal_to_asserts( self.datetime_type_datetime_utc_obj) def datetime_before_than_asserts(self, datetime_type): # type: (DateTimeType) -> None self.assertFalse(datetime_type.before_than(self.TEST_DATETIME)) self.assertFalse(datetime_type.before_than(self.TEST_DATETIME_OBJ)) self.assertFalse(datetime_type.before_than(self.TEST_DATETIME_UTC_OBJ)) self.assertFalse( datetime_type.before_than(self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertFalse( datetime_type.before_than(self.TEST_DATETIME_UTC_OBJ - timedelta(seconds=1))) self.assertTrue( datetime_type.before_than(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertTrue( datetime_type.before_than(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def test_datetime_before_than(self): self.datetime_before_than_asserts(self.datetime_type_datetime) self.datetime_before_than_asserts(self.datetime_type_datetime_obj) self.datetime_before_than_asserts(self.datetime_type_datetime_utc_obj) self.assertFalse(self.datetime_type_date.before_than(self.TEST_DATE)) self.assertTrue( self.datetime_type_date.before_than(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertTrue( self.datetime_type_date.before_than(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def datetime_before_than_or_equal_to_asserts(self, datetime_type): # type: (DateTimeType) -> None self.assertTrue( datetime_type.before_than_or_equal_to(self.TEST_DATETIME)) self.assertTrue( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_OBJ)) self.assertTrue( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ)) self.assertFalse( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_OBJ - timedelta(seconds=1))) self.assertFalse( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ - timedelta(seconds=1))) self.assertTrue( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertTrue( datetime_type.before_than_or_equal_to(self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1))) def test_datetime_before_than_or_equal_to(self): self.datetime_before_than_or_equal_to_asserts( self.datetime_type_datetime) self.datetime_before_than_or_equal_to_asserts( self.datetime_type_datetime_obj) self.datetime_before_than_or_equal_to_asserts( self.datetime_type_datetime_utc_obj) self.assertTrue( self.datetime_type_date.before_than_or_equal_to(self.TEST_DATE)) self.assertTrue( self.datetime_type_date.before_than_or_equal_to( self.TEST_DATETIME_OBJ + timedelta(seconds=1))) self.assertTrue( self.datetime_type_date.before_than_or_equal_to( self.TEST_DATETIME_UTC_OBJ + timedelta(seconds=1)))