Conversation
Codecov Report
@@ Coverage Diff @@
## develop #1144 +/- ##
===========================================
- Coverage 68.43% 65.24% -3.19%
===========================================
Files 84 86 +2
Lines 8418 8846 +428
===========================================
+ Hits 5761 5772 +11
- Misses 2657 3074 +417 |
|
Hey @felixn, Felix here. ^^ At first glance, your PR looks very good! Mandatory is working code and proper documentation, of which you seem to have included both (I can't test the code since I do not have the required hardware). Further tests are not required. Regarding the Regarding the last test case: It's totally fine to skip the test case if that is not supported, just add this to your test case class (you can of course change the description as you see fit): def test_unique_message_instances(self):
self.skipTest("Creating the test environment with additional buses is not supported") |
|
If you choose to implement the suggested |
felixdivo
left a comment
There was a problem hiding this comment.
Okay, I went through your code line-by-line (except for can/interfaces/etas/boa.py).
This is a well-written contribution! Thank you!
The changes I mentioned are all rather small (I hope), except for the errcheck idea. What do you think?
By the way: A final review by @hardbyte is also required, only then this will be merged.
|
Thanks for the feedback @felixdivo - all valuable, I made the changes you requested. |
|
Thank you for your interest in ETAS driver. |
|
@nbusser, thanks for the mention. Indeed, Philipp Ahrendt and myself also implemented all the bindings for the ETAS interfaces. However, I never implemented the mock-up test thus my pull request failed the auto checks. Since then, I moved to some other projects. I do not think I will go back on this one day. None the less, what we did was tested with a wide variety of ETAS hardware (including the virtual bus) to make sure to capture all the edge cases. |
|
@vincent-mailhol & @nbusser : I see several good ideas from your code that I could adopt - as you mentioned. |
I'm not him, but I'd say it's fine to merge it like this. However, improving the documentation with the small suggestion by @vincent-mailhol would still be useful in this PR. Afterwards, I'd personally say it's ready to be merged. |
@felixn thanks for your contribution. I understand the frustration and uncertainty, I'm really disappointed when I see changes not make it in and also when efforts are duplicated. It's at least partly my fault for trying to stay across all core changes - despite the fact I haven't used CAN professionally in about 7 years(!) I try to ensure we only merge clear and maintainable code but I'm (obviously) not able to keep up. I plan to make a few tweaks over my Christmas break primarily to ensure things are more sustainable. Long story short, as long as a core contributor like @felixdivo approves a change it shouldn't need me. |
|
@hardbyte - thanks for the feedback! No worries, I completely understand. The time and motivation necessary for spare time open source projects is not always the same - at least, that's how it is for me. @felixdivo - thanks for resolving the conflicts, and for proposing to include it in the next release. I made the suggested changes. |
felixdivo
left a comment
There was a problem hiding this comment.
I'm just gonna change this small thing :)

This patch adds support for ETAS CAN Interfaces, based on the ETAS BOA (Basic Open API)
It's ready from a functional point of view.
I'm not sure what else is required for merging - @felixdivo, what do you think?
I tried to follow the steps described in https://github.com/hardbyte/python-can/blob/develop/doc/development.rst#creating-a-new-interfacebackend as well as #1149
I've added a back2back test, which mostly passes - but it can obviously only run successfully if an actual hardware interface is available.

Are further tests, e.g. unit tests with mocked API/HW access, mandatory?