def test_text_field_type( self ): ft = TextFieldType() self.assertEqual( ft.getValue('first of all'), 'first of all' ) self.assertEqual( ft.getValue(3), '3' ) self.assertEqual( ft.getValue(3.32), '3.32' ) self.assertEqual( ft.getValue( datetime.date.today() ), str( datetime.date.today() ) ) self.assertIsNone( ft.getValue( '' ) ) self.assertIsNone( ft.getValue( None ) )
def test_nullable(self): f1 = metl.field.Field( 'test_name', StringFieldType(), ) f2 = metl.field.Field('test_name', StringFieldType(), nullable=False) f3 = metl.field.Field( 'test_name', StringFieldType(), field_final_type=TextFieldType(), ) f4 = metl.field.Field('test_name', StringFieldType(), field_final_type=TextFieldType(), nullable=False) f5 = metl.field.Field( 'test_name', DateFieldType(), field_final_type=DateTimeFieldType(), ) f6 = metl.field.Field('test_name', DateFieldType(), field_final_type=DateTimeFieldType(), nullable=False) f1.setValue(u' ') f2.setValue(u' ') f3.setValue(u' ') f4.setValue(u' ') f5.setValue(u' ') f6.setValue(u' ') self.assertIsNone(f1.getValue()) self.assertIsNone(f3.getValue()) self.assertIsNone(f5.getValue()) self.assertEqual(f2.getValue(), u'') self.assertEqual(f4.getValue(), u'') self.assertEqual(f6.getValue(), u'')
def test_field_type_convert_to_boolean( self ): fs = BooleanFieldType() self.assertTrue( fs.getValue( BooleanFieldType().getValue( True ) ) ) self.assertTrue( fs.getValue( DateFieldType().getValue( datetime.date.today() ) ) ) self.assertTrue( fs.getValue( DateTimeFieldType().getValue( datetime.datetime.now() ) ) ) self.assertTrue( fs.getValue( FloatFieldType().getValue( 4.32112 ) ) ) self.assertTrue( fs.getValue( IntegerFieldType().getValue( 5 ) ) ) self.assertTrue( fs.getValue( StringFieldType().getValue('test') ) ) self.assertTrue( fs.getValue( TextFieldType().getValue('test') ) ) self.assertIsNone( fs.getValue( None ) )
def test_field_type_convert_to_string( self ): fs = StringFieldType() self.assertEqual( fs.getValue( BooleanFieldType().getValue( True ) ), 'True' ) self.assertEqual( fs.getValue( BooleanFieldType().getValue( False ) ), 'False' ) self.assertEqual( fs.getValue( DateFieldType().getValue( datetime.date( 2013, 2, 3 ) ) ), '2013-02-03' ) self.assertEqual( fs.getValue( DateTimeFieldType().getValue( datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) ), '2013-04-04 16:06:58.929515' ) self.assertEqual( fs.getValue( FloatFieldType().getValue( 4.232 ) ), '4.232' ) self.assertEqual( fs.getValue( IntegerFieldType().getValue( 5 ) ), '5' ) self.assertEqual( fs.getValue( StringFieldType().getValue('text') ), 'text' ) self.assertEqual( fs.getValue( TextFieldType().getValue('text') ), 'text' ) self.assertIsNone( fs.getValue( None ) )
def test_field_type_convert_to_integer( self ): fs = IntegerFieldType() with self.assertRaises( FieldTypeError ): fs.getValue( DateFieldType().getValue('2013-02-03') ) with self.assertRaises( FieldTypeError ): fs.getValue( DateFieldType().getValue('2013-04-04 16:06:58.929515') ) with self.assertRaises( FieldTypeError ): fs.getValue( StringFieldType().getValue('test') ) with self.assertRaises( FieldTypeError ): fs.getValue( TextFieldType().getValue('test') ) self.assertEqual( fs.getValue( BooleanFieldType().getValue( True ) ), 1 ) self.assertEqual( fs.getValue( BooleanFieldType().getValue( False ) ), 0 ) self.assertEqual( fs.getValue( FloatFieldType().getValue( 4.232 ) ), 4 ) self.assertEqual( fs.getValue( IntegerFieldType().getValue( 5 ) ), 5 ) self.assertEqual( fs.getValue( StringFieldType().getValue('5') ), 5 ) self.assertEqual( fs.getValue( TextFieldType().getValue('5') ), 5 ) self.assertIsNone( fs.getValue( None ) )
def test_field_type_convert_to_datetime( self ): fs = DateTimeFieldType() with self.assertRaises( FieldTypeError ): fs.getValue( BooleanFieldType().getValue( True ) ) with self.assertRaises( FieldTypeError ): fs.getValue( FloatFieldType().getValue( 4.32112 ) ) with self.assertRaises( FieldTypeError ): fs.getValue( IntegerFieldType().getValue( 5 ) ) with self.assertRaises( FieldTypeError ): fs.getValue( StringFieldType().getValue('test') ) with self.assertRaises( FieldTypeError ): fs.getValue( TextFieldType().getValue('test') ) self.assertEqual( fs.getValue( DateFieldType().getValue('2013-04-04 16:06:58.929515') ), datetime.datetime( 2013, 4, 4 ) ) self.assertEqual( fs.getValue( DateTimeFieldType().getValue( datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) ), datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) self.assertEqual( fs.getValue( StringFieldType().getValue('2013-04-04 16:06:58.929515') ), datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) self.assertEqual( fs.getValue( TextFieldType().getValue('2013-04-04 16:06:58.929515') ), datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) self.assertIsNone( fs.getValue( None ) )
def test_field_type_convert_to_date( self ): fs = DateFieldType() with self.assertRaises( FieldTypeError ): fs.getValue( BooleanFieldType().getValue( True ) ) with self.assertRaises( FieldTypeError ): fs.getValue( FloatFieldType().getValue( 4.32112 ) ) with self.assertRaises( FieldTypeError ): fs.getValue( IntegerFieldType().getValue( 5 ) ) with self.assertRaises( FieldTypeError ): fs.getValue( StringFieldType().getValue('test') ) with self.assertRaises( FieldTypeError ): fs.getValue( TextFieldType().getValue('test') ) self.assertEqual( fs.getValue( DateFieldType().getValue( datetime.date.today() ) ), datetime.date.today() ) self.assertEqual( fs.getValue( DateTimeFieldType().getValue( datetime.datetime.now() ) ), datetime.date.today() ) self.assertEqual( fs.getValue( StringFieldType().getValue('2013-02-03') ), datetime.date( 2013, 2, 3 ) ) self.assertEqual( fs.getValue( TextFieldType().getValue('2013-02-03') ), datetime.date( 2013, 2, 3 ) ) self.assertIsNone( fs.getValue( None ) )
def test_field_type_convert_to_text( self ): fs = TextFieldType() self.assertEqual( fs.getValue( BooleanFieldType().getValue( True ) ), 'True' ) self.assertEqual( fs.getValue( BooleanFieldType().getValue( False ) ), 'False' ) self.assertEqual( fs.getValue( DateFieldType().getValue( datetime.date( 2013, 2, 3 ) ) ), '2013-02-03' ) self.assertEqual( fs.getValue( DateTimeFieldType().getValue( datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) ), '2013-04-04 16:06:58.929515' ) self.assertEqual( fs.getValue( FloatFieldType().getValue( 4.232 ) ), '4.232' ) self.assertEqual( fs.getValue( IntegerFieldType().getValue( 5 ) ), '5' ) self.assertEqual( fs.getValue( StringFieldType().getValue('text') ), 'text' ) self.assertEqual( fs.getValue( TextFieldType().getValue('text') ), 'text' ) self.assertIsNone( fs.getValue( None ) )