Skip to content

Commit

Permalink
[IMP] cooperator: static test helpers
Browse files Browse the repository at this point in the history
Functions in CooperatorTestMixin are often used in setUpClass
which is a class method. Helper functions need to be decorared
to be accessible.
  • Loading branch information
robinkeunen authored and huguesdk committed Oct 13, 2023
1 parent 52dfac1 commit 772320b
Showing 1 changed file with 50 additions and 40 deletions.
90 changes: 50 additions & 40 deletions cooperator/tests/cooperator_test_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,29 +77,31 @@ def create_company(cls, name):
cls.company.chart_template_id.try_loading(company)
return company

def pay_invoice(self, invoice, payment_date=None):
@classmethod
def pay_invoice(cls, invoice, payment_date=None):
ctx = {"active_model": "account.move", "active_ids": [invoice.id]}
register_payments_vals = {"payment_type": "inbound"}
if payment_date is not None:
register_payments_vals["payment_date"] = payment_date
register_payment = (
self.env["account.payment.register"]
cls.env["account.payment.register"]
.with_context(**ctx)
.create(register_payments_vals)
)
register_payment.action_create_payments()

def create_payment_account_move(self, invoice, date, amount=None):
@classmethod
def create_payment_account_move(cls, invoice, date, amount=None):
if amount is None:
amount = invoice.line_ids[0].credit
journal = self.env["account.journal"].search(
journal = cls.env["account.journal"].search(
[
("type", "=", "bank"),
("company_id", "=", invoice.company_id.id),
],
limit=1,
)
am = self.env["account.move"].create(
am = cls.env["account.move"].create(
{
"journal_id": journal.id,
"date": date,
Expand Down Expand Up @@ -130,9 +132,10 @@ def create_payment_account_move(self, invoice, date, amount=None):
(invoice.line_ids[-1] + am.line_ids[-1]).reconcile()
return am

def get_dummy_subscription_requests_vals(self):
return {
"share_product_id": self.share_y.id,
@classmethod
def get_dummy_subscription_requests_vals(cls, **custom_vals):
vals = {
"share_product_id": cls.share_y.id,
"ordered_parts": 2,
"firstname": "first name",
"lastname": "last name",
Expand All @@ -141,57 +144,64 @@ def get_dummy_subscription_requests_vals(self):
"address": "dummy street",
"zip_code": "dummy zip",
"city": "dummy city",
"country_id": self.ref("base.be"),
"country_id": cls.env.ref("base.be").id,
"lang": "en_US",
"gender": "other",
"birthdate": "1980-01-01",
"iban": "BE60096123456870",
"source": "manual",
}

def get_dummy_company_subscription_requests_vals(self):
vals = self.get_dummy_subscription_requests_vals()
vals.update(
{
"is_company": True,
"company_name": "dummy company",
"company_email": "[email protected]",
"company_register_number": "dummy company register number",
"contact_person_function": "dummy contact person function",
}
vals.update(custom_vals)
return vals

@classmethod
def get_dummy_company_subscription_requests_vals(cls):
vals = cls.get_dummy_subscription_requests_vals(
is_company=True,
company_name="dummy company",
company_email="[email protected]",
company_register_number="dummy company register number",
contact_person_function="dummy contact person function",
)
return vals

def create_dummy_subscription_request(self):
return self.env["subscription.request"].create(
self.get_dummy_subscription_requests_vals()
@classmethod
def create_dummy_subscription_request(cls):
return cls.env["subscription.request"].create(
cls.get_dummy_subscription_requests_vals()
)

def create_dummy_company_subscription_request(self):
return self.env["subscription.request"].create(
self.get_dummy_company_subscription_requests_vals()
@classmethod
def create_dummy_company_subscription_request(cls):
return cls.env["subscription.request"].create(
cls.get_dummy_company_subscription_requests_vals()
)

def create_dummy_subscription_from_partner(self, partner):
vals = self.get_dummy_subscription_requests_vals()
vals["partner_id"] = partner.id
return self.env["subscription.request"].create(vals)
@classmethod
def create_dummy_subscription_from_partner(cls, partner):
vals = cls.get_dummy_subscription_requests_vals(partner_id=partner.id)
return cls.env["subscription.request"].create(vals)

def create_dummy_subscription_from_company_partner(self, partner):
vals = self.get_dummy_company_subscription_requests_vals()
@classmethod
def create_dummy_subscription_from_company_partner(cls, partner):
vals = cls.get_dummy_company_subscription_requests_vals()
vals["partner_id"] = partner.id
return self.env["subscription.request"].create(vals)
return cls.env["subscription.request"].create(vals)

def validate_subscription_request_and_pay(self, subscription_request):
@classmethod
def validate_subscription_request_and_pay(cls, subscription_request):
subscription_request.validate_subscription_request()
self.pay_invoice(subscription_request.capital_release_request)
cls.pay_invoice(subscription_request.capital_release_request)

def create_dummy_cooperator(self):
subscription_request = self.create_dummy_subscription_request()
self.validate_subscription_request_and_pay(subscription_request)
@classmethod
def create_dummy_cooperator(cls):
subscription_request = cls.create_dummy_subscription_request()
cls.validate_subscription_request_and_pay(subscription_request)
return subscription_request.partner_id

def create_dummy_company_cooperator(self):
subscription_request = self.create_dummy_company_subscription_request()
self.validate_subscription_request_and_pay(subscription_request)
@classmethod
def create_dummy_company_cooperator(cls):
subscription_request = cls.create_dummy_company_subscription_request()
cls.validate_subscription_request_and_pay(subscription_request)
return subscription_request.partner_id

0 comments on commit 772320b

Please sign in to comment.