Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
17
Merge Requests
17
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos.core
Commits
48b9b61f
Commit
48b9b61f
authored
Dec 12, 2022
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_*: Fixup Tests
Unify tests for prevent excessive copy/paste duplication.
parent
1b5f0fba
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
267 additions
and
223 deletions
+267
-223
master/bt5/slapos_accounting/TestTemplateItem/portal_components/test.erp5.testSlapOSAccountingSkins.py
.../portal_components/test.erp5.testSlapOSAccountingSkins.py
+185
-2
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.SlapOSTestCaseDefaultScenarioMixin.py
...omponents/test.erp5.SlapOSTestCaseDefaultScenarioMixin.py
+4
-12
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.SlapOSTestCaseMixin.py
...teItem/portal_components/test.erp5.SlapOSTestCaseMixin.py
+4
-15
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5DefaultScenario.py
...tal_components/test.erp5.testSlapOSERP5DefaultScenario.py
+2
-12
master/bt5/slapos_payzen/TestTemplateItem/portal_components/test.erp5.testSlapOSPayzenSkins.py
...Item/portal_components/test.erp5.testSlapOSPayzenSkins.py
+34
-93
master/bt5/slapos_wechat/TestTemplateItem/portal_components/test.erp5.testSlapOSWechatSkins.py
...Item/portal_components/test.erp5.testSlapOSWechatSkins.py
+38
-89
No files found.
master/bt5/slapos_accounting/TestTemplateItem/portal_components/test.erp5.testSlapOSAccountingSkins.py
View file @
48b9b61f
...
...
@@ -342,7 +342,21 @@ class TestSlapOSAccounting(SlapOSTestCaseMixin):
self
.
tic
()
current_invoice
.
Delivery_manageBuildingCalculatingDelivery
()
self
.
tic
()
current_invoice
.
SaleInvoiceTransaction_forceBuildSlapOSAccountingLineList
()
applied_rule
=
current_invoice
.
getCausalityRelated
(
portal_type
=
"Applied Rule"
)
for
sm
in
self
.
portal
.
portal_catalog
(
portal_type
=
'Simulation Movement'
,
simulation_state
=
[
'draft'
,
'planned'
,
None
],
left_join_list
=
[
'delivery_uid'
],
delivery_uid
=
None
,
path
=
"%%%s%%"
%
applied_rule
):
if
sm
.
getDelivery
()
is
not
None
:
continue
root_applied_rule
=
sm
.
getRootAppliedRule
()
root_applied_rule_path
=
root_applied_rule
.
getPath
()
sm
.
getCausalityValue
(
portal_type
=
'Business Link'
).
build
(
path
=
'%s/%%'
%
root_applied_rule_path
)
self
.
tic
()
self
.
login
(
person
.
getUserId
())
...
...
@@ -633,3 +647,172 @@ class TestSlapOSAccounting(SlapOSTestCaseMixin):
def
test_createReversalSaleInvoiceTransaction_wechat_ok_dont_autocancel
(
self
):
self
.
test_createReversalSaleInvoiceTransaction_ok_dont_autocancel
(
payment_mode
=
'wechat'
)
@
withAbort
def
test_AccountingTransaction_getPaymentState_draft_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_deleted_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
delete
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_cancelled_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
cancel
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_planned_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
plan
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_confirmed_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
setStartDate
(
DateTime
())
invoice
.
confirm
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_started_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
start
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_payzen_reversed_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
()
self
.
tic
()
reversal
=
invoice
.
SaleInvoiceTransaction_createReversalSaleInvoiceTransaction
(
batch_mode
=
1
)
self
.
tic
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
self
.
assertEqual
(
0
,
invoice
.
getTotalPrice
()
+
reversal
.
getTotalPrice
())
@
withAbort
def
test_AccountingTransaction_getPaymentState_wechat_reversed_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
'wechat'
)
self
.
tic
()
reversal
=
invoice
.
SaleInvoiceTransaction_createReversalSaleInvoiceTransaction
(
batch_mode
=
1
)
self
.
tic
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
self
.
assertEqual
(
0
,
invoice
.
getTotalPrice
()
+
reversal
.
getTotalPrice
())
def
test_AccountingTransaction_getPaymentState_payzen_free_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
price
=
0
)
self
.
tic
()
self
.
assertEqual
(
"Free!"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wechat_free_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
price
=
0
,
payment_mode
=
'wechat'
)
self
.
tic
()
self
.
assertEqual
(
"Free!"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_payzen_unpaid_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
()
# If payment is not indexed or not started the state should be Pay Now
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wechat_unpaid_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
'wechat'
)
# If payment is not indexed or not started the state should be Pay Now
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_payzen_paynow_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wechat_paynow_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
(),
payment_mode
=
"wechat"
)
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_payzen_waiting_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'payzen'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment
.
PaymentTransaction_generatePayzenId
()
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Waiting for payment confirmation"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wechat_waiting_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
(),
payment_mode
=
'wechat'
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'wechat'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment
.
PaymentTransaction_generateWechatId
()
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Waiting for payment confirmation"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_payzen_papaid_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
()
self
.
tic
()
for
line
in
invoice
.
getMovementList
(
self
.
portal
.
getPortalAccountingMovementTypeList
()):
node_value
=
line
.
getSourceValue
(
portal_type
=
'Account'
)
if
node_value
.
getAccountType
()
==
'asset/receivable'
:
line
.
setGroupingReference
(
"TEST%s"
%
self
.
new_id
)
self
.
assertEqual
(
"Paid"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wechat_paid_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
'wechat'
)
self
.
tic
()
for
line
in
invoice
.
getMovementList
(
self
.
portal
.
getPortalAccountingMovementTypeList
()):
node_value
=
line
.
getSourceValue
(
portal_type
=
'Account'
)
if
node_value
.
getAccountType
()
==
'asset/receivable'
:
line
.
setGroupingReference
(
"TEST%s"
%
self
.
new_id
)
self
.
assertEqual
(
"Paid"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_wire_transfer_paid_payment
(
self
):
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
'wire_transfer'
)
self
.
tic
()
for
line
in
invoice
.
getMovementList
(
self
.
portal
.
getPortalAccountingMovementTypeList
()):
node_value
=
line
.
getSourceValue
(
portal_type
=
'Account'
)
if
node_value
.
getAccountType
()
==
'asset/receivable'
:
line
.
setGroupingReference
(
"TEST%s"
%
self
.
new_id
)
self
.
assertEqual
(
"Paid"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_Base_getReceivableAccountList
(
self
):
account_list
=
self
.
portal
.
Base_getReceivableAccountList
()
self
.
assertIn
(
'account_module/receivable'
,
[
i
.
getRelativeUrl
()
for
i
in
account_list
])
\ No newline at end of file
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.SlapOSTestCaseDefaultScenarioMixin.py
View file @
48b9b61f
...
...
@@ -557,18 +557,7 @@ class DefaultScenarioMixin(TestSlapOSSecurityMixin):
payment_list
=
invoice
.
getCausalityRelatedValueList
(
portal_type
=
'Payment Transaction'
)
self
.
assertEqual
(
1
,
len
(
payment_list
))
payment
=
payment_list
[
0
].
getObject
()
causality_list
=
payment
.
getCausalityValueList
()
self
.
assertSameSet
([
invoice
],
causality_list
)
self
.
assertEqual
(
'started'
,
payment
.
getSimulationState
())
self
.
assertEqual
(
'draft'
,
payment
.
getCausalityState
())
self
.
assertEqual
(
-
1
*
payment
.
PaymentTransaction_getTotalPayablePrice
(),
invoice
.
getTotalPrice
())
self
.
assertEqual
(
0
,
len
(
payment_list
))
def
assertPersonDocumentCoverage
(
self
,
person
):
self
.
login
()
...
...
@@ -672,6 +661,8 @@ class DefaultScenarioMixin(TestSlapOSSecurityMixin):
self
.
assertInvoiceNotification
(
person
,
is_email_expected
)
invoice_list
=
person
.
Entity_getOutstandingAmountList
()
self
.
login
()
if
subscription_request
is
not
None
:
expected_causality
=
subscription_request
.
getRelativeUrl
()
filtered_invoice_list
=
[]
...
...
@@ -685,6 +676,7 @@ class DefaultScenarioMixin(TestSlapOSSecurityMixin):
else
:
self
.
assertEqual
(
len
(
invoice_list
),
1
)
self
.
login
(
user_id
)
document_id
=
invoice_list
[
0
].
getId
()
web_site
.
accounting_module
[
document_id
].
\
SaleInvoiceTransaction_redirectToManualSlapOSPayment
()
...
...
master/bt5/slapos_cloud/TestTemplateItem/portal_components/test.erp5.SlapOSTestCaseMixin.py
View file @
48b9b61f
...
...
@@ -567,13 +567,13 @@ class SlapOSTestCaseMixin(testSlapOSMixin):
reference
=
"TESTTRANS-%s"
%
new_id
,
)
def
createSaleInvoiceTransaction
(
self
):
def
createSaleInvoiceTransaction
(
self
,
**
kw
):
new_id
=
self
.
generateNewId
()
return
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Sale Invoice Transaction'
,
title
=
"Invoice %s"
%
new_id
,
reference
=
"TESTSIT-%s"
%
new_id
,
)
**
kw
)
def
createPayzenEvent
(
self
):
return
self
.
portal
.
system_event_module
.
newContent
(
...
...
@@ -585,16 +585,11 @@ class SlapOSTestCaseMixin(testSlapOSMixin):
portal_type
=
'Wechat Event'
,
reference
=
'PAY-%s'
%
self
.
generateNewId
())
def
createPayzenSaleInvoiceTransaction
(
self
,
destination_section
=
None
,
price
=
2
,
payment_mode
=
"payzen"
):
new_title
=
self
.
generateNewId
()
new_reference
=
self
.
generateNewId
()
def
createStoppedSaleInvoiceTransaction
(
self
,
destination_section
=
None
,
price
=
2
,
payment_mode
=
"payzen"
):
new_source_reference
=
self
.
generateNewId
()
new_destination_reference
=
self
.
generateNewId
()
invoice
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Sale Invoice Transaction"
,
title
=
new_title
,
invoice
=
self
.
createSaleInvoiceTransaction
(
start_date
=
DateTime
(),
reference
=
new_reference
,
source_reference
=
new_source_reference
,
destination_reference
=
new_destination_reference
,
destination_section
=
destination_section
,
...
...
@@ -616,12 +611,6 @@ class SlapOSTestCaseMixin(testSlapOSMixin):
)
return
invoice
def
createWechatSaleInvoiceTransaction
(
self
,
destination_section
=
None
,
price
=
2
):
return
self
.
createPayzenSaleInvoiceTransaction
(
destination_section
=
destination_section
,
price
=
price
,
payment_mode
=
'wechat'
)
def
createRegularisationRequest
(
self
):
new_id
=
self
.
generateNewId
()
return
self
.
portal
.
regularisation_request_module
.
newContent
(
...
...
master/bt5/slapos_erp5/TestTemplateItem/portal_components/test.erp5.testSlapOSERP5DefaultScenario.py
View file @
48b9b61f
...
...
@@ -280,6 +280,7 @@ class TestSlapOSDefaultCRMEscalation(DefaultScenarioMixin):
default_source_project_uid
=
person
.
getUid
()
)
self
.
assertNotEqual
(
ticket
,
None
)
event
=
self
.
portal
.
portal_catalog
.
getResultValue
(
portal_type
=
'Mail Message'
,
default_resource_uid
=
self
.
portal
.
service_module
[
service_id
].
getUid
(),
...
...
@@ -341,18 +342,7 @@ class TestSlapOSDefaultCRMEscalation(DefaultScenarioMixin):
payment_list
=
invoice
.
getCausalityRelatedValueList
(
portal_type
=
'Payment Transaction'
)
self
.
assertEqual
(
1
,
len
(
payment_list
))
payment
=
payment_list
[
0
].
getObject
()
causality_list
=
payment
.
getCausalityValueList
()
self
.
assertSameSet
([
invoice
],
causality_list
)
self
.
assertEqual
(
'cancelled'
,
payment
.
getSimulationState
())
self
.
assertEqual
(
'draft'
,
payment
.
getCausalityState
())
self
.
assertEqual
(
-
1
*
payment
.
PaymentTransaction_getTotalPayablePrice
(),
invoice
.
getTotalPrice
())
self
.
assertEqual
(
0
,
len
(
payment_list
))
# Check reverse invoice
reverse_invoice_list
=
invoice
.
getCausalityRelatedValueList
(
...
...
master/bt5/slapos_payzen/TestTemplateItem/portal_components/test.erp5.testSlapOSPayzenSkins.py
View file @
48b9b61f
...
...
@@ -45,14 +45,6 @@ class TestSlapOSCurrency_getIntegrationMapping(SlapOSTestCaseMixinWithAbort):
class
TestSlapOSAccountingTransaction_updateStartDate
(
SlapOSTestCaseMixinWithAbort
):
def
createPaymentTransaction
(
self
):
new_id
=
self
.
generateNewId
()
return
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
'Payment Transaction'
,
title
=
"Transaction %s"
%
new_id
,
reference
=
"TESTTRANS-%s"
%
new_id
,
)
def
test_date_changed
(
self
):
date
=
DateTime
(
"2001/01/01"
)
payment_transaction
=
self
.
createPaymentTransaction
()
...
...
@@ -677,85 +669,6 @@ class TestSlapOSPayzenBase_getPayzenServiceRelativeUrl(SlapOSTestCaseMixinWithAb
result
=
self
.
portal
.
Base_getPayzenServiceRelativeUrl
()
self
.
assertEqual
(
result
,
'portal_secure_payments/slapos_payzen_test'
)
class
TestSlapOSPayzenAccountingTransaction_getPaymentState
(
SlapOSTestCaseMixinWithAbort
):
def
test_AccountingTransaction_getPaymentState_draft_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_deleted_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
delete
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_cancelled_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
cancel
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_planned_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
plan
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_confirmed_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
setStartDate
(
DateTime
())
invoice
.
confirm
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_started_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
start
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_reversed_payment
(
self
):
invoice
=
self
.
createPayzenSaleInvoiceTransaction
()
self
.
tic
()
reversal
=
invoice
.
SaleInvoiceTransaction_createReversalSaleInvoiceTransaction
()
self
.
tic
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
self
.
assertEqual
(
0
,
invoice
.
getTotalPrice
()
+
reversal
.
getTotalPrice
())
def
test_AccountingTransaction_getPaymentState_free_payment
(
self
):
invoice
=
self
.
createPayzenSaleInvoiceTransaction
(
price
=
0
)
self
.
tic
()
self
.
assertEqual
(
"Free!"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_unpaid_payment
(
self
):
invoice
=
self
.
createPayzenSaleInvoiceTransaction
()
# If payment is not indexed or not started the state should be unpaid
self
.
assertEqual
(
"Unpaid"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_paynow_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createPayzenSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_waiting_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createPayzenSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getSlapOSPaymentRelatedValue
()
payment
.
PaymentTransaction_generatePayzenId
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Waiting for payment confirmation"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_paid_payment
(
self
):
invoice
=
self
.
createPayzenSaleInvoiceTransaction
()
self
.
tic
()
for
line
in
invoice
.
getMovementList
(
self
.
portal
.
getPortalAccountingMovementTypeList
()):
node_value
=
line
.
getSourceValue
(
portal_type
=
'Account'
)
if
node_value
.
getAccountType
()
==
'asset/receivable'
:
line
.
setGroupingReference
(
"TEST%s"
%
self
.
new_id
)
self
.
assertEqual
(
"Paid"
,
invoice
.
AccountingTransaction_getPaymentState
())
class
TestSlapOSPayzenPaymentTransaction_redirectToManualPayzenPayment
(
SlapOSTestCaseMixinWithAbort
):
...
...
@@ -800,11 +713,19 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
def
test_PaymentTransaction_redirectToManualPayzenPayment_redirect
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
create
Payzen
SaleInvoiceTransaction
(
invoice
=
self
.
create
Stopped
SaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getSlapOSPaymentRelatedValue
()
payment
.
setResourceValue
(
self
.
portal
.
currency_module
.
EUR
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'payzen'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
resource_value
=
self
.
portal
.
currency_module
.
EUR
,
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
_simulatePaymentTransaction_getVADSUrlDict
()
...
...
@@ -830,15 +751,32 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
"%s/return"
%
(
payment_transaction_url
)]:
self
.
assertTrue
(
item
in
text_content
,
"%s not in %s"
%
(
item
,
text_content
))
self
.
tic
()
system_event_list
=
payment
.
getDestinationRelatedValueList
(
portal_type
=
"Payzen Event"
)
self
.
assertEqual
(
len
(
system_event_list
),
1
)
self
.
assertEqual
(
system_event_list
[
0
].
getDestinationSection
(),
invoice
.
getDestinationSection
())
self
.
assertEqual
(
len
(
system_event_list
[
0
].
contentValues
(
portal_type
=
"Payzen Event Message"
)),
1
)
def
test_PaymentTransaction_redirectToManualPayzenPayment_already_registered
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
create
Payzen
SaleInvoiceTransaction
(
invoice
=
self
.
create
Stopped
SaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getSlapOSPaymentRelatedValue
()
payment
.
setResourceValue
(
self
.
portal
.
currency_module
.
EUR
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'payzen'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
resource_value
=
self
.
portal
.
currency_module
.
EUR
,
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment
.
PaymentTransaction_generatePayzenId
()
self
.
tic
()
self
.
login
(
person
.
getUserId
())
...
...
@@ -850,3 +788,6 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
self
.
assertEqual
(
"%s/already_registered"
%
payment
.
getRelativeUrl
(),
redirect
)
system_event_list
=
payment
.
getDestinationRelatedValueList
(
portal_type
=
"Payzen Event"
)
self
.
assertEqual
(
len
(
system_event_list
),
0
)
\ No newline at end of file
master/bt5/slapos_wechat/TestTemplateItem/portal_components/test.erp5.testSlapOSWechatSkins.py
View file @
48b9b61f
...
...
@@ -534,85 +534,6 @@ class TestSlapOSWechatBase_getWechatServiceRelativeUrl(SlapOSTestCaseMixinWithAb
result
=
self
.
portal
.
Base_getWechatServiceRelativeUrl
()
self
.
assertEqual
(
result
,
'portal_secure_payments/slapos_wechat_test'
)
class
TestSlapOSWechatAccountingTransaction_getPaymentState
(
SlapOSTestCaseMixinWithAbort
):
def
test_AccountingTransaction_getPaymentState_draft_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_deleted_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
delete
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_cancelled_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
cancel
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_planned_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
plan
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_confirmed_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
setStartDate
(
DateTime
())
invoice
.
confirm
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_started_payment
(
self
):
invoice
=
self
.
createSaleInvoiceTransaction
()
invoice
.
start
()
self
.
assertEqual
(
"Ongoing"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_reversed_payment
(
self
):
invoice
=
self
.
createWechatSaleInvoiceTransaction
()
self
.
tic
()
reversal
=
invoice
.
SaleInvoiceTransaction_createReversalWechatTransaction
()
self
.
tic
()
self
.
assertEqual
(
"Cancelled"
,
invoice
.
AccountingTransaction_getPaymentState
())
self
.
assertEqual
(
0
,
invoice
.
getTotalPrice
()
+
reversal
.
getTotalPrice
())
def
test_AccountingTransaction_getPaymentState_free_payment
(
self
):
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
price
=
0
)
self
.
tic
()
self
.
assertEqual
(
"Free!"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_unpaid_payment
(
self
):
invoice
=
self
.
createWechatSaleInvoiceTransaction
()
# If payment is not indexed or not started the state should be unpaid
self
.
assertEqual
(
"Unpaid"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_paynow_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Pay Now"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_waiting_payment
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getWechatPaymentRelatedValue
()
payment
.
PaymentTransaction_generateWechatId
()
self
.
login
(
person
.
getUserId
())
self
.
assertEqual
(
"Waiting for payment confirmation"
,
invoice
.
AccountingTransaction_getPaymentState
())
def
test_AccountingTransaction_getPaymentState_paid_payment
(
self
):
invoice
=
self
.
createWechatSaleInvoiceTransaction
()
self
.
tic
()
for
line
in
invoice
.
getMovementList
(
self
.
portal
.
getPortalAccountingMovementTypeList
()):
node_value
=
line
.
getSourceValue
(
portal_type
=
'Account'
)
if
node_value
.
getAccountType
()
==
'asset/receivable'
:
line
.
setGroupingReference
(
"TEST%s"
%
self
.
new_id
)
self
.
assertEqual
(
"Paid"
,
invoice
.
AccountingTransaction_getPaymentState
())
class
TestSlapOSWechatPaymentTransaction_redirectToManualWechatPayment
(
SlapOSTestCaseMixinWithAbort
):
...
...
@@ -657,11 +578,19 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
def
test_PaymentTransaction_redirectToManualWechatPayment_redirect
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
"wechat"
,
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getWechatPaymentRelatedValue
()
payment
.
setResourceValue
(
self
.
portal
.
currency_module
.
EUR
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'wechat'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
resource_value
=
self
.
portal
.
currency_module
.
CNY
,
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment_transaction_id
=
payment
.
getId
()
self
.
tic
()
...
...
@@ -693,11 +622,19 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
def
test_PaymentTransaction_redirectToManualWechatPayment_redirect_with_website
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
"wechat"
,
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getWechatPaymentRelatedValue
()
payment
.
setResourceValue
(
self
.
portal
.
currency_module
.
EUR
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'wechat'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
resource_value
=
self
.
portal
.
currency_module
.
CNY
,
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment_transaction_id
=
payment
.
getId
()
web_site
=
self
.
portal
.
web_site_module
.
newContent
(
portal_type
=
'Web Site'
)
...
...
@@ -725,11 +662,20 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
def
test_PaymentTransaction_redirectToManualWechatPayment_already_registered
(
self
):
person
=
self
.
makePerson
()
invoice
=
self
.
createWechatSaleInvoiceTransaction
(
invoice
=
self
.
createStoppedSaleInvoiceTransaction
(
payment_mode
=
"wechat"
,
destination_section
=
person
.
getRelativeUrl
())
self
.
tic
()
payment
=
invoice
.
SaleInvoiceTransaction_getWechatPaymentRelatedValue
()
payment
.
setResourceValue
(
self
.
portal
.
currency_module
.
EUR
)
payment
=
self
.
portal
.
accounting_module
.
newContent
(
portal_type
=
"Payment Transaction"
,
payment_mode
=
'wechat'
,
causality_value
=
invoice
,
destination_section
=
invoice
.
getDestinationSection
(),
resource_value
=
self
.
portal
.
currency_module
.
CNY
,
created_by_builder
=
1
# to prevent init script to create lines
)
self
.
portal
.
portal_workflow
.
_jumpToStateFor
(
payment
,
'started'
)
payment
.
PaymentTransaction_generateWechatId
()
self
.
tic
()
self
.
login
(
person
.
getUserId
())
...
...
@@ -741,3 +687,6 @@ return dict(vads_url_already_registered="%s/already_registered" % (payment_trans
self
.
assertEqual
(
"%s/already_registered"
%
payment
.
getRelativeUrl
(),
redirect
)
system_event_list
=
payment
.
getDestinationRelatedValueList
(
portal_type
=
"Payzen Event"
)
self
.
assertEqual
(
len
(
system_event_list
),
0
)
\ No newline at end of file
Write
Preview
Markdown
is supported
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