@@ -1974,6 +1974,55 @@ def test_deserialize_datetime(self):
19741974 self .assertEqual (utc .tm_sec , 52 )
19751975 self .assertEqual (a .microsecond , 780000 )
19761976
1977+ def test_deserialize_datetime_rfc (self ):
1978+
1979+ a = Deserializer .deserialize_rfc ("Mon, 20 Nov 1995 19:12:08 -0500" )
1980+ utc = a .utctimetuple ()
1981+
1982+ # UTC: 21 Nov, 00:12:08
1983+ self .assertEqual (utc .tm_year , 1995 )
1984+ self .assertEqual (utc .tm_mon , 11 )
1985+ self .assertEqual (utc .tm_mday , 21 )
1986+ self .assertEqual (utc .tm_hour , 0 )
1987+ self .assertEqual (utc .tm_min , 12 )
1988+ self .assertEqual (utc .tm_sec , 8 )
1989+ self .assertEqual (a .microsecond , 0 )
1990+
1991+ a = Deserializer .deserialize_rfc ("Mon, 20 Nov 1995 19:12:08 CDT" )
1992+ utc = a .utctimetuple ()
1993+
1994+ # UTC: 21 Nov, 00:12:08
1995+ self .assertEqual (utc .tm_year , 1995 )
1996+ self .assertEqual (utc .tm_mon , 11 )
1997+ self .assertEqual (utc .tm_mday , 21 )
1998+ self .assertEqual (utc .tm_hour , 0 )
1999+ self .assertEqual (utc .tm_min , 12 )
2000+ self .assertEqual (utc .tm_sec , 8 )
2001+ self .assertEqual (a .microsecond , 0 )
2002+
2003+ a = Deserializer .deserialize_rfc ("Mon, 20 Nov 1995 19:12:08" )
2004+ utc = a .utctimetuple ()
2005+
2006+ # UTC: No info is considered UTC
2007+ self .assertEqual (utc .tm_year , 1995 )
2008+ self .assertEqual (utc .tm_mon , 11 )
2009+ self .assertEqual (utc .tm_mday , 20 )
2010+ self .assertEqual (utc .tm_hour , 19 )
2011+ self .assertEqual (utc .tm_min , 12 )
2012+ self .assertEqual (utc .tm_sec , 8 )
2013+ self .assertEqual (a .microsecond , 0 )
2014+
2015+ a = Deserializer .deserialize_rfc ("Mon, 20 Nov 1995 19:12:08 GMT" )
2016+ utc = a .utctimetuple ()
2017+
2018+ self .assertEqual (utc .tm_year , 1995 )
2019+ self .assertEqual (utc .tm_mon , 11 )
2020+ self .assertEqual (utc .tm_mday , 20 )
2021+ self .assertEqual (utc .tm_hour , 19 )
2022+ self .assertEqual (utc .tm_min , 12 )
2023+ self .assertEqual (utc .tm_sec , 8 )
2024+ self .assertEqual (a .microsecond , 0 )
2025+
19772026 def test_polymorphic_deserialization (self ):
19782027
19792028 class Zoo (Model ):
0 commit comments