-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[18.0] [MIG] delivery_postlogistics: Migration to 18.0 #974
base: 18.0
Are you sure you want to change the base?
[18.0] [MIG] delivery_postlogistics: Migration to 18.0 #974
Conversation
Superseeds #940 |
98eb1c9
to
4d44284
Compare
hello @StephaneMangin
|
/ocabot migration delivery_postlogistics |
delivery_postlogistics/tests/fixtures/cassettes/test_token_error.yaml
Outdated
Show resolved
Hide resolved
delivery_postlogistics/tests/fixtures/cassettes/test_store_label.yaml
Outdated
Show resolved
Hide resolved
delivery_postlogistics/tests/fixtures/cassettes/test_store_label.yaml
Outdated
Show resolved
Hide resolved
delivery_postlogistics/tests/fixtures/cassettes/test_missing_language.yaml
Outdated
Show resolved
Hide resolved
delivery_postlogistics/tests/fixtures/cassettes/test_missing_language.yaml
Outdated
Show resolved
Hide resolved
Yes it is transitional, because these values are added in a dependency. Updating... |
3fe8f87
to
78c780f
Compare
0f171db
to
894894d
Compare
e9dc13c
to
0b24d58
Compare
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-16.0/delivery-carrier-16.0-delivery_postlogistics Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-16-0/delivery-carrier-16-0-delivery_postlogistics/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-16.0/delivery-carrier-16.0-delivery_postlogistics Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-16-0/delivery-carrier-16-0-delivery_postlogistics/
Postlogistics limit for fields such as name, street and city, is 35 chars for the recipient fields but is limited to 25 characters.
Sometimes due to API error it may happen we don't receive anything back when requesting token. In this case we want to show meaningful message.
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-16.0/delivery-carrier-16.0-delivery_postlogistics Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-16-0/delivery-carrier-16-0-delivery_postlogistics/
If a stock.picking is created and in the same transaction we generate a label, when the webservice returns an error, the module rollbacks the transaction, so 'self' is empty and will fail with: Record does not exist or has been deleted. (Record: stock.picking(8211067,), User: 6) When trying to write the tracking number, and will therefore not raise the details of the error.
The tests from d5c3f73 failed due to partner city being required
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-16.0/delivery-carrier-16.0-delivery_postlogistics Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-16-0/delivery-carrier-16-0-delivery_postlogistics/
0b24d58
to
ad7ffa5
Compare
ad7ffa5
to
9920b76
Compare
@bizzappdev Hi, you can find the solution to external URL call avoid by Odoo on the description. |
|
||
|
||
# This tag removal will allow to call external API URL | ||
@common.tagged("-standard") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This tag allows all traffic to the external URL.
From my understanding, VCR will only listen when use_cassette is in context. Additionally, Odoo has explicitly blocked external URLs, likely for a valid reason. Ideally, the URL used in the cassette and the shipping method for test cases should be set to localhost.
Using localhost should not cause any issues, while bypassing Odoo's URL check could introduce a potential risk. Could you confirm if there is a specific reason for allowing an external URL in this case?
@StephaneMangin
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, when we want to refresh the testcase when the API changes. We want to keep the original URLs and configuration.
Here the call is not done externally, Odoo check the validity of the URL before VCR applies... Which is difficult to get around easily. For now i don't see any risks with this configuration. Later on we could find a way to manage differently this approach or if someone finds it, we would update this module accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the clarification, I agree that these particular test cases and modules do not pose a risk. However, since this is a generic module, what if someone inherits a test case class or a module method that interacts with the external URL? Wouldn't that introduce a potential risk?
Additionally, since Odoo validates the URL before VCR applies, bypassing this check could lead to unforeseen issues in the future. While there may not be immediate concerns, would it be worth exploring an approach in the future where we mock the API response while still keeping the external URL intact in the cassettes? This might help maintain Odoo’s validation integrity while ensuring test cases remain up to date.
Alternatively, you could consider having separate test cases specifically for API changes and tagging them with a -standard
tag, which would serve your purpose while also ensuring test cases remain risk-free and enhance the module’s extensibility.
Includes:
postlogistics_send_shipping
requirements (Using ECO default shipping pricing)Depends on:
To avoid Odoo external URL calls restriction, decorate your test class with
@common.tagged("-standard")
(removing the standard tag which is by default). This way, Odoo doesn't patch therequest.Session.send
method to throw an exception in an external URL call case.