def setUp(self): self.fs = FieldSet([ Field('id', IntegerFieldType(), defaultValue=1, key=True), Field('name', StringFieldType(), defaultValue='John doe'), Field('email', StringFieldType(), key=True), Field('birth_date', DateFieldType(), field_final_type=StringFieldType()), Field('favourite_number', FloatFieldType()), Field('created', DateTimeFieldType(), defaultValue='2013-04-04 18:44:32'), Field('updated', DateTimeFieldType(), defaultValue='2013-04-04 18:44:32') ]) self.fm = FieldMap({ 'id': 0, 'name': 1, 'email': 2, 'birth_date': 3, 'favourite_number': 4, 'created': 5, 'updated': 6, 'not_existing_field_name': 6 })
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_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 ) )
def setUp(self): self.startType = DateTimeFieldType() self.endType = DateFieldType() self.defaultValue = datetime.datetime.now() - datetime.timedelta( days=5) self.transValue = self.defaultValue - datetime.timedelta(days=2) self.transforms = [SetTransform(value=self.transValue)] self.field = metl.field.Field('test_name', self.startType, key=True, field_final_type=self.endType, defaultValue=self.defaultValue)
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_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_datetime_field_type( self ): ft = DateTimeFieldType() current_timestamp = datetime.datetime.now() with self.assertRaises( FieldTypeError ): ft.getValue( 'invalid' ) with self.assertRaises( FieldTypeError ): ft.getValue( 321312312 ) with self.assertRaises( FieldTypeError ): ft.getValue( '2013-02-31 11:32:33' ) self.assertEqual( ft.getValue('2013-02-03 11:32:33'), datetime.datetime( 2013, 2, 3, 11, 32, 33 ) ) self.assertEqual( ft.getValue('2013.02.03 11:32:33'), datetime.datetime( 2013, 2, 3, 11, 32, 33 ) ) self.assertEqual( ft.getValue('2013/02/03 11:32:33'), datetime.datetime( 2013, 2, 3, 11, 32, 33 ) ) self.assertEqual( ft.getValue('02/03/2013 11:32:33'), datetime.datetime( 2013, 2, 3, 11, 32, 33 ) ) self.assertEqual( ft.getValue( current_timestamp ), current_timestamp ) self.assertEqual( ft.getValue('2013-04-04 16:06:58.929515'), datetime.datetime( 2013, 4, 4, 16, 06, 58, 929515 ) ) self.assertIsNone( ft.getValue( None ) )