Skip to content

Commit

Permalink
tests added
Browse files Browse the repository at this point in the history
  • Loading branch information
susu105 committed Sep 16, 2020
1 parent 69b27fe commit 17426cf
Showing 1 changed file with 181 additions and 2 deletions.
183 changes: 181 additions & 2 deletions som_generationkwh/tests/investment_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ def setUp(self):
self.PaymentLine = self.openerp.pool.get('payment.line')
self.PaymentOrder = self.openerp.pool.get('payment.order')
self.Soci = self.openerp.pool.get('somenergia.soci')
self.SignatureProcess = self.openerp.pool.get('giscedata.signatura.process')
self.SignatureDocs = self.openerp.pool.get('giscedata.signatura.documents')
self.maxDiff = None

def tearDown(self):
Expand Down Expand Up @@ -2503,6 +2505,10 @@ def test__generationwkwh_investment_sign__ok(self, mocked_sign):
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})

self.Investment.investment_sign_request(cursor, uid, investment_id)
mocked_sign.assert_called_with(cursor, uid, mock.ANY, context={})
Expand All @@ -2522,25 +2528,50 @@ def test__generationwkwh_investment_sign__withoutMail(self):

with self.assertRaises(except_osv) as ctx:
self.Investment.investment_sign_request(cursor, uid, investment_id)
self.assertEqual(ctx.exception.message, u"""warning -- Error!\n\nEs necessita una adreça de correu electrònic per enviar el document a signar.""")

def test__generationwkwh_investment_sign__withoutInvoice(self):
def test__generationwkwh_investment_sign__withoutLang(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0001'
)[1]
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]

self.Partner.write(cursor, uid, [partner_id], {'lang': False})
with self.assertRaises(except_osv) as ctx:
self.Investment.investment_sign_request(cursor, uid, investment_id)

self.assertEqual(ctx.exception.message, u'warning -- Error!\n\nEl soci no té cap idioma assignat.')

def test__generationwkwh_investment_sign__withoutInvoice(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0001'
)[1]
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})
with self.assertRaises(except_osv) as ctx:
self.Investment.investment_sign_request(cursor, uid, investment_id)
self.assertEqual(ctx.exception.message, u'warning -- Error!\n\nNo hi ha cap factura per a aquest préstec de generation!')

def test__generationwkwh_investment_sign_callback__ok(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})
self.Investment.write(cursor, uid, investment_id, {'signed_date': False})
self.Investment.investment_sign_request(cursor, uid, investment_id)
context = {
Expand All @@ -2553,5 +2584,153 @@ def test__generationwkwh_investment_sign_callback__ok(self):
signed_date = self.Investment.read(cursor, uid, investment_id, ['signed_date'])['signed_date']
self.assertTrue(signed_date)

@mock.patch("som_generationkwh.investment_sign.GenerationkwhInvestmentSign.investment_sign_request")
def test__generationwkwh_invoice_sign_request__allowed(self, mocked_sign):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
invoice_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'invoice_GKWH00002'
)[1]
origin = self.Invoice.read(cursor, uid, invoice_id, ['origin'])['origin']

signatura_procs, errors = self.Investment.invoice_sign_request(cursor, uid, [], invoice_id)
mocked_sign.assert_called_with(cursor, uid, investment_id)

self.assertFalse(errors)
self.assertEqual(signatura_procs, [origin])

def test__generationwkwh_invoice_sign_request_already_signed__notAllowed(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
invoice_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'invoice_GKWH00002'
)[1]

origin = self.Invoice.read(cursor, uid, invoice_id, ['origin'])['origin']

proc_vals = {
'status': 'completed',
'lang': 'en_US',
'subject': origin,
}
process_id = self.SignatureProcess.create(cursor, uid, proc_vals)
doc_vals = {
'model': 'account.invoice,{}'.format(invoice_id),
'process_id': process_id,
}
doc_id = self.SignatureDocs.create(cursor, uid, doc_vals)

signatura_procs, errors = self.Investment.invoice_sign_request(cursor, uid, [], invoice_id)

self.assertEqual(len(self.SignatureProcess.search(cursor, uid, [('subject', 'ilike', origin)])), 1)
self.assertEqual([u'La inversió GKWH00002 té un procés de signatura actiu o finalitzat'], errors)
self.assertFalse(signatura_procs)

@mock.patch("som_generationkwh.investment_sign.GenerationkwhInvestmentSign.investment_sign_request")
def test__generationwkwh_invoice_sign_request_expired__allowed(self, mocked_sign):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
invoice_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'invoice_GKWH00002'
)[1]

origin = self.Invoice.read(cursor, uid, invoice_id, ['origin'])['origin']

proc_vals = {
'status': 'expired',
'lang': 'en_US',
'subject': origin,
}
process_id = self.SignatureProcess.create(cursor, uid, proc_vals)
doc_vals = {
'model': 'account.invoice,{}'.format(invoice_id),
'process_id': process_id,
}
doc_id = self.SignatureDocs.create(cursor, uid, doc_vals)

signatura_procs, errors = self.Investment.invoice_sign_request(cursor, uid, [], invoice_id)
mocked_sign.assert_called_with(cursor, uid, investment_id)
self.assertEqual([origin], signatura_procs)
self.assertFalse(errors)

def test__generationwkwh_invoice_sign_request_two_processes__not_allowed(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
partner_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh' ,'res_partner_inversor1'
)[1]
self.Partner.write(cursor, uid, [partner_id], {'lang': 'en_US'})
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
invoice_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'invoice_GKWH00002'
)[1]

origin = self.Invoice.read(cursor, uid, invoice_id, ['origin'])['origin']

proc_vals = {
'status': 'expired',
'lang': 'en_US',
'subject': origin,
}
process_id = self.SignatureProcess.create(cursor, uid, proc_vals)
doc_vals = {
'model': 'account.invoice,{}'.format(invoice_id),
'process_id': process_id,
}
doc_1_id = self.SignatureDocs.create(cursor, uid, doc_vals)

proc_vals['status'] = 'completed'

process_2_id = self.SignatureProcess.create(cursor, uid, proc_vals)
doc_vals = {
'model': 'account.invoice,{}'.format(invoice_id),
'process_id': process_2_id,
}
doc_2_id = self.SignatureDocs.create(cursor, uid, doc_vals)

signatura_procs, errors = self.Investment.invoice_sign_request(cursor, uid, [], invoice_id)
self.assertEqual(len(self.SignatureProcess.search(cursor, uid, [('subject', 'ilike', origin)])), 2)
self.assertEqual([u'La inversió GKWH00002 té un procés de signatura actiu o finalitzat'], errors)
self.assertFalse(signatura_procs)

def test__generationwkwh_invoice_sign_request_notAnInvestment__notAllowed(self):
with Transaction().start(self.database) as txn:
cursor = txn.cursor
uid = txn.user
investment_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'genkwh_0002'
)[1]
invoice_id = self.IrModelData.get_object_reference(
cursor, uid, 'som_generationkwh', 'invoice_GKWH00002'
)[1]
self.Invoice.write(cursor, uid, invoice_id, {'origin':'NO'})

signatura_procs, errors = self.Investment.invoice_sign_request(cursor, uid, [], invoice_id)

self.assertFalse(signatura_procs)
self.assertEqual(errors, ['La inversió NO ha generat un error en iniciar la signatura, error: list index out of range'])

# vim: et ts=4 sw=4

0 comments on commit 17426cf

Please sign in to comment.