Commit d0ce9351 by Solo Group

test_odeo

1 parent ebf37c00
...@@ -52,7 +52,7 @@ def build_request(typ, values): ...@@ -52,7 +52,7 @@ def build_request(typ, values):
.filter(PartnerProduk.partner_id == vendor_id, .filter(PartnerProduk.partner_id == vendor_id,
PartnerProduk.produk_id == produk_id).first() PartnerProduk.produk_id == produk_id).first()
if not vendor_product: if not vendor_product:
return dict(error='Data Tidak Ditemukan') return dict(data = dict(error='Data Tidak Ditemukan'))
row = None row = None
if "trx_id" in values and values['trx_id']: if "trx_id" in values and values['trx_id']:
...@@ -63,36 +63,48 @@ def build_request(typ, values): ...@@ -63,36 +63,48 @@ def build_request(typ, values):
cls_module = modules.Vendor(vendor_product, bill_no, customer_id, cls_module = modules.Vendor(vendor_product, bill_no, customer_id,
cust_trx_id, row) cust_trx_id, row)
if typ=='inquiry':
result = hasattr(cls_module, typ) and cls_module.inquiry() or None cls = hasattr(cls_module, typ) and getattr(cls_module, typ) or None
if result: if cls:
result["f_request"] = cls_module.request data = cls()
result["f_response"] = cls_module.response result = dict(data=data)
result["f_request"] = cls_module.request
return result result["f_response"] = cls_module.response
result["url"] = cls_module.url
elif typ=='payment':
result = cls_module.payment()
if result:
result["f_request"] = cls_module.request
result["f_response"] = cls_module.response
return result
elif typ == 'advice':
result = hasattr(cls_module, typ) and cls_module.advice() or None
if result :
result["f_request"] = cls_module.request
result["f_response"] = cls_module.response
return result
elif typ == 'info':
result = hasattr(cls_module, typ) and cls_module.info() or None
if result:
result["f_request"] = cls_module.request
result["f_response"] = cls_module.reesponse
return result
else: else:
return dict(error='Function %s tidak ditemukan' % typ) result = dict(data=dict(error='Fungsi %s tidak ada' % typ,
code=9999))
return result
# if typ=='inquiry':
# data = cls_module.inquiry()
# result = dict(data=data)
# result["f_request"] = cls_module.request
# result["f_response"] = cls_module.response
# return result
#
# elif typ=='payment':
# data = cls_module.payment()
# result = dict(data=data)
# result["f_request"] = cls_module.request
# result["f_response"] = cls_module.response
# return result
#
# elif typ == 'advice':
# data = hasattr(cls_module, typ) and cls_module.advice() or None
# result = dict(data=data)
# result["f_request"] = cls_module.request
# result["f_response"] = cls_module.response
# return result
#
# elif typ == 'info':
# data = hasattr(cls_module, typ) and cls_module.info() or None
# result = dict(data=data)
# result["f_request"] = cls_module.request
# result["f_response"] = cls_module.reesponse
# return result
# else:
# return dict(error='Function %s tidak ditemukan' % typ)
@colander.deferred @colander.deferred
...@@ -284,7 +296,9 @@ class ViewHome(BaseView): ...@@ -284,7 +296,9 @@ class ViewHome(BaseView):
values = dict(c.items()) values = dict(c.items())
# if 'trx_id' not in values or not values['trx_id']: # if 'trx_id' not in values or not values['trx_id']:
# values['trx_id'] = get_random_number(10) # values['trx_id'] = get_random_number(10)
result = [] # result = build_request('inquiry', values)
#
result = None
if 'inquiry' in request.POST: if 'inquiry' in request.POST:
result = build_request('inquiry', values) result = build_request('inquiry', values)
elif 'payment' in request.POST: elif 'payment' in request.POST:
...@@ -296,16 +310,23 @@ class ViewHome(BaseView): ...@@ -296,16 +310,23 @@ class ViewHome(BaseView):
elif 'info' in request.POST: elif 'info' in request.POST:
result = build_request('info', values) result = build_request('info', values)
if not result: # if not result:
session.flash('Data Tidak Ditemukan', 'error') # session.flash('Data Tidak Ditemukan', 'error')
if result and 'error' in result: if result and 'data' in result:
session.flash(result['error'], 'error') data = result['data']
values['f_request'] = 'f_request' in result \
and json.dumps(result['f_request'], indent=4) or ''
values['f_response'] = 'f_response' in result \
and json.dumps(result['f_response'], indent=4) or ''
else: values['f_result'] = 'data' in result \
values['result'] = json.dumps(result, indent=4) and json.dumps(result['data'], indent=4) or ''
values['ref_no'] = 'ref_no' in result and result["ref_no"] or None values['ref_no'] = 'ref_no' in data and data["ref_no"] or ""
values['trx_id'] = 'trx_id' in result and result['trx_id'] or None values['trx_id'] = 'trx_id' in data and data['trx_id'] or ""
values['vend_trx'] = 'vend_trx' in data and data['vend_trx'] or ""
if 'error' in data and data['error']:
session.flash(data['error'], 'error')
form.render(values) form.render(values)
return dict(form=form, params=form_params_view) return dict(form=form, params=form_params_view)
...@@ -314,7 +335,7 @@ class ViewHome(BaseView): ...@@ -314,7 +335,7 @@ class ViewHome(BaseView):
class VendorClass(object): class VendorClass(object):
def __init__(self, vendor_produk, bill_no, customer_id=None, def __init__(self, vendor_produk, bill_no, customer_id=None,
cust_trx_id=None, row=None): cust_trx=None, row=None):
""" """
:param cid: :param cid:
merupakan customer id seperti MSN dan atu id pelanggaan merupakan customer id seperti MSN dan atu id pelanggaan
...@@ -325,11 +346,12 @@ class VendorClass(object): ...@@ -325,11 +346,12 @@ class VendorClass(object):
self.produk_id = vendor_produk.produk_id self.produk_id = vendor_produk.produk_id
self.bill_no = bill_no self.bill_no = bill_no
self.customer_id = customer_id self.customer_id = customer_id
self.cust_trx_id = cust_trx_id self.cust_trx = cust_trx
self.vend_trx = None
self.response = None self.response = None
self.request = None self.request = None
self.partner_log = row self.partner_log = row
self.partner_log_id = None self.partner_log_id = row and row.id or None
self.v_produk_kd = vendor_produk.kode self.v_produk_kd = vendor_produk.kode
self.kategori = vendor_produk.produk.kategori.nama self.kategori = vendor_produk.produk.kategori.nama
...@@ -340,7 +362,8 @@ class VendorClass(object): ...@@ -340,7 +362,8 @@ class VendorClass(object):
row.produk_id = self.produk_id row.produk_id = self.produk_id
row.bill_no = self.bill_no row.bill_no = self.bill_no
row.customer_id = self.customer_id row.customer_id = self.customer_id
row.cust_trx_id = self.cust_trx_id row.cust_trx = self.cust_trx
row.vend_trx = self.vend_trx
if typ == 'inquiry': if typ == 'inquiry':
row.inquiry = dict(request=self.request, row.inquiry = dict(request=self.request,
response=self.response) response=self.response)
......
import unittest
import transaction
from agratek.api.merchant.views.vendor import build_request
from opensipkd.base.models import Partner
from opensipkd.pasar.models import PartnerProduk, Produk
from pyramid.paster import get_appsettings
from pyramid_rpc.jsonrpc import JsonRpcError
from pyramid import testing
class TestOdeo(unittest.TestCase):
def setUp(self):
settings = get_appsettings('test.ini', name='main')
self.config = testing.setUp(settings=settings)
# self.config.include('..models')
# self.config.include('..routes')
#session_factory = self.config.registry['dbsession_factory']
#self.session = get_tm_session(session_factory, transaction.manager)
#
# self.config = testing.setUp()
# from pyramid.paster import get_appsettings
from opensipkd.base import main
app = main({}, **settings)
def test_vendor(self):
"""
Test that it can sum a list of integers
"""
produk_kd = 'TS-5'
bill_no = '081311045668'
partner_kd = 'ODEO'
vendor = Partner.query_kode(partner_kd).first()
produk = Produk.query_kode(produk_kd).first()
if not vendor or not produk:
raise JsonRpcError(message="Vendor Not Found")
values = dict(vendor_id = vendor.id,
produk_id = produk.id,
destination=bill_no)
result = build_request('payment', values)
for r in result:
print(r,":", result[r])
if __name__ == '__main__':
unittest.main()
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!