On Mon, Jun 15, 2026 at 7:01 PM Ivan Zhakov <[email protected]> wrote:
> On Wed, 3 Jun 2026 at 20:48, Daniel Sahlberg <[email protected]> > wrote: > >> Den ons 3 juni 2026 kl 03:09 skrev Branko Čibej <[email protected]>: >> >> [...] > >> Given that we currently have 3 tests that produce invalid XML, and we >>> didn't even know about it until I added XML validation, I think we should >>> go the other way: make the XML output validation in tests mandatory and >>> default unless explicitly disabled during the test run. Right now, we're >>> breaking our own API contract. >>> >>> "Let's not test because it's not convenient" is not an attitude that I >>> can support. >>> >> >> I agree that we should test it but I also feel a bit uncomfortable seeing >> the test suite download something from the internet. >> >> I don't see a problem if the test suite fail by default if lxml (or other >> dependencies) isn't installed beforehand. I think it would be perfectly >> fine to require someone running the test suite to actually install >> dependencies on their system. Of course we should then document the >> required modules in INSTALL, I'm happy to help doing that. >> >> This approach sounds good to me. > > As an option, I could create a branch that switches to using the installed > lxml and either skips or fails the tests otherwise. Having a branch like > this might help in moving things forward, if there's rough consensus that > it is on the list of possible options. > > Another potential way forward would be to drop full XML schema validation > in favor of simply parsing the XML using the built-in Python XML parser to > check its structural validity. This would still catch the cases where we > produce entirely invalid XML and can be done without third-party > dependencies. > > -- > Ivan Zhakov > I like the first idea better: to use the installed lxml, do the best validation we can, and fail the test if lxml isn't available. (A skipped test likely won't be noticed but a failed test will be.) I think that gives a good balance between everyone's concerns. Cheers, Nathan

