Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
0280a656
Commit
0280a656
authored
Dec 25, 2016
by
Skia
🤘
Browse files
Merge branch 'bilanTresorerie' into 'master'
Accounting tests See merge request
!37
parents
df7b0a5f
16979aa3
Pipeline
#635
passed with stage
in 2 minutes and 57 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
accounting/tests.py
View file @
0280a656
...
...
@@ -3,9 +3,11 @@ from django.core.urlresolvers import reverse
from
django.contrib.auth.models
import
Group
from
django.core.management
import
call_command
from
django.conf
import
settings
from
datetime
import
date
,
datetime
from
core.models
import
User
from
counter.models
import
Counter
from
accounting.models
import
GeneralJournal
,
Operation
,
Label
,
AccountingType
,
SimplifiedAccountingType
class
RefoundAccountTest
(
TestCase
):
...
...
@@ -17,7 +19,7 @@ class RefoundAccountTest(TestCase):
self
.
skia
.
customer
.
save
()
def
test_permission_denied
(
self
):
self
.
client
.
login
(
use
e
rname
=
'guy'
,
password
=
'plop'
)
self
.
client
.
login
(
username
=
'guy'
,
password
=
'plop'
)
response_post
=
self
.
client
.
post
(
reverse
(
"accounting:refound_account"
),
{
"user"
:
self
.
skia
.
id
})
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:refound_account"
))
...
...
@@ -45,3 +47,153 @@ class RefoundAccountTest(TestCase):
self
.
assertTrue
(
'<form action="" method="post">'
in
str
(
response_get
.
content
))
self
.
assertFalse
(
response_post
.
status_code
==
403
)
self
.
assertTrue
(
self
.
skia
.
customer
.
amount
==
0
)
class
JournalTest
(
TestCase
):
def
setUp
(
self
):
call_command
(
"populate"
)
self
.
journal
=
GeneralJournal
.
objects
.
filter
(
id
=
1
).
first
()
def
test_permission_granted
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
password
=
'plop'
)
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:journal_details"
,
args
=
[
self
.
journal
.
id
]))
self
.
assertTrue
(
response_get
.
status_code
==
200
)
self
.
assertTrue
(
'<td>M
\\
xc3
\\
xa9thode de paiement</td>'
in
str
(
response_get
.
content
))
def
test_permission_not_granted
(
self
):
self
.
client
.
login
(
username
=
'skia'
,
password
=
'plop'
)
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:journal_details"
,
args
=
[
self
.
journal
.
id
]))
self
.
assertTrue
(
response_get
.
status_code
==
403
)
self
.
assertFalse
(
'<td>M
\xc3\xa9
thode de paiement</td>'
in
str
(
response_get
.
content
))
class
OperationTest
(
TestCase
):
def
setUp
(
self
):
call_command
(
"populate"
)
self
.
journal
=
GeneralJournal
.
objects
.
filter
(
id
=
1
).
first
()
self
.
skia
=
User
.
objects
.
filter
(
username
=
'skia'
).
first
()
at
=
AccountingType
(
code
=
'443'
,
label
=
"Ce code n'existe pas"
,
movement_type
=
'CREDIT'
)
at
.
save
()
l
=
Label
(
club_account
=
self
.
journal
.
club_account
,
name
=
'bob'
)
l
.
save
()
self
.
client
.
login
(
username
=
'comptable'
,
password
=
'plop'
)
self
.
op1
=
Operation
(
journal
=
self
.
journal
,
date
=
date
.
today
(),
amount
=
1
,
remark
=
"Test bilan"
,
mode
=
'CASH'
,
done
=
True
,
label
=
l
,
accounting_type
=
at
,
target_type
=
'USER'
,
target_id
=
self
.
skia
.
id
)
self
.
op1
.
save
()
self
.
op2
=
Operation
(
journal
=
self
.
journal
,
date
=
date
.
today
(),
amount
=
2
,
remark
=
"Test bilan"
,
mode
=
'CASH'
,
done
=
True
,
label
=
l
,
accounting_type
=
at
,
target_type
=
'USER'
,
target_id
=
self
.
skia
.
id
)
self
.
op2
.
save
()
def
test_new_operation
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
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 de la nuit"
,
'date'
:
'04/12/2020'
,
'mode'
:
'CASH'
,
'cheque_number'
:
''
,
'invoice'
:
''
,
'simpleaccounting_type'
:
''
,
'accounting_type'
:
at
.
id
,
'label'
:
''
,
'done'
:
False
,
})
self
.
assertFalse
(
response
.
status_code
==
403
)
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_bad_new_operation
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
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 de la nuit"
,
'date'
:
'04/12/2020'
,
'mode'
:
'CASH'
,
'cheque_number'
:
''
,
'invoice'
:
''
,
'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
,
'label'
:
''
,
'done'
:
False
,
})
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'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'
])
def
test_nature_statement
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
password
=
'plop'
)
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:journal_nature_statement"
,
args
=
[
self
.
journal
.
id
]))
self
.
assertTrue
(
"bob (Troll Pench
\\
xc3
\\
xa9) : 3.00"
in
str
(
response_get
.
content
))
def
test_person_statement
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
password
=
'plop'
)
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:journal_person_statement"
,
args
=
[
self
.
journal
.
id
]))
self
.
assertTrue
(
"S' Kia</a></td>
\\
n
\\
n <td>3.00</td>"
in
str
(
response_get
.
content
))
def
test_accounting_statement
(
self
):
self
.
client
.
login
(
username
=
'comptable'
,
password
=
'plop'
)
response_get
=
self
.
client
.
get
(
reverse
(
"accounting:journal_accounting_statement"
,
args
=
[
self
.
journal
.
id
]))
self
.
assertTrue
(
"<td>443 - Cr
\\
xc3
\\
xa9dit - Ce code n'existe pas</td>
\\
n <td>3.00</td>"
in
str
(
response_get
.
content
))
\ No newline at end of file
core/management/commands/populate.py
View file @
0280a656
...
...
@@ -10,7 +10,7 @@ from django.contrib.sites.models import Site
from
core.models
import
Group
,
User
,
Page
,
PageRev
,
SithFile
from
accounting.models
import
GeneralJournal
,
BankAccount
,
ClubAccount
,
Operation
,
AccountingType
,
Company
from
accounting.models
import
GeneralJournal
,
BankAccount
,
ClubAccount
,
Operation
,
AccountingType
,
SimplifiedAccountingType
,
Company
from
club.models
import
Club
,
Membership
from
subscription.models
import
Subscription
from
counter.models
import
Customer
,
ProductType
,
Product
,
Counter
...
...
@@ -295,22 +295,39 @@ Cette page vise à documenter la syntaxe *Markdown* utilisée sur le site.
ca
.
save
()
gj
=
GeneralJournal
(
name
=
"A16"
,
start_date
=
date
.
today
(),
club_account
=
ca
)
gj
.
save
()
credit
=
AccountingType
(
code
=
'74'
,
label
=
"S
omeone gave us money
"
,
movement_type
=
'CREDIT'
)
credit
=
AccountingType
(
code
=
'74'
,
label
=
"S
ubventions d'exploitation
"
,
movement_type
=
'CREDIT'
)
credit
.
save
()
debit
=
AccountingType
(
code
=
'60
7
'
,
label
=
"
Had to pay a beer
"
,
movement_type
=
'DEBIT'
)
debit
=
AccountingType
(
code
=
'60
6
'
,
label
=
"
Achats non stockés de matières et fournitures(*1)
"
,
movement_type
=
'DEBIT'
)
debit
.
save
()
t
=
AccountingType
(
code
=
'602'
,
label
=
"Gros test de malade"
,
movement_type
=
'DEBIT'
)
t
.
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
32.3
,
remark
=
"..."
,
mode
=
"CASH"
,
done
=
True
,
accounting_type
=
t
,
target_type
=
"USER"
,
target_id
=
skia
.
id
).
save
()
t
=
AccountingType
(
code
=
'60'
,
label
=
"..."
,
movement_type
=
'DEBIT'
)
t
.
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
32.3
,
remark
=
"..."
,
mode
=
"CASH"
,
done
=
True
,
accounting_type
=
t
,
target_type
=
"USER"
,
target_id
=
skia
.
id
).
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
46.42
,
remark
=
"An answer to life..."
,
mode
=
"CASH"
,
done
=
True
,
accounting_type
=
t
,
target_type
=
"USER"
,
target_id
=
skia
.
id
).
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
666.42
,
remark
=
"An answer to life..."
,
mode
=
"CASH"
,
done
=
True
,
accounting_type
=
credit
,
target_type
=
"USER"
,
target_id
=
skia
.
id
).
save
()
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
42
,
remark
=
"An answer to life..."
,
mode
=
"CASH"
,
done
=
False
,
accounting_type
=
debit
,
target_type
=
"CLUB"
,
target_id
=
bar_club
.
id
).
save
()
debit2
=
AccountingType
(
code
=
'604'
,
label
=
"Achats d'études et prestations de services(*2)"
,
movement_type
=
'DEBIT'
)
debit2
.
save
()
buying
=
AccountingType
(
code
=
'60'
,
label
=
"Achats (sauf 603)"
,
movement_type
=
'DEBIT'
)
buying
.
save
()
comptes
=
AccountingType
(
code
=
'6'
,
label
=
"Comptes de charge"
,
movement_type
=
'DEBIT'
)
comptes
.
save
()
simple
=
SimplifiedAccountingType
(
label
=
'Je fais du simple 6'
,
accounting_type
=
comptes
,
movement_type
=
'DEBIT'
)
simple
.
save
()
woenzco
=
Company
(
name
=
"Woenzel & co"
)
woenzco
.
save
()
operation_list
=
[
(
27
,
"J'avais trop de bière"
,
'CASH'
,
None
,
buying
,
'USER'
,
skia
.
id
,
""
,
None
),
(
4000
,
"Ceci n'est pas une opération... en fait si mais non"
,
'CHECK'
,
None
,
debit
,
'COMPANY'
,
woenzco
.
id
,
""
,
23
),
(
22
,
"C'est de l'argent ?"
,
'CARD'
,
None
,
credit
,
'CLUB'
,
troll
.
id
,
""
,
None
),
(
37
,
"Je paye CASH"
,
'CASH'
,
None
,
debit2
,
'OTHER'
,
None
,
"tous les étudiants <3"
,
None
),
(
300
,
"Paiement Guy"
,
'CASH'
,
None
,
buying
,
'USER'
,
skia
.
id
,
""
,
None
),
(
32.3
,
"Essence"
,
'CASH'
,
None
,
buying
,
'OTHER'
,
None
,
"station"
,
None
),
(
46.42
,
"Allumette"
,
'CHECK'
,
None
,
credit
,
'CLUB'
,
main_club
.
id
,
""
,
57
),
(
666.42
,
"Subvention de far far away"
,
'CASH'
,
None
,
comptes
,
'CLUB'
,
main_club
.
id
,
""
,
None
),
(
496
,
"Ça, c'est un 6"
,
'CARD'
,
simple
,
None
,
'USER'
,
skia
.
id
,
""
,
None
),
(
17
,
"La Gargotte du Korrigan"
,
'CASH'
,
None
,
debit2
,
'CLUB'
,
bar_club
.
id
,
""
,
None
),
]
for
op
in
operation_list
:
operation
=
Operation
(
journal
=
gj
,
date
=
date
.
today
(),
amount
=
op
[
0
],
remark
=
op
[
1
],
mode
=
op
[
2
],
done
=
True
,
simpleaccounting_type
=
op
[
3
],
accounting_type
=
op
[
4
],
target_type
=
op
[
5
],
target_id
=
op
[
6
],
target_label
=
op
[
7
],
cheque_number
=
op
[
8
])
operation
.
clean
()
operation
.
save
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment