[cctbxbb] Native python unittests for the libtbx testing framework

Oleg Sobolev osobolev at lbl.gov
Tue May 19 09:07:41 PDT 2015


Hi All,

Although Pavel's concerns are totally valid, especially from "senior
developer" point of view, I'd like to outline my opinion on this proposal.
Generally, I would prefer well-established, supported and maintained
external tool for whatever task we are trying to accomplish, if such a tool
exists.

Pros here are:
 - No need to reinvent the wheel
 - No need to maintain home-made tool
 - No need to maintain documentation and teach newcomers how to use this
tool.
 - We eventually may have 'extra' functionality for free when broader user
community of the tool starts to use it (Just to name a few: framework
support, analytic tools)

Cons:
 - Usually we don't have a full control over the external tool
 - If the analog is already implemented and tested and stable (see libtbx
testing world) it is really hard to convince ourselves why even think about
something else.

I acknowledge that libtbx testing may be implemented before python unit
tests. I'd like to point that clarity and atomicity of tests is depend
greatly on the developer who writing it, not on the testing framework.

I think that cctbx project would benefit if tested and working support of
python unittest functionality would be in place at least as a spare wheel
if something will go wrong with libtbx testing.

Therefore, in my opinion, Diamond people should try to implement this idea
in some small part (submodule, etc), test it, probably come up with some
guidelines tailored to use of unittest in cctbx. I'm sure that it should be
possible to demonstrate that libtbx tests are not as different as one may
think and the difference may reside only in class/function headers.

Best regards,
Oleg Sobolev.

On Tue, May 19, 2015 at 3:56 AM, <Graeme.Winter at diamond.ac.uk> wrote:

> HI All,
>
> I would like to echo these comments - there are times when cctbx can feel
> "different at any cost" which continually makes it harder to encourage
> people to adopt it as a basis for doing methods development. We should
> welcome opportunities to make things more pythonic when they do not break
> what we have at the moment. The testing is one such example.
>
> I appreciate that many of the "differences" are for a real reason, but
> equally saying "we don't do python unit tests, we do it *our* way" could
> easily be interpreted as being ... unhelpful ... to the new user or
> developer. I for one want these people to contribute to the project and
> make it better!
>
> Here at Diamond we have completely committed to using cctbx for a really
> rather large range of things, but even so persuading other people here to
> also use it is harder than it really needs to be. Installation complexity
> is just one reason...
>
> Best wishes Graeme
>
> -----Original Message-----
> From: cctbxbb-bounces at phenix-online.org [mailto:
> cctbxbb-bounces at phenix-online.org] On Behalf Of Jan Marten Simons
> Sent: 19 May 2015 11:22
> To: cctbx mailing list
> Subject: Re: [cctbxbb] Native python unittests for the libtbx testing
> framework
>
> Am Freitag 15 Mai 2015 18:07:33 schrieb Pavel Afonine:
> > Hi Markus,
> >
> > lucky you, I wish I have time for side projects!
> >
> > I've been working on cctbx (and writing tests!) for the past 12 years
> > and can't name any problem using "libtbx testing world". Most tests
> > are written this way. Why I am not so keen to use an alternative?
> >     - why introduce inconsistency for no obvious clear pressing reasons;
> >     - I have no spare time to learn and get used to an alternative
> > framework (again, for no obvious clear pressing reason);
> >     - some rare developers (mostly postdocs that come and go) used
> > Python test framework in the past on the code that I work too and that
> > I have to maintain when people are gone. I find it is an irritating
> > overhead for me dealing with these tests, so typically I bother to
> > re-write them to use libtbx tools.
>
>
> Hi Pavel,
>
> those are sound and valid reasons from your point of view. But please also
> consider this alternative view:
> Coming from other python projects people are likely to have experience
> with the python unit test framework. As cctbx is using its own testing
> functionality people might be put off from writing tests or at least have
> to overcome this additional barrier on entry.
>
> I'm a strong supporter of sticking/moving to standards like PEP0008 [1] or
> pip/whl* based installs as conforming to those helps people to quickly
> find their way into the code.
>
> * wouldn't it be great if one could simply tell people this: "To install
> cctbx simply type 'pip install cctbx' in your terminal."?
>
> [1] https://www.python.org/dev/peps/pep-0008/
>
>
> With regards,
>
>  Dipl. Phys.
>   Jan M. Simons
>
> Institute of Crystallography
> RWTH Aachen University
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
> --
> This e-mail and any attachments may contain confidential, copyright and or
> privileged material, and are for the use of the intended addressee only. If
> you are not the intended addressee or an authorised recipient of the
> addressee please notify us of receipt by returning the e-mail and do not
> use, copy, retain, distribute or disclose the information in or attached to
> the e-mail.
> Any opinions expressed within this e-mail are those of the individual and
> not necessarily of Diamond Light Source Ltd.
> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
> attachments are free from viruses and we cannot accept liability for any
> damage which you may sustain as a result of software viruses which may be
> transmitted in or with the message.
> Diamond Light Source Limited (company no. 4375679). Registered in England
> and Wales with its registered office at Diamond House, Harwell Science and
> Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/cctbxbb/attachments/20150519/39a97b08/attachment.htm>


More information about the cctbxbb mailing list