From b9fb8ead7bc9aebe2d75616fe155267b8c2769d9 Mon Sep 17 00:00:00 2001 From: Leighton Pennicott Date: Thu, 5 Nov 2020 16:32:00 -0500 Subject: [PATCH] [MIG] delivery_partner_fedex: migrate delivery_partner_fedex from 12.0 to 13.0 Migrate delivery_partner_fedex from 12.0 to 13.0 and write tests for the validation H4409 --- delivery_partner_fedex/README.rst | 28 ++++++++++++++++++ delivery_partner_fedex/__init__.py | 2 ++ delivery_partner_fedex/__manifest__.py | 18 ++++++++++++ delivery_partner_fedex/models/__init__.py | 1 + delivery_partner_fedex/models/delivery.py | 17 +++++++++++ delivery_partner_fedex/tests/__init__.py | 1 + .../tests/test_fedex_account.py | 29 +++++++++++++++++++ 7 files changed, 96 insertions(+) create mode 100644 delivery_partner_fedex/README.rst create mode 100644 delivery_partner_fedex/__init__.py create mode 100755 delivery_partner_fedex/__manifest__.py create mode 100644 delivery_partner_fedex/models/__init__.py create mode 100644 delivery_partner_fedex/models/delivery.py create mode 100644 delivery_partner_fedex/tests/__init__.py create mode 100644 delivery_partner_fedex/tests/test_fedex_account.py diff --git a/delivery_partner_fedex/README.rst b/delivery_partner_fedex/README.rst new file mode 100644 index 00000000..17dfbcfd --- /dev/null +++ b/delivery_partner_fedex/README.rst @@ -0,0 +1,28 @@ +*************************************** +Hibou - FedEx Partner Shipping Accounts +*************************************** + +Adds FedEx shipping accounts. + +For more information and add-ons, visit `Hibou.io `_. + + +============= +Main Features +============= + +* Adds FedEx to the delivery type selection field. +* Validates entered FedEx account numbers are the correct length. + +.. image:: https://user-images.githubusercontent.com/15882954/41176817-b7353356-6b16-11e8-8545-3e59b7b350ae.png + :alt: 'Register Payment Detail' + :width: 988 + :align: left + +======= +License +======= + +Please see `LICENSE `_. + +Copyright Hibou Corp. 2018 diff --git a/delivery_partner_fedex/__init__.py b/delivery_partner_fedex/__init__.py new file mode 100644 index 00000000..0ee8b507 --- /dev/null +++ b/delivery_partner_fedex/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import tests diff --git a/delivery_partner_fedex/__manifest__.py b/delivery_partner_fedex/__manifest__.py new file mode 100755 index 00000000..e149d0a4 --- /dev/null +++ b/delivery_partner_fedex/__manifest__.py @@ -0,0 +1,18 @@ +{ + 'name': 'Fedex Partner Shipping Accounts', + 'author': 'Hibou Corp. ', + 'version': '12.0.1.0.0', + 'category': 'Stock', + 'sequence': 95, + 'summary': 'Fedex Partner Shipping Accounts', + 'description': """ + """, + 'website': 'https://hibou.io/', + 'depends': [ + 'delivery_partner', + ], + 'data': [ + ], + 'installable': True, + 'application': False, +} diff --git a/delivery_partner_fedex/models/__init__.py b/delivery_partner_fedex/models/__init__.py new file mode 100644 index 00000000..be8cabd6 --- /dev/null +++ b/delivery_partner_fedex/models/__init__.py @@ -0,0 +1 @@ +from . import delivery diff --git a/delivery_partner_fedex/models/delivery.py b/delivery_partner_fedex/models/delivery.py new file mode 100644 index 00000000..f6da8910 --- /dev/null +++ b/delivery_partner_fedex/models/delivery.py @@ -0,0 +1,17 @@ +import re + +from odoo import fields, models +from odoo.exceptions import ValidationError + + +class PartnerShippingAccount(models.Model): + _inherit = 'partner.shipping.account' + + delivery_type = fields.Selection(selection_add=[('fedex', 'FedEx')]) + + def fedex_check_validity(self): + m = re.search(r'^\d{9}$', self.name or '') + if not m: + raise ValidationError('FedEx Account numbers must be 9 decimal numbers.') + + diff --git a/delivery_partner_fedex/tests/__init__.py b/delivery_partner_fedex/tests/__init__.py new file mode 100644 index 00000000..7e86b3ce --- /dev/null +++ b/delivery_partner_fedex/tests/__init__.py @@ -0,0 +1 @@ +from . import test_fedex_account diff --git a/delivery_partner_fedex/tests/test_fedex_account.py b/delivery_partner_fedex/tests/test_fedex_account.py new file mode 100644 index 00000000..5fa8726d --- /dev/null +++ b/delivery_partner_fedex/tests/test_fedex_account.py @@ -0,0 +1,29 @@ +from odoo.tests.common import TransactionCase +from odoo.exceptions import ValidationError + + +class TestAccount(TransactionCase): + + def setUp(self): + super(TestAccount, self).setUp() + self.PartnerShippingAccount = self.env['partner.shipping.account'] + + def test_fedex_account_information(self): + # Create object and confirm that validation error raises if fedex account is blank or not 8 digits + with self.assertRaises(ValidationError): + wrong_account_number = self.PartnerShippingAccount.create({ + 'name': '12345678', + 'description': 'Error Account', + 'partner_id': 5, + 'delivery_type': 'fedex', + 'note': 'This is a note' + }) + + with self.assertRaises(ValidationError): + no_account_number = self.PartnerShippingAccount.create({ + 'name': '', + 'description': 'Error Account', + 'partner_id': 5, + 'delivery_type': 'fedex', + 'note': 'This is a note' + })