Beispiel #1
0
    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
        })
Beispiel #2
0
    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'')
Beispiel #3
0
    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 ) )
Beispiel #4
0
    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 ) )
Beispiel #5
0
    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)
Beispiel #6
0
    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 ) )
Beispiel #7
0
    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 ) )
Beispiel #8
0
    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 ) )