Slide 1

Slide 1 text

Érico Andrei | https://ericof.com | @[email protected] | @ericof | Plone + pytest: Tips & Tricks Plone Conference 2024

Slide 2

Slide 2 text

Plone ❤ Tests

Slide 3

Slide 3 text

"Untested code is broken code" • First test: 2002-10-07 • unittest, unittest2 • Robot Framework, Selenium, Cypress Testing with Plone

Slide 4

Slide 4 text

pytest

Slide 5

Slide 5 text

A taste acquired when coding modern Python code • Simple & "Pythonic" • Dependency injection • Large ecosystem of plugins • Support for unittest • Brazilian maintainer Ich ❤ pytest

Slide 6

Slide 6 text

Less is more unittest pytest

Slide 7

Slide 7 text

Plone ❤ pytest

Slide 8

Slide 8 text

• Built on top of zope.pytest • Provides Fixtures and Helpers • Already the default implementation on • cookieplone-templates pytest-plone

Slide 9

Slide 9 text

Growing adoption Distributions, new addons, old addons • plone.distribution • plone.exportimport • plonegovbr.intranet • pas.plugins.keycloak_groups • collective.mastodon • collective.bluesky • collective.blog • pas.plugins.oidc • kitconcept.solr • contentrules.slack • collective.contact_behaviors • collective.person • collective.casestudy • pas.plugins.memberpropertytogroup

Slide 10

Slide 10 text

Tips & Tricks

Slide 11

Slide 11 text

Golden Rules

Slide 12

Slide 12 text

Plone code Use classes

Slide 13

Slide 13 text

Helper code Use functions

Slide 14

Slide 14 text

Leverage conftest.py Groups tests in folders with their own conftest

Slide 15

Slide 15 text

Use Fixtures

Slide 16

Slide 16 text

Use Fixtures

Slide 17

Slide 17 text

Pytest plugins

Slide 18

Slide 18 text

Examples

Slide 19

Slide 19 text

Package and Project Pro fi le version

Slide 20

Slide 20 text

Package and Project Addon installed

Slide 21

Slide 21 text

Package and Project Dependencies will be installed

Slide 22

Slide 22 text

Package and Project Testing uninstall

Slide 23

Slide 23 text

Content types FTI and Factory

Slide 24

Slide 24 text

Content types Behaviors

Slide 25

Slide 25 text

Content types Creation

Slide 26

Slide 26 text

Content types Indexing

Slide 27

Slide 27 text

plone-pytest 1.0 is coming

Slide 28

Slide 28 text

I will sprint on plone-pytest

Slide 29

Slide 29 text

/ericof @ericof @[email protected] @ericof.com