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)
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)
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)
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)
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:
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)