コード例 #1
0
    def test_insert_builder(self):
        table_descriptor = TableDescriptor('table_name', 'field1', 'field2',
                                           'field3')
        builder = InsertBuilder(table_descriptor)
        sql = builder.build()

        self.assertEqual(
            'insert into table_name (field1, field2, field3) values (?, ?, ?);',
            sql)
コード例 #2
0
    def test_get_fields_tuple(self):
        table_descriptor = TableDescriptor('table_name', 'field1', 'field2',
                                           'field3')

        entity = SimpleNamespace(field1='field 1 value',
                                 field2='value of field 2',
                                 field3='field 3')

        builder = AbstractDao(object, table_descriptor)

        field1, field2, field3 = builder._get_field_values(entity)

        self.assertEqual('field 1 value', field1)
        self.assertEqual('value of field 2', field2)
        self.assertEqual('field 3', field3)
コード例 #3
0
from commons.abstract_dao import AbstractDao
from commons.sqlbuilder import TableDescriptor

fornecedor_table_descriptor = TableDescriptor('fornecedor', 'rowid', 'nome')


class Fornecedor(object):
    def __init__(self):
        fornecedor_table_descriptor.create_field_attributes(self)


class FornecedorDao(AbstractDao):
    def __init__(self):
        super().__init__(Fornecedor, fornecedor_table_descriptor)

    @staticmethod
    def injectable_resource():
        return 'fornecedor dao'

    def by_name(self, fornecedor_name):
        return self.get_single('nome=?', fornecedor_name)
コード例 #4
0
from commons.abstract_dao import AbstractDao
from commons.rowwrapper import RowWrapper
from commons.sqlbuilder import TableDescriptor
from converters import date

lancamento_table_descriptor = TableDescriptor('lancamento', 'rowid', 'data',
                                              'origem', 'destino', 'valor',
                                              'observacao', 'produto',
                                              'quantidade', 'fornecedor')


class Lancamento(object):
    def __init__(self):
        lancamento_table_descriptor.create_field_attributes(self)


class Conta(RowWrapper):
    pass


Conta.create_field('nome')
Conta.create_field('propriedades')


class LancamentoWithContas(RowWrapper):
    pass


LancamentoWithContas.create_field('data',
                                  lambda row, offset: date.parse(row[offset]),
                                  1)
コード例 #5
0
from commons.abstract_dao import AbstractDao
from commons.sqlbuilder import TableDescriptor

produto_table_descriptor = TableDescriptor('produto', 'rowid', 'nome', 'medida', 'unidade')


class Produto(object):

    def __init__(self):
        produto_table_descriptor.create_field_attributes(self)


class ProdutoDao(AbstractDao):

    def __init__(self):
        super().__init__(Produto, produto_table_descriptor)

    @staticmethod
    def injectable_resource():
        return 'produto dao'

    def by_name(self, produto_name):
        names = produto_name.split(' ')

        if len(names) >= 3:
            nome = ' '.join(names[0:-2])
            medida = names[-2]
            unidade = names[-1]

            return self.exists('nome=? or (nome=? and medida=? and unidade=?)', produto_name, nome, medida, unidade)
        else:
コード例 #6
0
from commons.abstract_dao import AbstractDao
from commons.sqlbuilder import TableDescriptor

conta_table_descriptor = TableDescriptor('conta', 'rowid', 'nome', 'descricao',
                                         'data_aquisicao', 'propriedades',
                                         'observacao')


class Conta(object):
    def __init__(self):
        conta_table_descriptor.create_field_attributes(self,
                                                       nome="",
                                                       propriedades="")


class ContaDao(AbstractDao):
    def __init__(self):
        super().__init__(Conta, conta_table_descriptor)

    @staticmethod
    def injectable_resource():
        return 'conta dao'

    def by_name(self, conta_name):
        return self.get_single('nome=?', conta_name)