Beispiel #1
0
    def test_select_builder_should_generate_single_table_select(self):
        builder = SelectBuilder(self.Table)
        sql = builder.build()

        self.assertEqual(
            'select table.rowid, table.field1, table.field2, table.field3 from table;',
            sql)
Beispiel #2
0
    def test_select_builder_with_where(self):
        builder = SelectBuilder(self.Table)

        sql = builder.build(where='field1 = ?')

        self.assertEqual(
            'select table.rowid, table.field1, table.field2, table.field3 from table where field1 = ?;',
            sql)
Beispiel #3
0
    def test_select_builder_with_fields(self):
        class TableName(RowWrapper):
            pass

        TableName.create_field('field1')
        TableName.create_field('field2')
        TableName.create_field('field3')

        builder = SelectBuilder(TableName)

        sql = builder.build(fields=['field1', 'field2'])

        self.assertEqual('select field1, field2 from tablename;', sql)
Beispiel #4
0
    def test_select_builder_make_selects_with_alias(self):
        class Entity(RowWrapper):
            pass

        Entity.alias = 'entity_name'
        Entity.create_field('nome')

        builder = SelectBuilder(Entity)
        sql = builder.build()

        self.assertEqual(
            'select entity_name.rowid, entity_name.nome from entity_name;',
            sql)
Beispiel #5
0
    def test_select_builder_should_generate_single_table_select(self):
        class TableName(RowWrapper):
            pass

        TableName.create_field('field1')
        TableName.create_field('field2')
        TableName.create_field('field3')

        builder = SelectBuilder(TableName)
        sql = builder.build()

        self.assertEqual(
            'select tablename.rowid, tablename.field1, tablename.field2, tablename.field3 from tablename;',
            sql)
Beispiel #6
0
    def test_select_builder_should_generate_multiple_table_select(self):
        builder = SelectBuilder(self.MasterEntity)
        # import ipdb; ipdb.set_trace()
        sql = builder.build()

        fields = sql[:sql.index(' from')]
        from_clause = sql[sql.index('from '):]

        self.assertEqual(
            'select masterentity.rowid, masterentity.mastername, entity.rowid, entity.name, table.rowid, table.field1, table.field2, table.field3',
            fields)
        self.assertEqual(
            'from masterentity left join entity on (masterentity.entityid = entity.rowid) left join table on (entity.tableid = table.rowid);',
            from_clause)
Beispiel #7
0
    def test_select_builder_with_where(self):
        class TableName(RowWrapper):
            pass

        TableName.create_field('field1')
        TableName.create_field('field2')
        TableName.create_field('field3')

        builder = SelectBuilder(TableName)

        sql = builder.build(where='field1 = ?')

        self.assertEqual(
            'select tablename.rowid, tablename.field1, tablename.field2, tablename.field3 from tablename where field1 = ?;',
            sql)
Beispiel #8
0
    def test_select_builder_should_generate_multiple_table_select(self):
        class Referred(RowWrapper):
            pass

        Referred.create_field('value')

        class Entity(RowWrapper):
            pass

        Entity.create_field('nome')
        Entity.create_field('referred', Referred)

        builder = SelectBuilder(Entity)
        sql = builder.build()

        self.assertEqual(
            'select entity.rowid, entity.nome, referred.rowid, referred.value from entity left join referred on (entity.referredid = referred.rowid);',
            sql)
Beispiel #9
0
    def test_select_builder_with_fields(self):
        builder = SelectBuilder(self.Table)

        sql = builder.build(fields=['field1', 'field2'])

        self.assertEqual('select field1, field2 from table;', sql)
Beispiel #10
0
 def new_builder(self, kind):
     if kind == 'SELECT':
         return SelectBuilder(self._metadata)
     else:
         return None