@@ -507,6 +507,39 @@ def test_decimal_conversion():
507507 with pytest .raises (TypeError ):
508508 ConversionTest ().DecimalField = 1
509509
510+ def test_timedelta_conversion ():
511+ import datetime
512+
513+ ob = ConversionTest ()
514+ assert type (ob .TimeSpanField ) is type (datetime .timedelta (0 ))
515+ assert ob .TimeSpanField .days == 0
516+
517+ ob .TimeSpanField = datetime .timedelta (days = 1 )
518+ assert ob .TimeSpanField .days == 1
519+
520+ with pytest .raises (TypeError ):
521+ ConversionTest ().TimeSpanField = None
522+
523+ with pytest .raises (TypeError ):
524+ ConversionTest ().TimeSpanField = "spam"
525+
526+ def test_datetime_conversion ():
527+ from datetime import datetime
528+
529+ ob = ConversionTest ()
530+ assert type (ob .DateTimeField ) is type (datetime (1 ,1 ,1 ))
531+ assert ob .DateTimeField .day == 1
532+
533+ ob .DateTimeField = datetime (2000 ,1 ,2 )
534+ assert ob .DateTimeField .day == 2
535+ assert ob .DateTimeField .month == 1
536+ assert ob .DateTimeField .year == 2000
537+
538+ with pytest .raises (TypeError ):
539+ ConversionTest ().DateTimeField = None
540+
541+ with pytest .raises (TypeError ):
542+ ConversionTest ().DateTimeField = "spam"
510543
511544def test_string_conversion ():
512545 """Test string / unicode conversion."""
@@ -716,3 +749,5 @@ def CanEncode(self, clr_type):
716749 l = ob .ListField
717750 l .Add (42 )
718751 assert ob .ListField .Count == 1
752+
753+
0 commit comments