Test & Code

Test & Code

Download on the App Store

Test & Code episodes

  • 88: Error Monitoring, Crash Reporting, Performance Monitoring - JD Trask

    Tools like error monitoring, crash reporting, and performance monitoring are tools to help you create a better user experience and are fast becoming crucial tools for web development and site reliability. But really what are they? And when do you need them?

    You've built a cool web app or service, and you want to make sure your customers have a great experience.

    You know I advocate for utilizing automated tests so you find bugs before your customers do. However, fast development lifecycles, and quickly reacting to customer needs is a good thing, and we all know that complete testing is not possible. That's why I firmly believe that site monitoring tools like logging, crash reporting, performance monitoring, etc are awesome for maintaining and improving user experience.

    John-Daniel Trask, JD, the CEO of Raygun, agreed to come on the show and let me ask all my questions about this whole field.

    Special Guest: John-Daniel Trask.

    49 min
  • 87: Paths to Parametrization - from one test to many

    There's a cool feature of pytest called parametrization.

    It's totally one of the superpowers of pytest.

    It's actually a handful of features, and there are a few ways to approach it.

    Parametrization is the ability to take one test, and send lots of different input datasets into the code under test, and maybe even have different output checks, all within the same test that you developed in the simple test case.

    Super powerful, but something since there's a few approaches to it, a tad tricky to get the hang of.

    Links:

    • git branch — -a : list all branches, -r : just remotes
    • pytest changelog
    • pytest deprecations and removals
    • Python Testing with pytest — Test function parametrization is in chapter 2. Fixture parametrization is in chapter 3.
    • Parametrizing test functions — pytest documentation
    • pytest fixtures — pytest documentation
    20 min
  • 86: Teaching testing best practices with 4 testing maxims - Josh Peak

    You've incorporated software testing into your coding practices and know from experience that it helps you get your stuff done faster with less headache.

    Awesome.

    Now your colleagues want in on that super power and want to learn testing.

    How do you help them?

    That's where Josh Peak is. He's helping his team add testing to their workflow to boost their productivity.

    That's what we're talking about today on Test & Code.

    Josh walks us through 4 maxims of developing software tests that help grow your confidence and proficiency at test writing.

    Special Guest: Josh Peak.

    Links:

    • From Zero to Test: Turning hurdles into steps.
    • Advanced Python Testing — Posts
    • pytest-vcr
    • VCR.py
    • pytest-randomly
    23 min
  • 85: Speed Up Test Suites - Niklas Meinzer

    Good software testing strategy is one of the best ways to save developer time and shorten software development delivery cycle time.

    Software test suites grow from small quick suites at the beginning of a project to larger suites as we add tests, and the time to run the suites grows with it.

    Fortunately, pytest has many tricks up it's sleave to help shorten those test suite times.

    Niklas Meinzer is a software developer that recentely wrote an article on optimizing test suites. In this episode, I talk with Niklas about the optimization techniques discussed in the article and how they can apply to just about any project.

    Special Guest: Niklas Meinzer.

    Links:

    • Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer
    27 min
  • 84: CircuitPython - Scott Shawcroft

    Adafruit enables beginners to make amazing hardware/software projects.

    With CircuitPython, these projects can now use Python.

    The combination of Python's ease of use and Adafruit's super cool hardware and a focus on a successful beginner experience makes learning to write code that controls hardware super fun.

    In this episode, Scott Shawcroft, the project lead, talks about the past, present, and future of CircuitPython, and discusses the focus on the beginner.

    We also discuss contributing to the project, testing CircuitPython, and many of the cool projects and hardware boards that can use CircuitPython, and Blinka, a library to allow you to use "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython," including Raspberry Pi.

    Special Guest: Scott Shawcroft.

    Links:

    • CircuitPython
    • Downloads — All the products that run CircuitPython
    • Learning Guides with CircuitPython
    • Loading CircuitPython on Circuit Playground Express
    • Adafruit Discord Server
    • Scott Shawcroft (@tannewt) / Twitter
    • Adafruit-Blinka
    36 min
  • 83: PyBites Code Challenges behind the scenes - Bob Belderbos

    Bob Belderbos and Julian Sequeira started PyBites a few years ago.

    They started doing code challanges along with people around the world and writing about it.

    Then came the codechalleng.es platform, where you can do code challenges in the browser and have your answer checked by pytest tests. But how does it all work?

    Bob joins me today to go behind the scenes and share the tech stack running the PyBites Code Challenges platform.

    We talk about the technology, the testing, and how it went from a cool idea to a working platform.

    Special Guest: Bob Belderbos.

    Links:

    • PyBites
    • PyBites Code Challenges coding platform
    • Learning Paths
    • Julian's article on whiteboard interviews
    • Selenium running on CodeChalleng.es
    25 min
  • 82: pytest - favorite features since 3.0 - Anthony Sottile

    Anthony Sottile is a pytest core contributor, as well as a maintainer and contributor to

    many other projects. In this episode, Anthony shares some of the super cool features of pytest that have been added since he started using it.

    We also discuss Anthony's move from user to contributor, and how others can help with the pytest project.

    Special Guest: Anthony Sottile.

    Links:

    • pytest documentation
    • pytest Changelog
    • pytest API Reference
    • sponsor pytest
    • getting started contributing to pytest
    • the book: Python Testing with pytest — The fastest way to learn pytest
    37 min
  • 81: TDD with flit

    In the last episode, we talked about going from script to supported package.

    I worked on a project called subark and did the packaging with flit.

    Today's episode is a continuation where we add new features to a supported package and how to develop and test a flit based package.

    Covered:

    • viewing stages of a project with git tags
    • flit support for editable installs
    • flit description entry in pyproject.toml to put README on pypi.
    • development dependencies in pyproject.toml
    • editor layout for optimal TDD-ing
    • test case grouping
    • modifications to traditional TDD that helps me develop faster.
    • code and command snippets from episode:

      For git checkout of versions:

      $ git clone https://github.com/okken/submark.git
      $ cd submark
      $ python3 -m venv venv --prompt submark
      $ source ./bin/activate
      (submark) $ git checkout v0.1
      ... etc ...
      (submark) $ git checkout v0.7

      To grab the latest again:

      (submark) $ git checkout master

      pyproject.toml change for README to show up on pypi:

      [tool.flit.metadata]
      ...
      description-file = "README.md"
      ...

      Adding dev dependencies to pyproject.toml:

      [tool.flit.metadata.requires-extra]
      test = ["pytest", "pytest-cov", "tox"]

      Installing in editable mode (in top level repo directory). works in mac, linux, windows:

      (submark) $ flit install --pth-file

      or for mac/linux:

      (submark) $ flit install -s

      Links:

      • submark · PyPI
      • submark on GitHub
      • The pyproject.toml config file — Flit 1.3 documentation
      • Flit install — Flit 1.3 documentation
      • Test & Code 80: From Python script to Maintainable Package
      26 min
    • 80: From Python script to Maintainable Package

      This episode is a story about packaging, and flit, tox, pytest, and coverage.

      And an alternate solution to "using the src".

      Python makes it easy to build simple tools for all kinds of tasks.

      And it's great to be able to share small projects with others on your team, in your company, or with the world.

      When you want to take a script from "just a script" to maintainable package, there are a few steps, but none of it's hard.

      Also, the structure of the code layout changes to help with the growth and support.

      Instead of just talking about this from memory, I thought it'd be fun to create a new project and walk through the steps, and report back in a kind of time lapse episode. It should be fun.

      Here are the steps we walk through:

      • 0.1 Initial script and tests
      • 0.2 build wheel with flit
      • 0.3 build and test with tox
      • 0.4 move source module into a package directory
      • 0.5 move tests into tests directory
      • Links:

        • submark repo: A Subset of Markdown
        • Flit documentation
        • Coverage.py documentation
        • tox documentation
        22 min
      • 79: Fixing misinformation about software testing

        Some information about software testing is just wrong.

        I'm not talking about opinions. I have lots of opinions and they differ from other peoples opinions. I'm talking about misinformation and old information that is no longer applicable.

        I've ran across a few lateley that I want to address.

        All of the following are wrong:

        1. Integrated tests can't work. I can prove it with wacky math.
        2. Tests have to be blazing fast or they won't get run.
        3. TDD is about design, not about testing.
        4. This episode discusses why these are wrong.

          Links:

          • Why should you write tests? - A Question of Code Podcast
          • Boundaries talk by Gary Bernhardt
          • Integrated Tests Are A Scam - J B Rainsberger
          • UnitTest - Solitary or Sociable - and speed - Martin Fowler
          • Premature optimization is the root of all evil -- DonaldKnuth
          • My reaction to "Is TDD Dead?" - Python Testing
          • Test-induced design damage - DHH
          • Slow database test fallacy - DHH
          • RailsConf 2014 - Keynote: Writing Software - DHH
          • Manifesto for Agile Software Development
          • Apache Beam Contrib Guide, including post commit testing
          23 min

        About Test & Code

        From the publisher's feed

        The Python Test Podcast hosted by Brian Okken

        More shows like Test & Code

        Radiolab by WNYC Studios

        Radiolab

        43,853 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        623 Listeners

        Heavy Networking by Packet Pushers

        Heavy Networking

        327 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        582 Listeners

        Python Bytes by Michael Kennedy and Calvin Hendryx-Parker

        Python Bytes

        213 Listeners

        Darknet Diaries by Jack Rhysider

        Darknet Diaries

        8,059 Listeners

        The Real Python Podcast by Real Python

        The Real Python Podcast

        139 Listeners

        Unexplainable by Vox

        Unexplainable

        2,313 Listeners

        Network Automation Nerds by Packet Pushers

        Network Automation Nerds

        5 Listeners