PLAY PODCASTS
Behavior-Driven vs Test-Driven Development & Using Regex in Python
Episode 239

Behavior-Driven vs Test-Driven Development & Using Regex in Python

The Real Python Podcast · Real Python

February 14, 202557m 3s

Audio is streamed directly from the publisher (dts.podtrac.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

<p>What is behavior-driven development, and how does it work alongside test-driven development? How do you communicate requirements between teams in an organization? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder&rsquo;s Weekly articles and projects.</p> <p>In this episode, we expand on our software testing discussion from two weeks ago by adding behavior-driven development concepts. Christopher describes how BDD correlates with test-driven development and how it fosters collaboration within a team. We discuss building acceptance tests written in plain language and a handy tool for creating them.</p> <p>We also share several other articles and projects from the Python community, including a news roundup, using regular expressions in Python, dealing with missing data in Polars, monkey patching in Django, first steps with Playwright, 3D printing giant things with a Python jigsaw generator, and a query language for JSON.</p> <p>This episode is sponsored by Postman.</p> <div class="alert alert-primary" role="alert"> <p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/building-regexes-python/">Regular Expressions and Building Regexes in Python</a> </p> <p>In this course, you&rsquo;ll learn how to perform more complex string pattern matching using regular expressions, or regexes, in Python. You&rsquo;ll also explore more advanced regex tools and techniques that are available in Python.</p> </div> <p>Topics:</p> <ul> <li>00:00:00 &ndash; Introduction</li> <li>00:02:21 &ndash; PyOhio 2025 July 26-27, 2025 Announced </li> <li>00:02:38 &ndash; Python 3.13.2 and 3.12.9 now available!</li> <li>00:02:52 &ndash; Django bugfix releases issued: 5.1.6, 5.0.12, and 4.2.19</li> <li>00:03:04 &ndash; DjangoCon Europe 2025 - Real Python Podcast</li> <li>00:05:24 &ndash; How to Deal With Missing Data in Polars</li> <li>00:10:29 &ndash; Monkey Patching Django</li> <li>00:15:50 &ndash; Sponsor: Postman</li> <li>00:16:42 &ndash; My First Steps With Playwright</li> <li>00:20:48 &ndash; How to Use Regular Expressions in Python</li> <li>00:25:55 &ndash; Video Course Spotlight</li> <li>00:27:25 &ndash; TDD vs. BDD: What&rsquo;s the Difference?</li> <li>00:50:13 &ndash; 3D Printing Giant Things With a Python Jigsaw Generator</li> <li>00:53:58 &ndash; jmespath.py: Query Language for JSON</li> <li>00:55:58 &ndash; Thanks and goodbye</li> </ul> <p>News:</p> <ul> <li><a href="https://www.pyohio.org/2025/">PyOhio 2025 July 26-27, 2025 Announced</a></li> <li><a href="https://pythoninsider.blogspot.com/2025/02/python-3132-and-3129-now-available.html?utm_source=www.pythonweekly.com&amp;utm_medium=newsletter&amp;utm_campaign=python-weekly-issue-686-february-6-2025">Python 3.13.2 and 3.12.9 now available!</a></li> <li><a href="https://www.djangoproject.com/weblog/2025/feb/05/bugfix-releases/?utm_source=www.pythonweekly.com&amp;utm_medium=newsletter&amp;utm_campaign=python-weekly-issue-686-february-6-2025">Django bugfix releases issued: 5.1.6, 5.0.12, and 4.2.19</a></li> <li><a href="https://pretalx.evolutio.pt/djangocon-europe-2025/schedule/#2025-04-25">DjangoCon Europe 2025: Schedule</a></li> </ul> <p>Topics:</p> <ul> <li><a href="https://realpython.com/polars-missing-data/">How to Deal With Missing Data in Polars</a> &ndash; In this tutorial, you&rsquo;ll learn how to deal with missing data in Polars to ensure it doesn&rsquo;t interfere with your data analysis. You&rsquo;ll discover how to check for missing values, update them, and remove them.</li> <li><a href="https://radiac.net/blog/2025/01/monkeypatching-django/">Monkey Patching Django</a> &ndash; The <a href="https://cur.at/zZVVP7K?m=email&amp;sid=NtE1Fap">nanodjango</a> project is a modification to the Django framework that lets you get started with a single file instead of the usual cookie-cutter directory structure. This is a detailed post explaining how nanodjango monkey patches Django to achieve this result.</li> <li><a href="https://www.djangotricks.com/blog/2024/05/generating-fake-django-model-instances-with-factory-boy/">Fake Django Objects With Factory Boy</a> &ndash; The </li> <li><a href="https://blog.frankel.ch/first-steps-playwright/">My First Steps With Playwright</a> &ndash; Playwright is a browser-based automation tool that can be used for web scraping or testing. This intro article shows you how to use the Python interface to access a page including using cookies.</li> <li><a href="https://blog.appsignal.com/2025/01/15/how-to-use-regular-expressions-in-python.html">How to Use Regular Expressions in Python</a> &ndash; This post explores the basics of regular expressions in Python, as well as more advanced techniques. It includes real-world use cases and performance optimization strategies.</li> </ul> <p>Discussion:</p> <ul> <li><a href="https://semaphoreci.com/blog/tdd-vs-bdd">TDD vs. BDD: What&rsquo;s the Difference?</a> &ndash; Discover the key differences between TDD vs BDD, their workflows, tools, and best practices for developers.</li> <li><a href="https://cucumber.io/">Cucumber</a></li> </ul> <p>Projects:</p> <ul> <li><a href="https://calbryant.uk/blog/3d-printing-giant-things-with-jigsaw-generator/">3D Printing Giant Things With a Python Jigsaw Generator</a> &ndash; This is a long, detailed article on 3D printing objects too large for the printer bed. The author has created dovetail joints to assemble pieces together. He wrote a Python program to automatically split up the larger model files into the jigsaw pieces needed to build a final result.</li> <li><a href="https://github.com/jmespath/jmespath.py">jmespath.py: Query Language for JSON</a></li> </ul> <p>Additional Links:</p> <ul> <li><a href="https://pola.rs/">Polars — DataFrames for the new era</a></li> <li><a href="https://github.com/radiac/nanodjango">nanodjango: Full Django in a single file - views, models, API ,with async support. Automatically convert it to a full project.</a></li> <li><a href="https://github.com/FactoryBoy/factory_boy">factory_boy</a> library is a tool for managing fixtures for your tests. This article shows you how to use it with Django.</li> <li><a href="https://trimesh.org/">trimesh 4.6.2 documentation</a></li> <li><a href="https://pdw.ex-parrot.com/Mail-RFC822-Address.html">Email::RFC822::Address - Regex Recipe</a></li> </ul> <p>Level up your Python skills with our expert-led courses:</p> <ul> <li><a href="https://realpython.com/courses/building-regexes-python/">Regular Expressions and Building Regexes in Python</a></li> <li><a href="https://realpython.com/courses/test-driven-development-pytest/">Test-Driven Development With pytest</a></li> <li><a href="https://realpython.com/courses/set-up-django-project/">How to Set Up a Django Project</a></li> </ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast &amp; join our community of Pythonistas</a></p>