Test & Code cover image

Test & Code

Latest episodes

undefined
Aug 17, 2020 • 32min

126: Data Science and Software Engineering Practices ( and Fizz Buzz ) - Joel Grus

Researches and others using data science and software need to follow solid software engineering practices. This is a message that Joel Grus has been promoting for some time. Joel joins the show this week to talk about data science, software engineering, and even Fizz Buzz. Topics include: Software Engineering practices and data science Difficulties with Jupyter notebooks Code reviews on experiment code Unit tests on experiment code Finding bugs before doing experiments Tests for data pipelines Tests for deep learning models Showing researchers the value of tests by showing the bugs found that wouldn't have been found without them. "Data Science from Scratch" book Showing testing during teaching Data Science "Ten Essays on Fizz Buzz" book Meditations on Python, mathematics, science, engineerign and design Testing Fizz Buzz Different algorithms and solutions to an age old interview question. If not Fizz Buzz, what makes a decent coding interview question. pytest hypothesis Math requirements for data science Special Guest: Joel Grus.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:Ten Essays on Fizz Buzz (with discount) by Joel GrusI don't like notebooks. (presentation) ★ Support this podcast on Patreon ★
undefined
Aug 7, 2020 • 1h

125: pytest 6 - Anthony Sottile

pytest 6 is out. Specifically, 6.0.1, as of July 31. And there's lots to be excited about. Anthony Sottile joins the show to discuss features, improvements, documentation updates and more. Full release notes / changelog Some of what we talk about: How to update (at least, how I do it) Run your test suites with 5.4.3 or whatever the last version you were using Update to 6 Run again. Same output? Probably good. If there are any warnings, maybe fix those. You can also run with pytest -W error to turn warnings into errors. Then find out all the cool stuff you can do now New Features pytest now supports pyproject.toml files for configuration. but remember, toml syntax is different than ini files. mostly quotes are needed pytest now includes inline type annotations and exposes them to user programs. Most of the user-facing API is covered, as well as internal code. New command-line flags --no-header and --no-summary A warning is now shown when an unknown key is read from a config INI file. The --strict-config flag has been added to treat these warnings as errors. New required_plugins configuration option allows the user to specify a list of plugins, including version information, that are required for pytest to run. An error is raised if any required plugins are not found when running pytest. Improvements You can now pass output to things like less and head that close the pipe passed to them. thank you!!! Improved precision of test durations measurement. use --durations=10 -vv to capture and show durations Rich comparison for dataclasses and attrs-classes is now recursive. pytest --version now displays just the pytest version, while pytest --version --version displays more verbose information including plugins. --junitxml now includes the exception cause in the message XML attribute for failures during setup and teardown. Improved Documentation Add a note about --strict and --strict-markers and the preference for the latter one. Explain indirect parametrization and markers for fixtures. Bug Fixes Deprecations Trivial/Internal Changes Breaking Changes you might need to care about before upgrading PytestDeprecationWarning are now errors by default. Check the deprecations and removals page if you are curious. -k and -m internals were rewritten to stop using eval(), this results in a few slight changes but overall makes them much more consistent testdir.run().parseoutcomes() now always returns the parsed nouns in plural form. I'd say that's an improvement Special Guest: Anthony Sottile.Sponsored By:Datadog: Modern monitoring & security. See inside any stack, any app, at any scale, anywhere. Visit testandcode.com/datadog to get started.Links:pytest Changelog / Release NotesDeprecations and Removals — pytest documentation ★ Support this podcast on Patreon ★
undefined
Aug 3, 2020 • 44min

124: pip dependency resolver changes

pip is the package installer for Python. Often, when you run pip, especially the first time in a new virtual environment, you will see something like: WARNING: You are using pip version 20.1.1; however, version 20.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. And you should. Because 20.2 has a new dependency resolver. Get in the habit, until October, of replacing pip install with pip install --use-feature=2020-resolver. This flag is new in the 20.2 release. This new pip dependency resolver is the result of a lot of work. Five of the people involved with this work are joining the show today: Bernard Tyers, Nicole Harris, Paul Moore, Pradyun Gedam, and Tzu-ping Chung. We talk about: pip dependency resolver changes user experience research and testing crafting good error messages efforts to improve the test suite testing pip with pytest some of the difficulties with testing pip working with a team on a large project working with a large code base bringing new developers into a large project Special Guests: Bernard Tyers, Nicole Harris, Paul Moore, Pradyun Gedam, and Tzu-ping Chung.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:Changelog — pip 20.2 documentation — Including --use-feature=2020-resolverpypa/pip: The Python package installer — github repotesting pip - documentationpip - The Python Package Installer — pip 20.2 documentationChanges to the pip dependency resolver in 20.2 — Changes to the pip dependency resolver in 20.2 ★ Support this podcast on Patreon ★
undefined
Jul 24, 2020 • 23min

123: GitHub Actions - Tania Allard

Lots of Python projects are starting to use GitHub Actions for Continous Integration & Deployment (CI/CD), as well as other workflows. Tania Allard, a Senior Cloud Developer Advocate at Microsoft, joins the show to answer some of my questions regarding setting up a Python project to use Actions. Some of the topics covered: How to get started with GitHub Actions for a Python project? What are workflow files? Does it matter what the file name is called? Can I have / Should I have more than one workflow? Special Guest: Tania Allard.Sponsored By:Datadog: Modern monitoring & security. See inside any stack, any app, at any scale, anywhere. Visit testandcode.com/datadog to get started.Links:Using Python with GitHub Actions - GitHub Docsawesome-actions — A curated list of awesome actions to use on GitHub ★ Support this podcast on Patreon ★
undefined
Jul 16, 2020 • 36min

