def test_getReleaseDate_shouldRaiseOnInvalidTimezoneString(self): # Given sut = Product() givenDatetime = dtt.datetime(2022, 12, 1, 8, 32, 59) sut.setReleaseDate(givenDatetime, timezone="Indian/Kerguelen") # When (forType str) with self.assertRaises(pytz.UnknownTimeZoneError): sut.getReleaseDate(forTimezone="Invalid/Something", forType=str) # When (forType datetime) with self.assertRaises(pytz.UnknownTimeZoneError): sut.getReleaseDate(forTimezone="EvenMoreInvalid/Stuff", forType=dtt.datetime)
def test_getReleaseDate_shouldReturnNoneWhenReleaseStampIsNotSet(self): # Given sut = Product() sut.invalidateReleaseDate() # When result = sut.getReleaseDate(forTimezone="America/Indiana/Petersburg", forType=dtt.datetime) # Then self.assertEqual(None, result)
def test_getReleaseDate_shouldReturnReadableString(self): # Given sut = Product() givenDatetime = dtt.datetime(2023, 11, 28, 13, 30, 12) givenTimezoneString = "Europe/Berlin" # See also: pytz.all_timezones expectedString = "28.11.2023, 13:30:12" sut.setReleaseDate(givenDatetime, timezone=givenTimezoneString) # When result = sut.getReleaseDate(forTimezone=givenTimezoneString, forType=str) # Then self.assertEqual(expectedString, result)
def test_getReleaseDate_shouldReturnDatetime(self): # Given sut = Product() givenTimezoneString = "US/Alaska" # See also: pytz.all_timezones timezone = pytz.timezone(givenTimezoneString) givenDatetime = dtt.datetime(2035, 7, 15, 9, 00, 00) # Leave datetime itself untouched, just add the timezone-data: expectedLocalDatetime = timezone.localize(givenDatetime) sut.setReleaseDate(givenDatetime, timezone=givenTimezoneString) # When result = sut.getReleaseDate(forTimezone=givenTimezoneString, forType=dtt.datetime) # Then self.assertEqual(expectedLocalDatetime, result)