コード例 #1
0
    def test_date(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')

        mock_field.field_type = 'date'

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        self.assertEqual(type(out), sqlalchemy.sql.sqltypes.DATE)
コード例 #2
0
    def test_boolean(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')

        mock_field.field_type = 'boolean'

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        self.assertEqual(type(out), sqlalchemy.sql.sqltypes.BOOLEAN)
コード例 #3
0
    def test_time_no_time_type(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')
        mock_driver.supports_time_type.return_value = False

        mock_field.field_type = 'time'

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        self.assertEqual(type(out), sqlalchemy.sql.sqltypes.VARCHAR)
コード例 #4
0
    def test_timetz(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')
        mock_driver.supports_time_type.return_value = True

        mock_field.field_type = 'timetz'

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        self.assertEqual(type(out), sqlalchemy.sql.sqltypes.TIME)
        self.assertTrue(out.timezone)
コード例 #5
0
    def test_datetimetz(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')

        mock_field.field_type = 'datetimetz'

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        mock_driver.type_for_date_plus_time.assert_called_with(has_tz=True)
        self.assertEqual(out, mock_driver.type_for_date_plus_time.return_value)
        self.assertTrue(out.timezone)
コード例 #6
0
    def test_decimal_default_float(self):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')

        mock_field.field_type = 'decimal'
        mock_decimal_constraints = mock_field.constraints
        mock_decimal_constraints.fixed_precision = None
        mock_decimal_constraints.fixed_scale = None
        mock_decimal_constraints.fp_total_bits = None
        mock_decimal_constraints.fp_significand_bits = None

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        mock_driver.type_for_floating_point.\
            assert_called_with(fp_total_bits=64,
                               fp_significand_bits=53)
        self.assertEqual(out, mock_driver.type_for_floating_point.return_value)
コード例 #7
0
    def test_string(self, mock_generate_string_length):
        mock_field = Mock(name='field')
        mock_driver = Mock(name='driver')

        mock_field.field_type = 'string'
        mock_field.constraints = Mock(name='constraints',
                                      spec=RecordsSchemaFieldStringConstraints)
        mock_field.statistics = Mock(name='statistics',
                                     spec=RecordsSchemaFieldStringStatistics)
        mock_string_constraints = mock_field.constraints
        mock_string_statistics = mock_field.statistics
        mock_n = mock_generate_string_length.return_value

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        mock_generate_string_length.assert_called_with(mock_string_constraints,
                                                       mock_string_statistics,
                                                       mock_driver)
        self.assertEqual(type(out), sqlalchemy.sql.sqltypes.String)
        self.assertEqual(out.length, mock_n)
コード例 #8
0
    def test_integer(self):
        mock_field = Mock(name='field')

        mock_driver = Mock(name='driver')

        mock_field.field_type = 'integer'
        mock_int_constraints = Mock(name='int_constraints',
                                    spec=RecordsSchemaFieldIntegerConstraints)

        mock_field.constraints = mock_int_constraints
        mock_min_ = Mock(name='min_')
        mock_int_constraints.min_ = mock_min_
        mock_max_ = Mock(name='max_')
        mock_int_constraints.max_ = mock_max_

        out = field_to_sqlalchemy_type(field=mock_field, driver=mock_driver)
        mock_driver.type_for_integer.assert_called_with(min_value=mock_min_,
                                                        max_value=mock_max_)
        self.assertEqual(out, mock_driver.type_for_integer.return_value)