[MERGE]:testing of attachment in edi

bzr revid: han@tinyerp.com-20110630133333-wt7pwnzc30h89n0w
This commit is contained in:
Hardik Ansodariy (OpenERP)
2011-06-30 19:03:33 +05:30
5 changed files with 49 additions and 19 deletions
@@ -23,7 +23,7 @@ from base.ir import ir_edi
class res_partner(osv.osv, ir_edi.edi):
_inherit = "res.partner"
res_partner()
class res_partner_address(osv.osv, ir_edi.edi):
@@ -111,6 +111,7 @@ class res_partner(osv.osv):
_order = "name"
_columns = {
'name': fields.char('Name', size=128, required=True, select=True),
'opt_out':fields.boolean('Opt-out'),
'date': fields.date('Date', select=1),
'title': fields.many2one('res.partner.title','Partner Firm'),
'parent_id': fields.many2one('res.partner','Parent Partner'),
@@ -149,6 +150,7 @@ class res_partner(osv.osv):
'customer': lambda *a: 1,
'category_id': _default_category,
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner', context=c),
'opt_out' : False
}
def copy(self, cr, uid, id, default={}, context={}):
name = self.read(cr, uid, [id], ['name'])[0]['name']
@@ -261,6 +261,7 @@
<group colspan="1" col="2">
<field name="customer" select="1"/>
<field name="supplier"/>
<field name="opt_out"/>
<!-- <field name="employee"/>-->
</group>
</group>
+22 -11
View File
@@ -3,7 +3,7 @@
-
!record {model: res.partner, id: res_partner_test33}:
name: Ivan
title: 5
title: base.res_partner_title_sir
website: www.openerp.com
address:
- type: default
@@ -15,23 +15,34 @@
supplier: False
customer: True
company_id: base.main_company
-
Tesing of EDI functionality
I am creating one Document to be stored in ".
-
!record {model: 'ir.attachment', id: document_4}:
name : "My partner document"
res_model : res.partner
type : binary
-
Attach a pdf file in "My partner document"
-
!python {model: 'ir.attachment'}: |
import addons
import base64
pdf_file = open(addons.get_module_resource('base','test', 'partner.pdf'))
self.write(cr, uid, [ref("document_4")], {'res_id':ref("res_partner_test33"), 'datas_fname': 'partner.pdf', 'datas' : base64.encodestring(pdf_file.read())}, context)
-
Testing import and export
-
!python {model: ir.edi.document}: |
partner_obj = self.pool.get('res.partner')
partners = [partner_obj.browse(cr, uid, ref("res_partner_test33"))]
tokens = self.export_edi(cr, uid, partners)
for token in tokens:
document = self.get_document(cr, uid, token, context=context)
print document
a = self.import_edi(cr, uid, edi_document = document)
-
Check the exported out_invoice become in_invoice or not
-
!python {model: res.partner}: |
old_ids = self.search(cr,uid,[('id','=',ref('res_partner_test33')),('customer','=',True)])
partner_old = self.browse(cr ,uid, old_ids[0])
assert partner_old.name == 'Ivan', "partner is not created"
assert partner_old.website == 'www.openerp.com', "website is inserted"
+23 -7
View File
@@ -40,27 +40,43 @@ from cStringIO import StringIO
import threading
class edi(netsvc.ExportService):
def exp_get_edi_document(self, edi_token):
db_name = getattr(threading.currentThread(), 'dbname', None)
def exp_get_edi_document(self, edi_token, db_name=None):
res = None
if not db_name:
db_name = getattr(threading.currentThread(), 'dbname', None)
if db_name:
cr = pooler.get_db_only(db_name).cursor()
cr = pooler.get_db(db_name).cursor()
else:
raise Exception("No database cursor found!")
pool = pooler.get_pool(db_name)
edi_pool = pool.get('ir.edi.document')
return edi_pool.get_document(cr, 1, edi_token)
try:
res = edi_pool.get_document(cr, 1, edi_token)
finally:
cr.close()
return res
def exp_import_edi_document(self, db, uid, passwd, edi_document, context=None):
cr = pooler.get_db_only(db).cursor()
res = None
cr = pooler.get_db(db).cursor()
pool = pooler.get_pool(db)
edi_pool = pool.get('ir.edi.document')
return edi_pool.import_edi(cr, uid, edi_document=edi_document, context=context)
try:
res = edi_pool.import_edi(cr, uid, edi_document=edi_document, context=context)
finally:
cr.close()
return res
def exp_import_edi_url(self, db, uid, passwd, edi_url, context=None):
res = None
cr = pooler.get_db_only(db).cursor()
pool = pooler.get_pool(db)
edi_pool = pool.get('ir.edi.document')
return edi_pool.import_edi(cr, uid, edi_url=edi_url, context=context)
try:
res = edi_pool.import_edi(cr, uid, edi_url=edi_url, context=context)
finally:
cr.close()
return res
def __init__(self, name="edi"):
netsvc.ExportService.__init__(self, name)