Test & Code - Python Testing & Development

  • Author: Vários
  • Narrator: Vários
  • Publisher: Podcast
  • Duration: 122:32:21
  • More information

Informações:

Synopsis

Test & Code is a weekly podcast hosted by Brian Okken.The show covers a wide array of topics including software development, testing, Python programming, and many related topics. When we get into the implementation specifics, that's usually Python, such as Python packaging, tox, pytest, and unittest. However, well over half of the topics are language agnostic, such as data science, DevOps, TDD, public speaking, mentoring, feature testing, NoSQL databases, end to end testing, automation, continuous integration, development methods, Selenium, the testing pyramid, and DevOps.

Episodes

  • 157: pre-commit - Anthony Sottile

    11/06/2021 Duration: 40min

    pre-commit started as a framework for running linters and code formatters during git actions via git hooks. It's grown and expanded and now supports an extensive list of languages and actions and manual running of actions. But even at it's core, it's great for letting computers nitpick about whitespace and formatting, so that code reviews can focus on architecture and design.Anthony Sottile discusses pre-commit, for using locally by developers, and pre-commit.ci, which can run actions during merge requests."Git hook scripts are useful for identifying simple issues before submission to code review. We run our hooks on every commit to automatically point out issues in code such as missing semicolons, trailing whitespace, and debug statements. By pointing these issues out before code review, this allows a code reviewer to focus on the architecture of a change while not wasting time with trivial style nitpicks." - pre-commit.com"Developers spend a fair chunk of time during their development flow fixing relatively

  • 156: Flake8: Python linting framework with Pyflakes, pycodestyle, McCabe, and more - Anthony Sottile

    03/06/2021 Duration: 21min

    Flake8 is a command-line tool for linting Python projects.  By default, it includes lint checks provided Pyflakes, pycodestyle, and McCabe It's also a platform, and allows plugins to extend the checks. Flake8 will run third-party extensions if they are found and installed.But what does all of that mean?Anthony Sottile is a maintainer of flake8 and has kindly offered to explain it to us.Links:Flake8: Your Tool For Style Guide Enforcementpyflakespycodestylemccabepyflakes/messages.pyflake8 Error / Violation Codeswemake-python-styleguideflake8-typing-importstox automation projectNoxpre-commit

  • 155: Four Questions to Ask Frequently During Software Projects - Tim Ottinger

    28/05/2021 Duration: 21min

    Tim Ottinger has four questions that work great in many situations, from doing homework, to cooking, to writing code, to entire software projects.They are actually awesome questions to ask during a software project.We discuss the questions, where they came from, and look at some uses in software.The questions:What is it that needs to be done?What do we need in order to do it?Where can we get what we need?How can we tell if we’re doing it right?Bonus question that can be swapped out for #1:What's the most important thing that it doesn't do yet?Links:The Four Questions

  • 154: Don't Mock your Database - Jeff Triplett

    21/05/2021 Duration: 29min

    You need tests for your web app. And it has a database. What do you do with the database during testing? Should you use the real thing? or mock it? Jeff Triplett says don't mock it.In this episode, we talk with Jeff about testing web applications, specifically Django apps, and of course talk about the downsides of database mocking.Links:"

  • 153: Playwright for Python: end to end testing of web apps - Ryan Howard

    14/05/2021 Duration: 31min

    Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin.Links:Playwright for PythonWhy Playwright?playwright-pytest

  • 152: Python Packaging - Brett Cannon

    07/05/2021 Duration: 48min

    I always learn a lot when I talk to Brett, and this episode is no exception. We talk about the packaging workflow, tools, changes, pyproject.toml, flit, setuptools, and so much more. I hope you learn as much as I did in this great discussion.Links:pytest-srcpathsPython Packaging User Guidepypa/packaging: Core utilities for Python packagesflit and requires-pythonExtending and Embedding the Python Interpreter — Python 3.9.2 documentationFlitsetuptoolsPEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.orgPEP 517 -- A build-system independent format for source trees | Python.orgFlit editable installs with --symlink or --pth-filePEP 440 -- Version Identification and Dependency Specification | Python.orgSpecifying requires-python with flitwheelUniversal 1 binaryUniversal 2 binaryCython: C-Extensions for PythonCFFIpybind11: Seamless operability between C++11 and PythonCondaconda environmentsconda-forgeVaultsOfParnassus

  • 151: Python Adventure - Brandon Rhodes

    28/04/2021 Duration: 55min

    Adventure, or Colossal Cave Adventure, was written between 1975 and 1977 in Fortran. Brandon Rhodes ported it to Python 3, initial release in 2011, and still maintains it. We talk to Brandon about this wonderful game.YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING. AROUND YOU IS A FOREST. A SMALL STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY. >>> east A bit later... IT IS NOW PITCH DARK. IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT. >>> light(lamp) YOUR LAMP IS NOW ON. YOU ARE IN A DEBRIS ROOM FILLED WITH STUFF WASHED IN FROM THE SURFACE. A LOW WIDE PASSAGE WITH COBBLES BECOMES PLUGGED WITH MUD AND DEBRIS HERE, BUT AN AWKWARD CANYON LEADS UPWARD AND WEST. A NOTE ON THE WALL SAYS ... What's happening is that I'm playing adventure, which you can pip install thanks to Brandon Rohdes. Adventure is a faithful port to Python 3 from the original 1977 FORTRAN code by Crowther and Woods that lets you explore Colossal Cave, where others have found fortunes in treasur

  • 150: A Practical Testing Strategy

    15/04/2021 Duration: 10min

    Coming up with a testing strategy doesn't have to be stressful. Prioritizing features to test, and generating test cases for each feature can be fairly quick and painless. This episode covers a strategy for both that can be applied to many types of software.

  • 149: I don't test my code, "crappy Python" is all I write - Corey Quinn

    31/03/2021 Duration: 49min

    Corey Quinn is the Chief Cloud Economist at The Duckbill Group. He's also a podcaster and writes a newsletter. And he also automates things with Python. But he doesn't write tests. Let's find out why.Reason for the interview. Rough summary of a twitter conversation:Corey: What podcasts should I try to get an invite onto?ToonArmyCaptain: Python Bytes, Test & Code, Talk PythonCorey: But... I don't test my code, "crappy Python" is all I write, and I'd feel like a giant imposter. So yeah, I'd be game. linkSo here we are. This diagram is referenced in the show, the Last Week In AWS Newsletter Production Pipeline.Special Guest: Corey Quinn.Links:Last Week in AWS

  • 148: Coverage.py and testing packages

    12/03/2021 Duration: 13min

    How do you test installed packages using coverage.py? Also, a couple followups from last week's episode on using coverage for single file applications. Links:episode 147: Testing Single File Python Applications/Scripts with pytest and coverageSpecifying source files — Coverage.py documentationTesting & Packaging - Hynekack

  • 147: Testing Single File Python Applications/Scripts with pytest and coverage

    06/03/2021 Duration: 11min

    Have you ever written a single file Python application or script? Have you written tests for it? Do you check code coverage?This is the topic of this weeks episode, spurred on by a listener question.The questions:For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?If I can, can I use code coverage on it?The example code discussed in the episode: script.pydef foo(): return 5 def main(): x = foo() print(x) if __name__ == '__main__': # pragma: no cover main() ## test code # To test: # pip install pytest # pytest script.py # To test with coverage: # put this file (script.py) in a directory by itself, say foo # then from the parent directory of foo: # pip install pytest-cov # pytest --cov=foo foo/script.py # To show missing lines # pytest --cov=foo --cov-report=term-missing foo/script.py def test_foo(): assert foo() == 5 def test_main(capsys): main() captured = capsys.readouterr() assert captured.out == "5\n

  • 146: Automation Tools for Web App and API Development and Maintenance - Michael Kennedy

    28/02/2021 Duration: 47min

    Building any software, including web apps and APIs requires testing. There's automated testing, and there's manual testing. In between that is exploratory testing aided by automation tools. Michael Kennedy joins the show this week to share some of the tools he uses during development and maintenance.We talk about tools used for semi-automated exploratory testing.  We also talk about some of the other tools and techniques he uses to keep Talk Python Training, Talk Python, and Python Bytes all up and running smoothly. We talk about:Postmanngroksitemap link testingscripts for manual processesusing failover servers during maintenance, redeployments, etcgitHub webhooks and scripts to between fail over servers and production during deployments automaticallyfloating IP addresses services to monitor your site: StatusCake, BetterUptimethe affect of monitoring on analyticscrash reporting: Rollbar, Sentryresponse timesload testing: LocusLinks:Python Bytes PodcastTalk Python To Me PodcastTalk Python TrainingPostmanngrokS

  • 145: For Those About to Mock - Michael Foord

    18/02/2021 Duration: 48min

    A discussion about mocking in Python with the original contributor of unittest.mock, Michael Foord.Of course we discuss mocking and unittest.mock. We also discuss:testing philosophyunit testing and what a unit isTDDwhere Michael's towel is, and what colorMicheal was instrumental in the building of testing tools for Python, and continues to be a pragmatic source of honest testing philosopy in a field that has a lot of contradictory information.Links:unittest.mock - Python docsMocks Aren't Stubs - Martin Fowlerpytest-mockmock.patchAutospeccingArrange Act Asserttesting-in-python mailing listClassical and Mockist Testing — Classical and Mockist Testing Test First Programming / Test First Developmentepisode 102: Cosmic Python, TDD, testing and external dependencies - Harry Percivalepisode 132: mocking in Python - Anna-Lena Popkespytestunittest - Python docspytest assert usage30 best practices for software development and testing | Opensource.com

  • 144: TDD in Science - Martin Héroux

    13/02/2021 Duration: 52min

    Test Driven Development, TDD, is not easy to incorporate in your daily development. Martin and Brian discuss TDD and testing and Martin's experience with testing, TDD, and using it for code involved with scientific research. We discuss lots of topics around this, including:What is TDD?Should research software be tested in order to be trusted?Time pressure and the struggle to get code done quickly. How do you make time for tests also?Is testing worth it for code that will not be reused?Sometimes it's hard to know how to test something.Maybe people should learn to test alongside learning how to code.A desire for a resource of testing concepts for non-CS people.Are the testing needs and testing information needs different in different disciplines? Biology, Physics, Astrophysics, etc. Do they have different testing needs?Do we need a "how to test" resource for each?Special Guest: Martin Héroux.Links:Joy Division Album Coverepisode 140: Testing in Scientific Research and Academia - Martin Héroux — Martin's previou

  • 143: pytest markers - Anthony Sottile

    07/02/2021 Duration: 39min

    Completely nerding out about pytest markers with Anthony Sottile.Some of what we talk about:Running a subset of tests with markers.Using marker expressions with and, or, not, and parentheses.Keyword expressions also can use and, or, not, and parentheses.Markers and pytest functionality that use mark, such as parametrize, skipif, etc.Accessing markers with itermarkers and get_closest_marker through item.Passing values, metadata through markers to fixtures or hook functions.Links:Registering markersslow marker example in pytest documentation — Control skipping of tests according to command line optionpytest-repeat · PyPIsource code for pytest-repeatWorking with custom markers — pytest documentationUsing -k expr to select tests based on their nameMarker revamp and iteration, Historical Notes — pytest documentation

  • 142: MongoDB - Mark Smith

    25/01/2021 Duration: 34min

    MongoDB is possibly the most recognizable NoSQL document database. Mark Smith, a developer advocate for MongoDB, answers my many questions about MongoDB. We cover some basics, but also discuss some advanced features that I never knew about before this conversation.Special Guest: Mark Smith.Links:MongoDBEverything You Know About MongoDB is Wrong!Implementing Event Sourcing and CQRS pattern with MongoDB

  • 141: Visual Testing - Angie Jones

    30/12/2020 Duration: 30min

    Visual Testing has come a long way from the early days of x,y mouse clicks and pixel comparisons. Angie Jones joins the show to discuss how modern visual testing tools work and how to incorporate visual testing into a complete testing strategy. Some of the discussion:Classes of visual testing: problems with pixel to pixel testingDOM comparisons, css, html, etc.AI driven picture level testing, where failures look into the DOM to help describe the problem. Where visual testing fits into a test strategy.Combining "does this look right" visual testing with other test workflows."A picture is worth a thousand assertions" - functional assertions built into visual testing.Baselining pictures in the test workflow.Also discussed:automation engineerTest Automation UniversityLinks:Test Automation University

  • 140: Testing in Scientific Research and Academia - Martin Héroux

    18/12/2020 Duration: 47min

    Scientists learn programming as they need it. Some of them learn it in college, but even if they do, that's not their focus. It's not surprising that sharing the software used for scientific research and papers is spotty, at best. And what about testing? We'd hope that the software behind scientific research is tested. But why would we expect that? We're lucky if CS students get a class or two that even mentions automated tests. Why would we expect other scientists to just know how to test their code?Martin works in research and this discussion is about software and testing in scientific research and academia.Special Guest: Martin Héroux.Links:Python Testing with pytest: Simple, Rapid, Effective, and ScalableTest Driven Development: By ExampleMy reaction to "Is TDD Dead?" - Python TestingMartinHeroux/pliffy: Plotting differences with PythonPyBites Code ChallengesPython MorselsMartin Héroux (@martin_heroux) / TwitterScientifically Sound‪Martin Héroux‬ - ‪Google Scholar‬spike2py · PyPIpytest-mpl · PyPI

  • 139: Test Automation: Shifting Testing Throughout the Software Lifecycle - Nalin Parbhu

    04/12/2020 Duration: 35min

    Talking with Nalin Parbhu about the software evolution towards more test automation and the creation of Infuse and useMango.We talk a software development and "shift left" where automated tests and quality checks have moved earlier into the software lifecycle.Software approaches and where quality fits inShift leftTest automationRoles of software developers, SDETs (software development engineer in test), testers, QA, etc.Developers doing testing and devopsAutomated testing vs manual testingRegression testing, UI testing, black bock testingUnit testing, white box, API, end to end testingUser acceptance testing (UAT)Mullet Methodology (Agile at the front, Waterfall at the back)Waterwheel Methodology (Requirements -> iterative development -> QA)What's an agile team?Developer resistance to testingManifesto for agile software developmentIterative developmentAdapting to changeAgility: being able to change course quicklySpecial Guests: Nalin Parbhu and Ola Omiyale.

  • 138: Mutation Testing in Python with mutmut - Anders Hovmöller

    19/11/2020 Duration: 28min

    Your test suite tells you about the quality of your code under test. Mutation testing is a way to tell you about the quality of your test suite. Anders Hovmöller wrote mutmut for mutation testing in Python, and can be used with pytest, unittest, and others. In this episode, Anders explains mutation testing, how mutation testing with mutmut works, and good workflows.Special Guest: Anders Hovmöller.Links:mutmut · PyPIcosmic-ray · PyPIMutPy · PyPIparso · PyPImutmut documentationNed Batchelder article on mutmut

page 5 from 12