def do_business(self): super(ProcessExternalPaymentCmd, self).do_business() dct = self.__transaction_dct if self.result: self.result.status = XML_STATUS_TO_MODEL_STATUS.get(dct['transaction']['status']) cmd = UpdatePaymentAndSaveLog(self.result) cmd.execute() else: self.result = PagSegPayment(code=dct['transaction']['code'], status=XML_STATUS_TO_MODEL_STATUS.get(dct['transaction']['status']), total=dct['transaction']['grossAmount'], net_amount=dct['transaction']['netAmount']) payment_key = self.result.put() def create_item_cmd(item): return _SimpleSave(PagSegItem(description=item['description'], price=Decimal(item['amount']), quantity=int(item['quantity']))) items = dct['transaction']['items']['item'] if isinstance(items, dict): items = [items] items_cmd = [CreatePaymentToItem(payment_key, create_item_cmd(item)) for item in items] cmd = CommandParallel( CreatePagSegPaymentToLog(payment_key, _SimpleSave(PagSegLog(status=self.result.status))), *items_cmd) sender = dct['transaction'].get('sender') if sender: user = facade.get_user_by_email(sender['email'])() if user is None: user = facade.save_user_cmd(sender['email'], sender['name'])() cmd.append(SaveToPayment(user,payment_key)) cmd.execute()
def test_save(self): facade.save_user_cmd('*****@*****.**', 'Renzo Nuccitelli', locale='pt_BR', timezone='America/Sao_Paulo')() user = facade.get_user_by_email('*****@*****.**')() self.assertEqual('*****@*****.**', user.email) self.assertEqual('Renzo Nuccitelli', user.name) self.assertEqual('pt_BR', user.locale) self.assertEqual('America/Sao_Paulo', user.timezone) self.assertListEqual([''], user.groups)
def salvar(email_dono, **kwargs): cmd = facade.get_user_by_email(email_dono) salvar_dono_de_escravo = escravo_facade.salvar_escravo(cmd,**kwargs) try: salvar_dono_de_escravo.execute() return RedirectResponse(router.to_path(index)) except CommandExecutionException: contexto = {'salvar_path': router.to_path(salvar), 'escravo': kwargs, 'erros': salvar_dono_de_escravo.errors} return TemplateResponse(contexto, 'escravos/form.html')
def salvar(email, **propriedades): get_user_by_email_cmd = facade.get_user_by_email(email) salvar_livro_com_autor_cmd = fachada.salvar_livro(get_user_by_email_cmd, **propriedades) try: salvar_livro_com_autor_cmd() return RedirectResponse(router.to_path(index)) except CommandExecutionException: contexto = {'salvar_path': router.to_path(salvar), 'erros': salvar_livro_com_autor_cmd.errors, 'email': email, 'book': propriedades} return TemplateResponse(contexto, 'books/form_novo.html')
def salvar(email, **propriedades): get_user_by_email_cmd = facade.get_user_by_email(email) salvar_livro_com_autor_cmd = fachada.salvar_livro(get_user_by_email_cmd, **propriedades) try: salvar_livro_com_autor_cmd() return RedirectResponse(router.to_path(index)) except CommandExecutionException: contexto = { 'salvar_path': router.to_path(salvar), 'erros': salvar_livro_com_autor_cmd.errors, 'email': email, 'book': propriedades } return TemplateResponse(contexto, 'books/form_novo.html')
def test_update_user(self): email = '*****@*****.**' facade.save_user_cmd(email).execute() user = facade.get_user_by_email(email)() self.assertListEqual([''], user.groups) ADMIN = 'ADMIN' admin.update(str(user.key.id()), [ADMIN]) user = user.key.get() self.assertListEqual([ADMIN], user.groups) MANAGER = 'MANAGER' admin.update(str(user.key.id()), [ADMIN, MANAGER]) user = user.key.get() self.assertListEqual([ADMIN, MANAGER], user.groups)
def do_business(self): super(ProcessExternalPaymentCmd, self).do_business() dct = self.__transaction_dct if self.result: self.result.status = XML_STATUS_TO_MODEL_STATUS.get( dct['transaction']['status']) cmd = UpdatePaymentAndSaveLog(self.result) cmd.execute() else: self.result = PagSegPayment( code=dct['transaction']['code'], status=XML_STATUS_TO_MODEL_STATUS.get( dct['transaction']['status']), total=dct['transaction']['grossAmount'], net_amount=dct['transaction']['netAmount']) payment_key = self.result.put() def create_item_cmd(item): return _SimpleSave( PagSegItem(description=item['description'], price=Decimal(item['amount']), quantity=int(item['quantity']))) items = dct['transaction']['items']['item'] if isinstance(items, dict): items = [items] items_cmd = [ CreatePaymentToItem(payment_key, create_item_cmd(item)) for item in items ] cmd = CommandParallel( CreatePagSegPaymentToLog( payment_key, _SimpleSave(PagSegLog(status=self.result.status))), *items_cmd) sender = dct['transaction'].get('sender') if sender: user = facade.get_user_by_email(sender['email'])() if user is None: user = facade.save_user_cmd(sender['email'], sender['name'])() cmd.append(SaveToPayment(user, payment_key)) cmd.execute()
def test_get_user(self): user = mommy.save_one(MainUser, email='*****@*****.**') cmd = facade.get_user_by_email('*****@*****.**') self.assertEqual(user, cmd())
def test_not_get_user(self): cmd = facade.get_user_by_email('*****@*****.**') self.assertIsNone(cmd())
def __init__(self, email): self.email = email super(FindOrCreateUser, self).__init__(facade.get_user_by_email(self.email))
def test_save_when_previous_command_does_not_find_user(self): cmd = CommandSequential(facade.get_user_by_email('*****@*****.**'), facade.save_user_cmd('*****@*****.**')) user = cmd() self.assertIsNotNone(user) self.assertEqual(user, MainUser.query_email('*****@*****.**').get()) self.assertEqual(1, len(MainUser.query().fetch()))