new tests for operations

This commit is contained in:
Pierre Brunet 2016-12-24 16:15:22 +01:00
parent f7b4258f20
commit 493148f761

View File

@ -6,7 +6,7 @@ from django.conf import settings
from core.models import User from core.models import User
from counter.models import Counter from counter.models import Counter
from accounting.models import GeneralJournal, Operation, AccountingType from accounting.models import GeneralJournal, Operation, AccountingType, SimplifiedAccountingType
class RefoundAccountTest(TestCase): class RefoundAccountTest(TestCase):
@ -75,7 +75,6 @@ class OperationTest(TestCase):
def test_new_operation(self): def test_new_operation(self):
self.client.login(username='comptable', password='plop') self.client.login(username='comptable', password='plop')
at = AccountingType.objects.filter(code = '604').first() at = AccountingType.objects.filter(code = '604').first()
at.save()
response = self.client.post(reverse('accounting:op_new', response = self.client.post(reverse('accounting:op_new',
args=[self.journal.id]), args=[self.journal.id]),
{'amount': 30, {'amount': 30,
@ -95,11 +94,12 @@ class OperationTest(TestCase):
}) })
self.assertFalse(response.status_code == 403) self.assertFalse(response.status_code == 403)
self.assertTrue(self.journal.operations.filter(target_label = "Le fantome de la nuit").exists()) self.assertTrue(self.journal.operations.filter(target_label = "Le fantome de la nuit").exists())
response_get = self.client.get(reverse("accounting:journal_details", args=[self.journal.id]))
self.assertTrue('<td>Le fantome de la nuit</td>' in str(response_get.content))
def test_new_operation_not_authorized(self): def test_bad_new_operation(self):
self.client.login(username='skia', password='plop') self.client.login(username='comptable', password='plop')
at = AccountingType.objects.filter(code = '604').first() at = AccountingType.objects.filter(code = '604').first()
at.save()
response = self.client.post(reverse('accounting:op_new', response = self.client.post(reverse('accounting:op_new',
args=[self.journal.id]), args=[self.journal.id]),
{'amount': 30, {'amount': 30,
@ -113,8 +113,57 @@ class OperationTest(TestCase):
'cheque_number' : '', 'cheque_number' : '',
'invoice' : '', 'invoice' : '',
'simpleaccounting_type' : '', 'simpleaccounting_type' : '',
'accounting_type': '',
'label' : '',
'done' : False,
})
self.assertTrue('Vous devez fournir soit un type comptable simplifi\\xc3\\xa9 ou un type comptable standard' in str(response.content))
def test_new_operation_not_authorized(self):
self.client.login(username='skia', password='plop')
at = AccountingType.objects.filter(code = '604').first()
response = self.client.post(reverse('accounting:op_new',
args=[self.journal.id]),
{'amount': 30,
'remark' : "Un gros test",
'journal' : self.journal.id,
'target_type' : 'OTHER',
'target_id' : '',
'target_label' : "Le fantome du jour",
'date' : '04/12/2020',
'mode' : 'CASH',
'cheque_number' : '',
'invoice' : '',
'simpleaccounting_type' : '',
'accounting_type': at.id, 'accounting_type': at.id,
'label' : '', 'label' : '',
'done' : False, 'done' : False,
}) })
self.assertTrue(response.status_code == 403) self.assertTrue(response.status_code == 403)
self.assertFalse(self.journal.operations.filter(target_label = "Le fantome du jour").exists())
def test__operation_simple_accounting(self):
self.client.login(username='comptable', password='plop')
sat = SimplifiedAccountingType.objects.all().first()
response = self.client.post(reverse('accounting:op_new',
args=[self.journal.id]),
{'amount': 23,
'remark' : "Un gros test",
'journal' : self.journal.id,
'target_type' : 'OTHER',
'target_id' : '',
'target_label' : "Le fantome de l'aurore",
'date' : '04/12/2020',
'mode' : 'CASH',
'cheque_number' : '',
'invoice' : '',
'simpleaccounting_type' : sat.id,
'accounting_type': '',
'label' : '',
'done' : False,
})
self.assertFalse(response.status_code == 403)
self.assertTrue(self.journal.operations.filter(amount=23).exists())
response_get = self.client.get(reverse("accounting:journal_details", args=[self.journal.id]))
self.assertTrue("<td>Le fantome de l&#39;aurore</td>" in str(response_get.content))
self.assertTrue(self.journal.operations.filter(amount=23).values('accounting_type').first()['accounting_type'] == AccountingType.objects.filter(code=6).values('id').first()['id'])