コード例 #1
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_escape_keywords(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'add', '1.5853', '', '', 'Decimal'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers', sql.PL_SQL_DIALECT)
        sql_field_name = list(sql_factory.sql_fields())[0][0]
        self.assertEqual(sql_field_name, '"add"')

        sql_factory = sql.SqlFactory(cid, 'customers', sql.ANSI_SQL_DIALECT)
        sql_field_name = list(sql_factory.sql_fields())[0][0]
        self.assertEqual(sql_field_name, '"add"')

        sql_factory = sql.SqlFactory(cid, 'customers',
                                     sql.TRANSACT_SQL_DIALECT)
        sql_field_name = list(sql_factory.sql_fields())[0][0]
        self.assertEqual(sql_field_name, '"add"')

        sql_factory = sql.SqlFactory(cid, 'customers', sql.DB2_SQL_DIALECT)
        sql_field_name = list(sql_factory.sql_fields())[0][0]
        self.assertEqual(sql_field_name, '"add"')
コード例 #2
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_create_sql_create_statement(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'branch_id', '38123', '', '', 'RegEx'],
            ['F', 'customer_id', '12345', '', '', 'Integer', '0...99999'],
            ['F', 'first_name', 'John', 'X', '', 'Text'],
            ['F', 'surname', 'Doe', '', '1...60', 'Text'],
            ['F', 'gender', 'male', '', '', 'Choice', 'male, female, unknown'],
            [
                'F', 'date_of_birth', '03.11.1969', '', '', 'DateTime',
                'DD.MM.YYYY'
            ],
            ['F', 'latitude', '1.5853', '', '', 'Decimal'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')
        self.maxDiff = None
        self.assertEqual(
            sql_factory.create_table_statement(),
            "create table customers (\n    branch_id varchar not null,"
            "\n    customer_id int not null,\n    first_name varchar,"
            "\n    surname varchar(60) not null,\n    gender varchar not null,"
            "\n    date_of_birth date not null,"
            "\n    latitude decimal(31, 12) not null\n);")
コード例 #3
0
ファイル: test_sql.py プロジェクト: butterhirsch/cutplace
    def test_can_create_sql_create_statement_for_sqlite(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'branch_id', '38123', '', '', 'RegEx'],
            ['F', 'customer_id', '12345', '', '', 'Integer', '0...99999'],
            ['F', 'first_name', 'John', 'X', '', 'Text'],
            ['F', 'surname', 'Doe', '', '1...60', 'Text'],
            ['F', 'gender', 'male', '', '', 'Choice', 'male, female, unknown'],
            [
                'F', 'date_of_birth', '03.11.1969', '', '', 'DateTime',
                'DD.MM.YYYY'
            ],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')

        temp_database = None

        try:
            temp_database = sqlite3.connect(":memory:")
            cursor = temp_database.cursor()

            cursor.execute(sql_factory.create_table_statement())

        except sqlite3.Error as err:
            self.fail()
            return err
コード例 #4
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_create_decimal_field(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'latitude', '1.5853', '', '', 'Decimal'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')

        for _, field_type, _, _, is_not_null, _ in sql_factory.sql_fields():
            self.assertEqual(field_type, 'decimal')
            self.assertEqual(is_not_null, False)
コード例 #5
0
ファイル: test_sql.py プロジェクト: butterhirsch/cutplace
    def test_can_create_int_field(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'customer_id', '12345', '', '', 'Integer', '0...99999'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')

        for field in sql_factory.sql_fields():
            self.assertEqual(field[1], 'int')
            self.assertEqual(field[4], False)
コード例 #6
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_handle_oracle_sql_dialect(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'latitude', '1.5853', '', '', 'Decimal'],
            [
                'F', 'small', '1', '', '', 'Integer',
                '0...%s' % six.text_type(sql.MAX_SMALLINT)
            ],
            [
                'F', 'int', '1', '', '', 'Integer',
                '0...%s' % six.text_type(sql.MAX_SMALLINT + 1)
            ],
            [
                'F', 'big', '1', '', '', 'Integer',
                '0...%s' % six.text_type(sql.MAX_INTEGER + 1)
            ],
            [
                'F', 'decimal', '1', '', '', 'Integer',
                '0...%s' % six.text_type(sql.MAX_BIGINT + 1)
            ],
            ['F', 'surname', 'Doe', '', '1...60', 'Text'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers', sql.PL_SQL_DIALECT)

        sql_fields = list(sql_factory.sql_fields())
        self.assertEqual(sql_fields[0][1], 'number')
        self.assertEqual(sql_fields[0][4], False)
        self.assertEqual(sql_fields[1][1], 'int')
        self.assertEqual(sql_fields[1][4], False)
        self.assertEqual(sql_fields[2][1], 'int')
        self.assertEqual(sql_fields[2][4], False)
        self.assertEqual(sql_fields[3][1], 'number')
        self.assertEqual(sql_fields[3][4], False)
        self.assertEqual(sql_fields[4][1], 'number')
        self.assertEqual(sql_fields[4][4], False)
        self.assertEqual(sql_fields[5][1], 'varchar2')
コード例 #7
0
ファイル: test_sql.py プロジェクト: butterhirsch/cutplace
    def test_can_create_char_field(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'surname', 'Doe', 'x', '1...60', 'Text'],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')

        for field in sql_factory.sql_fields():
            self.assertEqual(field[1], 'varchar')
            self.assertEqual(field[2], 60)
            self.assertEqual(field[4], True)
コード例 #8
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_create_date_field(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            [
                'F', 'date_of_birth', '03.11.1969', '', '', 'DateTime',
                'DD.MM.YYYY'
            ],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')

        for _, field_type, _, _, is_not_null, _ in sql_factory.sql_fields():
            self.assertEqual(field_type, 'date')
            self.assertEqual(is_not_null, False)
コード例 #9
0
ファイル: test_sql.py プロジェクト: sushrutgirdhari/cutplace
    def test_can_create_sql_factory(self):
        cid = interface.Cid()
        cid.read('customers', [
            ['D', 'Format', 'delimited'],
            ['D', 'Line delimiter', 'any'],
            ['D', 'Item delimiter', ','],
            ['D', 'Quote character', '"'],
            ['D', 'Escape character', '\\'],
            ['D', 'Encoding', 'ISO-8859-1'],
            ['D', 'Allowed characters', '32:'],
            ['F', 'branch_id', '38123', '', '', 'RegEx'],
            ['F', 'customer_id', '12345', '', '', 'Integer', '0...99999'],
            ['F', 'first_name', 'John', 'X', '', 'Text'],
            ['F', 'surname', 'Doe', '', '1...60', 'Text'],
            ['F', 'gender', 'male', '', '', 'Choice', 'male, female, unknown'],
            [
                'F', 'date_of_birth', '03.11.1969', '', '', 'DateTime',
                'DD.MM.YYYY'
            ],
        ])

        sql_factory = sql.SqlFactory(cid, 'customers')
        self.assertEqual(cid.field_names, sql_factory.cid._field_names)