[Framework-Team] PLIP 20144
Timo Stollenwerk
tisto at plone.org
Thu Dec 11 13:54:21 UTC 2014
The discussion has been documented here:
https://docs.google.com/a/plone.org/document/d/1_SCJYQWu2TmMExNQSV8rI7F5oU2iNA6YkpY0vhX-7SA/edit#
Nothing new since the last meeting(s).
Timo
Am 11.12.2014 um 12:49 schrieb Roel Bruggink:
> Please keep all discussions on the mailinglist or PLIP ticket when
> possible, so the process in transparent to all community members.
>
> Cheers!
>
>
> On 11 December 2014 at 11:51, Timo Stollenwerk <tisto at plone.org
> <mailto:tisto at plone.org>> wrote:
>
> Hi,
>
> I just talked to Philip (as discussed at the last FWT meeting). He will
> revert the changes and make a pull request. We should invite him (and
> maybe also Dylan) to the next FWT meeting to discuss the PLIP in detail.
>
> Cheers,
> Timo
>
> Am 09.12.2014 um 13:39 schrieb Johannes Raggam:
> > On Tue, 2014-12-09 at 12:10 +0100, Timo Stollenwerk wrote:
> >> Am 09.12.2014 um 11:16 schrieb Philip Bauer:
> >>> 1. Tests: I realized that most test do not use the dexterity
> types at all. It might be that we miss some problems because of
> that. I changed the tests for plone.app.contentmenu to test both AT
> and DX (https://github.com/plone/plone.app.contentmenu/pull/8) but
> the test-setup is a little cumbersome. We need a canonical
> test-setup to test both frameworks otherwise all packages do it
> differently and future developers will a good reason to hate us.
> >>
> >> Thanks for bringing this up! :)
> >
> > yep.
> >
> >> The initial idea was to move all tests to use Dexterity types or the
> >> p.a.contenttypes fixture (if necessary). I don't think a generic test
> >> fixture that supports both AT and DX is possible.
> >>
> >> Tests with tons of if/else statements for DX/AT are a horrible
> idea in
> >> my optinion. They are a nightmare to maintain, to debug and
> really hard
> >> to understand.
> >
> > In plone.app.event until 1.2 there is a generic test suite for
> > Archetypes and Dexterity. I think, this approach was quite elegant:
> >
> > In
> >
> https://github.com/plone/plone.app.event/blob/1.2.x/plone/app/event/tests/base_setup.py#L32
> there is an ``AbstractSampleDataEvents``, which creates a basic set
> of content to test with. The abstract ``event_factory`` method was
> overridden by AT or DX based unit test classes, like here:
> >
> >
> https://github.com/plone/plone.app.event/blob/1.2.x/plone/app/event/tests/test_event_view.py#L13
> >
> > You see, ``TestEventViewDX`` defines all tests cases and the concrete
> > implementation of ``event_factory`` and uses an DX test layer.
> > ``TestEventViewAT`` below just subclasses the DX one, overrides
> > ``event_factory`` and uses an AT layer:
> >
> https://github.com/plone/plone.app.event/blob/1.2.x/plone/app/event/tests/test_event_view.py#L63
> >
> > So both unit tests classes run the same the test cases.
> >
> > That's possible, because there are AT and DX content type
> > accessors/wrappers, which unify ``set`` and ``get`` access to those
> > types.
> >
> > Initially this was a proof of concept on how to support both
> Archetypes
> > and Dexterity in one package without duplicating code. It works quite
> > well! But we were removing the Archetypes based code from
> > plone.app.event 2.0, since this release is Dexterity only.
> >
> > To the question on what to do with our Plone tests: Instead of
> creating
> > accessor methods for AT and DX content types, I think it's better to
> > rewrite for Dexterity only and move the Archetypes test classes
> into the
> > ATContentTypes package before.
> >
> > Johannes
> >
> >
> >> Therefore, even though it is not perfect, I think we should stick
> with
> >> the approach to test against Dexterity only. For some packages it
> might
> >> be necessary to actually test both, but those should be the exception
> >> from the rule. Most packages just need "some" content object and
> it does
> >> not really matter if it is a DX or AT object.
> >>
> >> One problem I see with that approach is that the p.a.contenttypes
> >> fixture, that most packages use, might be a bit too heavy. If
> >> p.a.contenttypes becomes the de-factor test layer we have to make
> sure
> >> that we keep it lightweight (because it is incredibly hard to
> change a
> >> test fixture that is used by so many packages later and it is
> generally
> >> a bad practice to put stuff into the main fixture if they are only
> >> needed for a couple of tests).
> >>
> >> Therefore we should have a close look at the p.a.contenttypes and
> >> p.a.event test fixture and make sure they are as lightweight as
> possible.
> >>
> >> I agree that we need to write down some guidelines for tests and
> that we
> >> have to work on that. Though, my priorities right now are the control
> >> panels, because they are blocking the Plone 5 beta release. If
> anybody
> >> wants to work on that I'm happy to help though!
> >>
> >> Timo
> >
> _______________________________________________
> Framework-Team mailing list
> Framework-Team at lists.plone.org <mailto:Framework-Team at lists.plone.org>
> https://lists.plone.org/mailman/listinfo/plone-framework-team
>
>
>
>
> --
> Rob Gietema
> https://www.fourdigits.nl/over-ons#roel-bruggink
> <https://www.fourdigits.nl/over-ons#roel-bruggink>
>
> Four Digits BV
> https://www.fourdigits.nl <https://www.fourdigits.nl/> tel: +31 26 4422700
More information about the Framework-Team
mailing list