122: Better Resumes for Software Engineers - Randall Kanna

A great resume is key to landing a great software job. There's no surprise there. But so many people make mistakes on their resume that can very easily be fixed. Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.Special Guest: Randall Kanna.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:The Standout Developer — link includes discount ★ Support this podcast on Patreon ★
undefined
Jul 10, 2020 • 49min

121: Industrial 3D Printing & Python, Finite State Machines, and Simulating Hardware - Len Wanger

Len Wanger works on industrial 3D printers. And I was pleased to find out that there's a bunch of Python in those printers as well. In this episode we talk about: 3D printers What are the different types of 3D printers? Where are 3D printed industrial parts being used? Why use one type of additive manufacturing over another? Python in 3D printing hardware. What are Finite State Machines, FSMs? Benefits of FSMs for testing, logging, and breaking a complex behavior into small testable parts. Benefits of simulation in writing and testing software to control hardware. Special Guest: Len Wanger.Sponsored By:CircleCI: Continuous integration and deployment with faster performance, complete control, and unparalleled flexibility.Datadog: Modern monitoring & security. See inside any stack, any app, at any scale, anywhere. Visit testandcode.com/datadog to get started.Links:pystate — Python package for co-routine base state machinesImpossible Objects — Composite 3D PrintingFinite-state machine, FSM ★ Support this podcast on Patreon ★
undefined
Jul 3, 2020 • 44min

120: FastAPI & Typer - Sebastián Ramírez

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. Typer is a library for building CLI applications, also based on Python type hints. Type hints and many other details are intended to make it easier to develop, test, and debug applications using FastAPI and Typer. The person behind FastAPI and Typer is Sebastián Ramírez. Sebastián is on the show today, and we discuss: FastAPI Rest APIs Swagger UI Future features of FastAPI Starlette Typer Click Testing with Typer and Click Typer autocompletion Typer CLI Special Guest: Sebastián Ramírez.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:ExplosionFastAPITyperOpenAPI Specification JSON SchemaOAuth 2.0StarlettepydanticSwagger UI — REST API Documentation ToolTesting - TyperClickTesting Click ApplicationsCLI Option autocompletion - TyperTyper CLI - completion for small scripts ★ Support this podcast on Patreon ★
undefined
Jun 26, 2020 • 36min

119: Editable Python Installs, Packaging Standardization, and pyproject.toml - Brett Cannon

There's stuff going on in Python packaging and pyproject.toml. Brett and I talk about some upcoming work on Python packaging, such as: editable installs the need for standardization configuration of other tools in pyproject.toml And then get off on tangents and talk about: why it's good to have packages like pip, toml, setuptools, wheel, etc not part of the standard library should we remove some stuff from the standard library the standard library using unittest for testing the standard library why not hypothesis I didn't bring up "why not pytest?" but you know I was thinking it. why CPython and not C++Python and more Special Guest: Brett Cannon.Sponsored By:CircleCI: Continuous integration and deployment with faster performance, complete control, and unparalleled flexibility.Datadog: Modern monitoring & security. See inside any stack, any app, at any scale, anywhere. Visit testandcode.com/datadog to get started.Links:episode 52: pyproject.toml : the future of Python packaging - Brett CannonPython Packaging AuthorityPEP 517 -- A build-system independent format for source treesPEP 518 -- Specifying Minimum Build System Requirements for Python ProjectsWhat the heck is pyproject.toml?Flit PoetryensconstomlsetuptoolsdistutilspipHTTPX ★ Support this podcast on Patreon ★
undefined
Jun 26, 2020 • 43min

118: Code Coverage and 100% Coverage

Code Coverage or Test Coverage is a way to measure what lines of code and branches in your code that are utilized during testing. Coverage tools are an important part of software engineering. But there's also lots of different opinions about using it. Should you try for 100% coverage? What code can and should you exclude? What about targets? I've been asked many times what I think about code coverage or test coverage. This episode is a train of thought brain dump on what I think about code coverage. We'll talk about: how I use code coverage to help me write source code line coverage and branch coverage behavior coverage using tests to ask and answer questions about the system under test how to target coverage just to the code you care about excluding code good reasons and bad reasons to exclude code And also the Pareto Principle or 80/20 rule, and the law of diminishing returns and how that applies (or doesn't) to test coverage.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:Coverage.pypytest-cov ★ Support this podcast on Patreon ★
undefined
Jun 18, 2020 • 51min

117: Python extension for VS Code - Brett Cannon

The Python extension for VS Code is most downloaded extension for VS Code. Brett Cannon is the manager for the distributed development team of the Python extension for VS Code. In this episode, Brett and I discuss the Python extension and VS Code, including: pytest support virtual environment support how settings work, including user and workspace settings multi root projects testing Python in VS Code debugging and pydevd jump to cursor feature upcoming features Special Guest: Brett Cannon.Sponsored By:PyBites Code Challenges: Get some expert help in setting your career strategy in Python.ConfigCat.com: Release features faster with less risk with ConfigCat feature flags. Promo Code: TESTANDCODELinks:Brett Cannon on ChangelogJohn WickBallerinaFrank Willison AwardPython extension for VS Codeepisode 117 : How IDEs can make software testing easier - Paul EverittUser and Workspace Settingsvirtual environmentsTesting Python in VS CodepydevdJump to Cursor in Feb VS Code Python blog ★ Support this podcast on Patreon ★

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode