# Pytest

pytest is a Python testing framework for writing tests and performing functional testing of applications and libraries.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to Review AI-Generated Python Code Efficiently

DevFeed: [How to Review AI-Generated Python Code Efficiently](<https://devfeed.tech/articles/how-to-review-ai-generated-python-code-efficiently-31493.md>)

Original publisher: [Read original article](<https://realpython.com/review-ai-generated-code/>)

Author: Leodanis Pozo Ramos

Published: 2026-09-16T14:00:00Z

Content type: tutorial

Language: en

Sources: [Real Python](<https://devfeed.tech/sources/real-python.md>)

Topics: [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Python](<https://devfeed.tech/topics/python.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding-agents](<https://devfeed.tech/tags/ai-coding-agents.md>), [code](<https://devfeed.tech/tags/code.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [python](<https://devfeed.tech/tags/python.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

This tutorial presents a five-step workflow for reviewing AI-generated Python code. It recommends clarifying the code's intent, running automated checks such as ruff, mypy, bandit, and pytest, inspecting higher-risk areas, and confirming problems by running the code before fixing them.

### Source excerpt

Learn an efficient workflow to review AI-generated code in Python: run ruff, mypy, bandit, and pytest, then catch the bugs agents get wrong.

## Testing Infrastructure Code by Executing Its Real Expressions

DevFeed: [Testing Infrastructure Code by Executing Its Real Expressions](<https://devfeed.tech/articles/testing-infrastructure-code-by-executing-its-real-expressions-34115.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/testing-real-expressions/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-08-28T07:00:00Z

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [Ansible](<https://devfeed.tech/topics/ansible.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Ansible Roles](<https://devfeed.tech/topics/ansible-role.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [code](<https://devfeed.tech/tags/code.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article explains how to test Ansible infrastructure code by rendering the shipped Jinja expression through Ansible's actual templating machinery. It recommends extracting the expression from the role file, using realistic fixture variables, and asserting on the rendered result instead of duplicating the computation in Python.

### Source excerpt

Ansible Templar in pytest: render the shipped combine(recursive=True) expression from defaults/main.yml instead of a shallow Python paraphrase.

## Keeping Documentation Honest with an OpenAPI Snapshot Diff

DevFeed: [Keeping Documentation Honest with an OpenAPI Snapshot Diff](<https://devfeed.tech/articles/keeping-documentation-honest-with-an-openapi-snapshot-diff-34111.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/openapi-docs-contract-test/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-08-25T07:00:00Z

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [JSON](<https://devfeed.tech/topics/json.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [ci](<https://devfeed.tech/tags/ci.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article explains how to keep API documentation aligned with a FastAPI application by generating its OpenAPI schema from the running code, comparing it with a committed snapshot in CI, normalizing the JSON diff, and requiring deliberate snapshot regeneration.

### Source excerpt

FastAPI app.openapi() snapshot test in pytest: fail CI when the live OpenAPI schema drifts from the committed openapi.snapshot.json.

## Testing an Agent Harness Without Ever Calling the Model

DevFeed: [Testing an Agent Harness Without Ever Calling the Model](<https://devfeed.tech/articles/testing-an-agent-harness-without-ever-calling-the-model-34114.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/testing-an-agent-harness/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-07-31T07:00:00Z

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Agent Harness](<https://devfeed.tech/topics/agent-harness.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agent-harness](<https://devfeed.tech/tags/agent-harness.md>), [agents](<https://devfeed.tech/tags/agents.md>), [api](<https://devfeed.tech/tags/api.md>), [network](<https://devfeed.tech/tags/network.md>), [permission](<https://devfeed.tech/tags/permission.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [recording](<https://devfeed.tech/tags/recording.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-testing](<https://devfeed.tech/tags/unit-testing.md>)

### AI overview

This tutorial explains how to unit test a coding agent's tool-call permission layer without calling a model. It recommends separating the decision function from model responses, using recorded real-request fixtures, and keeping the policy module independent of any LLM SDK.

### Source excerpt

Unit testing a coding agent's tool-call permission layer with pytest and recorded fixtures: allow, deny or ask decisions with no model or API key.

## Python in Visual Studio Code - October 2025 Release

DevFeed: [Python in Visual Studio Code - October 2025 Release](<https://devfeed.tech/articles/python-in-visual-studio-code-october-2025-release-20353.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/python/python-in-visual-studio-code-october-2025-release/>)

Author: Luciana Abud

Published: 2025-10-10T17:55:26Z

Content type: release

Language: en

Sources: [Microsoft Python Engineering](<https://devfeed.tech/sources/microsoft-python-engineering.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [.NET 11](<https://devfeed.tech/topics/net-11.md>), [Windows Subsystem for Linux](<https://devfeed.tech/topics/wsl.md>), [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [jupyter](<https://devfeed.tech/topics/jupyter.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [github-copilot](<https://devfeed.tech/tags/github-copilot.md>), [powershell](<https://devfeed.tech/tags/powershell.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [testing](<https://devfeed.tech/tags/testing.md>), [visual-studio-code](<https://devfeed.tech/tags/visual-studio-code.md>), [wsl](<https://devfeed.tech/tags/wsl.md>)

### AI overview

Microsoft announces the October 2025 release of the Python extensions for Visual Studio Code. The update improves Python environment handling, adds a Copy Test ID option for pytest functions, and makes Python virtual-environment activation more reliable across shell creation methods, PowerShell, and WSL.

### Source excerpt

The October 2025 release of the Python and Jupyter extensions for Visual Studio Code are now available. This release includes improvements to the Python Environments extension, Copy Test ID functionality, and enhanced environment activation when using Copilot Chat. Keep on reading to learn more! The post Python in Visual Studio Code - October 2025 Release appeared first on Microsoft for Python Developers Blog.

## Data-driven CI pipeline monitoring with pytest

DevFeed: [Data-driven CI pipeline monitoring with pytest](<https://devfeed.tech/articles/data-driven-ci-pipeline-monitoring-with-pytest-18459.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/data-driven-ci-pipeline-monitoring-with-pytest>)

Author: Juan Madurga

Published: 2023-07-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tinybird](<https://devfeed.tech/sources/tinybird.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [i-built-this](<https://devfeed.tech/tags/i-built-this.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [observability](<https://devfeed.tech/tags/observability.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This article discusses using pytest to monitor CI pipelines with data and observability, helping detect failures that traditional tests may miss.

### Source excerpt

Data-driven CI pipeline monitoring with pytest catches failures traditional tests miss. Add observability to your test suite today.

## Road to 100% Test Coverage on notion-sdk-py

DevFeed: [Road to 100% Test Coverage on notion-sdk-py](<https://devfeed.tech/articles/road-to-100-test-coverage-on-notion-sdk-py-40833.md>)

Original publisher: [Read original article](<https://mutto.fyi/posts/2022/12/road-100-coverage-notion/>)

Published: 2022-12-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Mutt0-ds Notes](<https://devfeed.tech/sources/mutt0-ds-notes.md>)

Topics: [test-coverage](<https://devfeed.tech/topics/test-coverage.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Python](<https://devfeed.tech/topics/python.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Notion](<https://devfeed.tech/topics/notion.md>)

Tags: [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A practical discussion of improving test coverage for notion-sdk-py using pytest. It explains what coverage measures, why 100% coverage does not guarantee meaningful tests, and how testing can reveal areas for improvement.

### Source excerpt

There is something bizarre with me if two of my favourite activities are writing documentation and hitting my head against tests, which are...

## PDFx update and new version release (v1.4.1)

DevFeed: [PDFx update and new version release (v1.4.1)](<https://devfeed.tech/articles/pdfx-update-and-new-version-release-v1-4-1-31857.md>)

Original publisher: [Read original article](<https://www.metachris.dev/2021/04/pdfx-update-and-new-version-release-v1.4.1/>)

Author: Chris Hager

Published: 2021-04-12T00:00:00Z

Content type: release

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [pdf](<https://devfeed.tech/topics/pdf.md>), [Python](<https://devfeed.tech/topics/python.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [PyPI](<https://devfeed.tech/topics/pypi.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [contributors](<https://devfeed.tech/tags/contributors.md>), [coverage](<https://devfeed.tech/tags/coverage.md>), [github](<https://devfeed.tech/tags/github.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [pdfx](<https://devfeed.tech/tags/pdfx.md>), [pypi](<https://devfeed.tech/tags/pypi.md>), [python](<https://devfeed.tech/tags/python.md>), [release](<https://devfeed.tech/tags/release.md>), [tests](<https://devfeed.tech/tags/tests.md>), [update](<https://devfeed.tech/tags/update.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

PDFx, a Python tool and library for extracting text, links, references, and metadata from PDF files and URLs, was updated and released as version 1.4.1. The update includes broader Python compatibility, a switch to pdfminer.six, linting and static checks, tests, formatting, GitHub workflows, improved PDF URL detection, and inclusion of tests in the PyPI tarball.

### Source excerpt

PDFx is a tool to extract text, links, references and metadata from PDF files and URLs. Thanks to several contributors the project received a thorough update and was brought into 2021. The new release of today is PDFx v1.4.1 🎉 PDFx works like this:

## Searching for RH Counterexamples -- Setting up Pytest

DevFeed: [Searching for RH Counterexamples -- Setting up Pytest](<https://devfeed.tech/articles/searching-for-rh-counterexamples-setting-up-pytest-40438.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2020/09/11/searching-for-rh-counterexamples-setting-up-pytest/>)

Published: 2020-09-11T15:51:48Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Pytest](<https://devfeed.tech/topics/pytest.md>), [Python](<https://devfeed.tech/topics/python.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [development-environment](<https://devfeed.tech/tags/development-environment.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [number-theory](<https://devfeed.tech/tags/number-theory.md>), [programming](<https://devfeed.tech/tags/programming.md>), [project-organization](<https://devfeed.tech/tags/project-organization.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [riemann-hypothesis](<https://devfeed.tech/tags/riemann-hypothesis.md>), [setup](<https://devfeed.tech/tags/setup.md>), [shell](<https://devfeed.tech/tags/shell.md>), [software](<https://devfeed.tech/tags/software.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A hands-on tutorial that sets up a Python 3.8 project with pytest and Git, using a search for counterexamples related to the Riemann Hypothesis as the example problem. It explains terminal-based project setup, testing, organization, and how design evolves during development.

### Source excerpt

Some mathy-programmy people tell me they want to test their code, but struggle to get set up with a testing framework. I suspect it's due to a mix of: There are too many choices with a blank slate. Making slightly wrong choices early on causes things to fail in unexpected ways. I suspect the same concerns apply to general project organization and architecture. Because Python is popular for mathy-programmies, I'll build a Python project that shows how I organize my projects and and test my code, and how that shapes the design and evolution of my software.

## Testing an Interactive Voice Response System With Python and Pytest

DevFeed: [Testing an Interactive Voice Response System With Python and Pytest](<https://devfeed.tech/articles/testing-an-interactive-voice-response-system-with-python-and-pytest-33930.md>)

Original publisher: [Read original article](<https://hakibenita.com/python-django-pytest-twilio-ivr>)

Author: Haki Benita

Published: 2020-04-30T21:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Pytest](<https://devfeed.tech/topics/pytest.md>), [Python](<https://devfeed.tech/topics/python.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [business logic](<https://devfeed.tech/topics/business-logic.md>), [Django](<https://devfeed.tech/topics/django.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [automated](<https://devfeed.tech/tags/automated.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [django](<https://devfeed.tech/tags/django.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to write automated tests for a Twilio Interactive Voice Response system built with Python and Django. It focuses on isolating business logic from the third-party service so the logic can be tested separately, using Pytest fixtures and other testing patterns.

### Source excerpt

It can be very challenging to test a system that rely heavily on a third party service such as Twilio. In this article, I show how to organize your code in a way that would isolate your bushiness logic and make it easier for you to test it separately.

## How to Provide Test Fixtures for Django Models in Pytest

DevFeed: [How to Provide Test Fixtures for Django Models in Pytest](<https://devfeed.tech/articles/how-to-provide-test-fixtures-for-django-models-in-pytest-33900.md>)

Original publisher: [Read original article](<https://hakibenita.com/django-pytest-fixtures>)

Author: Haki Benita

Published: 2020-04-07T21:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [django](<https://devfeed.tech/tags/django.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains how to maintain flexible, usable test fixtures for Django models with Pytest. It covers setting up Pytest in a Django project, creating fixtures, defining fixture dependencies, and applying a "factory as a service" pattern to simplify test data setup.

### Source excerpt

One of the most challenging aspects of writing good tests is maintaining test fixtures. Good test fixtures motivate developers to write better tests, and bad fixtures can cripple a system to a point where developers fear and avoid them all together. The article covers everything from setting up Pytest for a Django project, creating test fixtures and how to create dependency between fixtures.

## Outreachy Internship Update: Learning Mozilla's Development Process and Refactoring Marionette's Python Test Runner

DevFeed: [Outreachy Internship Update: Learning Mozilla's Development Process and Refactoring Marionette's Python Test Runner](<https://devfeed.tech/articles/outreachy-halftime-ish-update-20249.md>)

Original publisher: [Read original article](<http://anjana.dev/blog/outreachy-halftime-ish-update/>)

Author: Anjana Sofia Vakil (contact@anjana.dev)

Published: 2016-08-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Mozilla Automation](<https://devfeed.tech/sources/mozilla-automation.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Mozilla](<https://devfeed.tech/topics/mozilla.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Python](<https://devfeed.tech/topics/python.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Pytest](<https://devfeed.tech/topics/pytest.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>)

Tags: [development-process](<https://devfeed.tech/tags/development-process.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [internship](<https://devfeed.tech/tags/internship.md>), [marionette](<https://devfeed.tech/tags/marionette.md>), [mozilla](<https://devfeed.tech/tags/mozilla.md>), [mozreview](<https://devfeed.tech/tags/mozreview.md>), [outreachy](<https://devfeed.tech/tags/outreachy.md>), [pytest](<https://devfeed.tech/tags/pytest.md>), [python](<https://devfeed.tech/tags/python.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [treeherder](<https://devfeed.tech/tags/treeherder.md>)

### AI overview

An Outreachy intern reflects on the first part of an internship with Mozilla, describing the process of learning Mozilla's development tools and workflows. The article also outlines work on test-driven refactoring of Marionette's Python test runner and previews a follow-up post about its test runner and harness.

### Source excerpt

It feels like yesterday that I started my Outreachy internship, but it was actually over 2 months ago! For the last couple of weeks I've been on Outreachy hiatus because of EuroPython, moving from Saarbrücken to Berlin, and my mentor being on vacation. Now I'm back, with 6 weeks left in my internship! So it seems like a good moment to check in and reflect on how things have been going so far, and what's in store for the rest of my time as an Outreachyee. What have I been up to? Learning how to do the work In the rather involved application process for Outreachy, I already had to spend quite a bit of time figuring out the process for making even the tiniest contribution to the Mozilla codebase. But obviously one can't learn everything there is to know about a project within a couple of weeks, so a good chunk of my Outreachy time so far was spent on getting better acquainted with: The tools I've already written about my learning experiences with Mercurial, but there were a lot of other components of the Mozilla development process that I had to learn about (and am still learning about), such as Bugzilla, MozReview, Treeherder, Try, Mach... Then, since the project I'm working focuses on testing, I had to grok things like Pytest and Mock. Since most everything I'm doing is in Python, I've also been picking up useful Python tidbits here and there. The project My internship project, "Test-driven refactoring of Marionette's Python test runner", relates to a component of the Marionette project, which encompasses a lot of moving parts. Even figuring out what Marionette is, what components it comprises, how these interrelate, and which of them I need to know about, was a non-trivial task. That's why I'm writing a couple of posts about the project itself - one down, one to go - to crystallize what I've learned and hopefully make it a little easier for other people to get through the what-even-is-it steps that I've been going through. This post is a sort of "intermission", so sta