<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheet.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <atom:link rel="self" type="application/atom+xml" href="https://pythontest.com/testandcode_feed.xml" title="MP3 Audio"/>
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com/"/>
    <podcast:podping usesPodping="true"/>
    <title>Test &amp; Code</title>
    <itunes:new-feed-url>https://pythontest.com/testandcode_feed.xml</itunes:new-feed-url>
    <description>The Python Test Podcast hosted by Brian Okken</description>
    <copyright>© 2024 Brian Okken</copyright>
    <podcast:guid>938656b9-9b21-5e3c-8130-4f3b3aa16513</podcast:guid>
    <podcast:locked owner="testandcode@pythontest.com">no</podcast:locked>
    <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    <language>en-us</language>
    <pubDate>Thu, 21 Aug 2025 11:35:47 -0700</pubDate>
    <lastBuildDate>Thu, 21 Aug 2025 11:36:24 -0700</lastBuildDate>
    <link>https://pythontest.com/testandcode</link>
    <image>
      <url>https://pythontest.com/img/test_and_code.jpg</url>
      <title>Test &amp; Code</title>
      <link>https://pythontest.com/testandcode</link>
    </image>
    <itunes:category text="Technology"/>
    <itunes:category text="Education">
      <itunes:category text="How To"/>
    </itunes:category>
    <itunes:type>episodic</itunes:type>
    <itunes:author>Brian Okken</itunes:author>
    <itunes:image href="https://pythontest.com/img/test_and_code.jpg"/>
    <itunes:summary>The Python Test Podcast hosted by Brian Okken</itunes:summary>
    <itunes:subtitle>The Python Test Podcast hosted by Brian Okken.</itunes:subtitle>
    <itunes:keywords>python, programming, software, testing,</itunes:keywords>
    <itunes:owner>
      <itunes:name>Brian Okken</itunes:name>
    </itunes:owner>
    <itunes:complete>No</itunes:complete>
    <itunes:explicit>No</itunes:explicit>
    <item>
      <title>238: So Long, and Thanks for All the Fish</title>
      <itunes:episode>238</itunes:episode>
      <podcast:episode>238</podcast:episode>
      <itunes:title>238: So Long, and Thanks for All the Fish</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7784e514-13d4-4275-a483-a6d7ed390a35</guid>
      <link>https://pythontest.com/testandcode/episodes/so-long-and-thanks-for-all-the-fish</link>
      <description>
        <![CDATA[<p>A farewell to a fun 10 years.</p><p>Also, I should have tested it better. :)<br>In the audio I got the numbers wrong.  Doh!<br>This is episode 238, not 237. Oh well.</p><p>I'll still be around, of course, at:</p><ul><li><a href="https://pythontest.com">pythontest.com</a> - where I write about developing software with tests</li><li><a href="https://pythonbytes.fm">pythonbytes.fm </a>- Python news and headlines, delivered directly to your earbuds</li></ul><p>Thanks for all the fun over the last 10 years.<br>I wish you the best.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A farewell to a fun 10 years.</p><p>Also, I should have tested it better. :)<br>In the audio I got the numbers wrong.  Doh!<br>This is episode 238, not 237. Oh well.</p><p>I'll still be around, of course, at:</p><ul><li><a href="https://pythontest.com">pythontest.com</a> - where I write about developing software with tests</li><li><a href="https://pythonbytes.fm">pythonbytes.fm </a>- Python news and headlines, delivered directly to your earbuds</li></ul><p>Thanks for all the fun over the last 10 years.<br>I wish you the best.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 15 Aug 2025 13:20:27 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/238.mp3" length="2280354" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>141</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A farewell to a fun 10 years.</p><p>Also, I should have tested it better. :)<br>In the audio I got the numbers wrong.  Doh!<br>This is episode 238, not 237. Oh well.</p><p>I'll still be around, of course, at:</p><ul><li><a href="https://pythontest.com">pythontest.com</a> - where I write about developing software with tests</li><li><a href="https://pythonbytes.fm">pythonbytes.fm </a>- Python news and headlines, delivered directly to your earbuds</li></ul><p>Thanks for all the fun over the last 10 years.<br>I wish you the best.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>237: FastAPI Cloud - Sebastián Ramírez</title>
      <itunes:episode>237</itunes:episode>
      <podcast:episode>237</podcast:episode>
      <itunes:title>237: FastAPI Cloud - Sebastián Ramírez</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ca0f1978-a436-42a2-8ad3-38a56e727d9f</guid>
      <link>https://pythontest.com/testandcode/episodes/fastapi-cloud</link>
      <description>
        <![CDATA[<p>In this episode, Brian interviews Sebastián Ramírez, creator of FastAPI, about its rapid rise in developer popularity and the launch of FastAPI Cloud. Sebastian explains how FastAPI Cloud addresses deployment challenges small teams face. He shares his transition from open-source to startup founder, focusing on simplifying deployment against the complexity of tools like Kubernetes.</p><p>Links:</p><ul><li><a href="https://fastapicloud.work">FastAPI Cloud</a></li><li><a href="https://fastapi.tiangolo.com">FastAPI</a></li><li><a href="https://sqlmodel.tiangolo.com">SQLModel</a></li><li><a href="https://typer.tiangolo.com">Typer</a></li><li><a href="https://www.openapis.org">OpenAPI</a></li><li><a href="https://docs.pydantic.dev/latest/">Pydantic</a></li><li><a href="https://sequoiacap.com/oss/">Sequoia Open Source Fellowship</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, Brian interviews Sebastián Ramírez, creator of FastAPI, about its rapid rise in developer popularity and the launch of FastAPI Cloud. Sebastian explains how FastAPI Cloud addresses deployment challenges small teams face. He shares his transition from open-source to startup founder, focusing on simplifying deployment against the complexity of tools like Kubernetes.</p><p>Links:</p><ul><li><a href="https://fastapicloud.work">FastAPI Cloud</a></li><li><a href="https://fastapi.tiangolo.com">FastAPI</a></li><li><a href="https://sqlmodel.tiangolo.com">SQLModel</a></li><li><a href="https://typer.tiangolo.com">Typer</a></li><li><a href="https://www.openapis.org">OpenAPI</a></li><li><a href="https://docs.pydantic.dev/latest/">Pydantic</a></li><li><a href="https://sequoiacap.com/oss/">Sequoia Open Source Fellowship</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 11 Aug 2025 15:10:07 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/237.mp3" length="30630209" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2186</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, Brian interviews Sebastián Ramírez, creator of FastAPI, about its rapid rise in developer popularity and the launch of FastAPI Cloud. Sebastian explains how FastAPI Cloud addresses deployment challenges small teams face. He shares his transition from open-source to startup founder, focusing on simplifying deployment against the complexity of tools like Kubernetes.</p><p>Links:</p><ul><li><a href="https://fastapicloud.work">FastAPI Cloud</a></li><li><a href="https://fastapi.tiangolo.com">FastAPI</a></li><li><a href="https://sqlmodel.tiangolo.com">SQLModel</a></li><li><a href="https://typer.tiangolo.com">Typer</a></li><li><a href="https://www.openapis.org">OpenAPI</a></li><li><a href="https://docs.pydantic.dev/latest/">Pydantic</a></li><li><a href="https://sequoiacap.com/oss/">Sequoia Open Source Fellowship</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://tiangolo.com/">Sebastián Ramírez</podcast:person>
    </item>
    <item>
      <title>236: Git Tips for Testing - Adam Johnson</title>
      <itunes:episode>236</itunes:episode>
      <podcast:episode>236</podcast:episode>
      <itunes:title>236: Git Tips for Testing - Adam Johnson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">104ee3b7-c66f-4c1b-81e0-e26961dd244e</guid>
      <link>https://pythontest.com/testandcode/episodes/git-tips-for-testing</link>
      <description>
        <![CDATA[<p>In this episode, host Brian Okken and guest Adam Johnson explore essential Git features, highlighted by Adam's updated book, "Boost Your Git DX." </p><p>Key topics include </p><ul><li>"cherry picking" for selective commits</li><li>"git stash" for managing in-progress work</li><li>"git diff", and specifically its `--name-only` flag, which provides a streamlined method for developers to identify which files have changed, which can be used to determine which tests need to be run</li><li>"git bisect" for efficiently pinpointing bugs. </li></ul><p>This conversation offers valuable strategies for developers at any skill level to enhance their Git proficiency and optimize their coding workflows.</p><p><br>Links:</p><ul><li><a href="https://adamchainz.gumroad.com/l/bygdx">Boost Your Git DX</a> - Adam's book</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, host Brian Okken and guest Adam Johnson explore essential Git features, highlighted by Adam's updated book, "Boost Your Git DX." </p><p>Key topics include </p><ul><li>"cherry picking" for selective commits</li><li>"git stash" for managing in-progress work</li><li>"git diff", and specifically its `--name-only` flag, which provides a streamlined method for developers to identify which files have changed, which can be used to determine which tests need to be run</li><li>"git bisect" for efficiently pinpointing bugs. </li></ul><p>This conversation offers valuable strategies for developers at any skill level to enhance their Git proficiency and optimize their coding workflows.</p><p><br>Links:</p><ul><li><a href="https://adamchainz.gumroad.com/l/bygdx">Boost Your Git DX</a> - Adam's book</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 30 Jul 2025 07:01:58 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/236.mp3" length="16609091" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1185</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, host Brian Okken and guest Adam Johnson explore essential Git features, highlighted by Adam's updated book, "Boost Your Git DX." </p><p>Key topics include </p><ul><li>"cherry picking" for selective commits</li><li>"git stash" for managing in-progress work</li><li>"git diff", and specifically its `--name-only` flag, which provides a streamlined method for developers to identify which files have changed, which can be used to determine which tests need to be run</li><li>"git bisect" for efficiently pinpointing bugs. </li></ul><p>This conversation offers valuable strategies for developers at any skill level to enhance their Git proficiency and optimize their coding workflows.</p><p><br>Links:</p><ul><li><a href="https://adamchainz.gumroad.com/l/bygdx">Boost Your Git DX</a> - Adam's book</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://adamj.eu/">Adam Johnson</podcast:person>
    </item>
    <item>
      <title>235: pytest-django - Adam Johnson</title>
      <itunes:episode>235</itunes:episode>
      <podcast:episode>235</podcast:episode>
      <itunes:title>235: pytest-django - Adam Johnson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">94f32b20-a5d2-495c-bebe-9f088a61d922</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-django</link>
      <description>
        <![CDATA[<p>In this episode, special guest Adam Johnson joins the show and examines pytest-django, a popular plugin among Django developers. He highlights its advantages over the built-in unittest framework, including improved test management and debugging. Adam addresses transition challenges, evolving fixture practices, and offers tips for optimizing test performance. This episode is a concise guide for developers looking to enhance their testing strategies with pytest-django.</p><p>Links:</p><ul><li><a href="https://pytest-django.readthedocs.io/en/latest/index.html">pytest-django</a> - a plugin for pytest that provides a set of useful tools for testing Django applications and projects.</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, special guest Adam Johnson joins the show and examines pytest-django, a popular plugin among Django developers. He highlights its advantages over the built-in unittest framework, including improved test management and debugging. Adam addresses transition challenges, evolving fixture practices, and offers tips for optimizing test performance. This episode is a concise guide for developers looking to enhance their testing strategies with pytest-django.</p><p>Links:</p><ul><li><a href="https://pytest-django.readthedocs.io/en/latest/index.html">pytest-django</a> - a plugin for pytest that provides a set of useful tools for testing Django applications and projects.</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 22 Jul 2025 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/235.mp3" length="16448157" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1173</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, special guest Adam Johnson joins the show and examines pytest-django, a popular plugin among Django developers. He highlights its advantages over the built-in unittest framework, including improved test management and debugging. Adam addresses transition challenges, evolving fixture practices, and offers tips for optimizing test performance. This episode is a concise guide for developers looking to enhance their testing strategies with pytest-django.</p><p>Links:</p><ul><li><a href="https://pytest-django.readthedocs.io/en/latest/index.html">pytest-django</a> - a plugin for pytest that provides a set of useful tools for testing Django applications and projects.</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://adamj.eu/">Adam Johnson</podcast:person>
    </item>
    <item>
      <title>234: pytest-metadata - provides access to test session metadata</title>
      <itunes:episode>234</itunes:episode>
      <podcast:episode>234</podcast:episode>
      <itunes:title>234: pytest-metadata - provides access to test session metadata</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e8ffb3a6-0213-4e9a-9f24-66160d7835a9</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-metadata</link>
      <description>
        <![CDATA[<p>pytest-metadata is described as a plugin for pytest that provides access to test session metadata. <br>That is such a humble description for such a massively useful plugin. <br>If you're already using pytest-html, you have pytest-metadata already installed, as pytest-metadata is one of the dependencies for pytest-html.<br>However, pytest-metadata is very useful even on its own.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-metadata/">pytest-metadata</a> - The plugin we're talking about in this episode</li><li><a href="https://pypi.python.org/pypi/pytest-base-url/">pytest-base-url</a> - Adds the base URL to the metadata.</li><li><a href="https://pypi.python.org/pypi/pytest-html/">pytest-html</a> - Displays the metadata at the start of each report. <ul><li>See <a href="https://pythontest.com/testandcode/episodes/pytest-html">S2:E6: pytest-html - a plugin that generates HTML reports for test results</a></li></ul></li><li><a href="https://pypi.org/project/pytest-reporter-html1/">pytest-reporter-html1</a> - Presents metadata as part of the report.</li><li><a href="https://pypi.python.org/pypi/pytest-selenium/">pytest-selenium</a> - Adds the driver, capabilities, and remote server to the metadata.</li></ul><p>If you've got other plugins that work well with pytest-metadata, please <a href="https://pythontest.com/contact/">let me know</a>.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-metadata is described as a plugin for pytest that provides access to test session metadata. <br>That is such a humble description for such a massively useful plugin. <br>If you're already using pytest-html, you have pytest-metadata already installed, as pytest-metadata is one of the dependencies for pytest-html.<br>However, pytest-metadata is very useful even on its own.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-metadata/">pytest-metadata</a> - The plugin we're talking about in this episode</li><li><a href="https://pypi.python.org/pypi/pytest-base-url/">pytest-base-url</a> - Adds the base URL to the metadata.</li><li><a href="https://pypi.python.org/pypi/pytest-html/">pytest-html</a> - Displays the metadata at the start of each report. <ul><li>See <a href="https://pythontest.com/testandcode/episodes/pytest-html">S2:E6: pytest-html - a plugin that generates HTML reports for test results</a></li></ul></li><li><a href="https://pypi.org/project/pytest-reporter-html1/">pytest-reporter-html1</a> - Presents metadata as part of the report.</li><li><a href="https://pypi.python.org/pypi/pytest-selenium/">pytest-selenium</a> - Adds the driver, capabilities, and remote server to the metadata.</li></ul><p>If you've got other plugins that work well with pytest-metadata, please <a href="https://pythontest.com/contact/">let me know</a>.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 07 May 2025 22:57:12 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/234.mp3" length="6680232" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>416</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-metadata is described as a plugin for pytest that provides access to test session metadata. <br>That is such a humble description for such a massively useful plugin. <br>If you're already using pytest-html, you have pytest-metadata already installed, as pytest-metadata is one of the dependencies for pytest-html.<br>However, pytest-metadata is very useful even on its own.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-metadata/">pytest-metadata</a> - The plugin we're talking about in this episode</li><li><a href="https://pypi.python.org/pypi/pytest-base-url/">pytest-base-url</a> - Adds the base URL to the metadata.</li><li><a href="https://pypi.python.org/pypi/pytest-html/">pytest-html</a> - Displays the metadata at the start of each report. <ul><li>See <a href="https://pythontest.com/testandcode/episodes/pytest-html">S2:E6: pytest-html - a plugin that generates HTML reports for test results</a></li></ul></li><li><a href="https://pypi.org/project/pytest-reporter-html1/">pytest-reporter-html1</a> - Presents metadata as part of the report.</li><li><a href="https://pypi.python.org/pypi/pytest-selenium/">pytest-selenium</a> - Adds the driver, capabilities, and remote server to the metadata.</li></ul><p>If you've got other plugins that work well with pytest-metadata, please <a href="https://pythontest.com/contact/">let me know</a>.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>233: pytest-check - allow multiple failures per test</title>
      <itunes:episode>233</itunes:episode>
      <podcast:episode>233</podcast:episode>
      <itunes:title>233: pytest-check - allow multiple failures per test</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">060f1207-f3e6-46b8-a468-068fa3038332</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-check</link>
      <description>
        <![CDATA[<p>pytest-check is a pytest plugin that allows multiple failures per test.</p><p><br>Normally, a test function will fail and stop running with the first failed assert. That's totally fine for tons of kinds of software tests. However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails.</p><p><br>pytest-check allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong.</p><p><strong>Links:</strong></p><ul><li><a href="https://github.com/okken/pytest-check">pytest-check</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-check is a pytest plugin that allows multiple failures per test.</p><p><br>Normally, a test function will fail and stop running with the first failed assert. That's totally fine for tons of kinds of software tests. However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails.</p><p><br>pytest-check allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong.</p><p><strong>Links:</strong></p><ul><li><a href="https://github.com/okken/pytest-check">pytest-check</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 02 May 2025 15:03:53 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/233.mp3" length="8295215" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>517</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-check is a pytest plugin that allows multiple failures per test.</p><p><br>Normally, a test function will fail and stop running with the first failed assert. That's totally fine for tons of kinds of software tests. However, there are times where you'd like to check more than one thing, and you'd really like to know the results of each check, even if one of them fails.</p><p><br>pytest-check allows multiple failed "checks" per test function, so you can see the whole picture of what's going wrong.</p><p><strong>Links:</strong></p><ul><li><a href="https://github.com/okken/pytest-check">pytest-check</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>232: The role of AI in software testing - Anthony Shaw</title>
      <itunes:episode>232</itunes:episode>
      <podcast:episode>232</podcast:episode>
      <itunes:title>232: The role of AI in software testing - Anthony Shaw</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f18d344d-e916-4850-b186-f9d8137a85af</guid>
      <link>https://pythontest.com/testandcode/episodes/ai-role-software-testing</link>
      <description>
        <![CDATA[<p>AI is helping people write code.  <br>Tests are one of those things that some people don't like to write.   </p><p>Can AI play a role in creating automated software tests?  <br>Well, yes. But it's a nuanced yes.  </p><p>Anthony Shaw comes on the show to discuss the topic and try to get AI to write some test for my very own cards project.</p><p>We discuss:</p><ul><li>The promise of AI writing your tests for you</li><li>Downsides to not writing tests yourself</li><li>Bad ways to generate tests</li><li>Good ways to ask AI for help in writing tests</li><li>Tricks to get better results while using copilot and other AI tools</li></ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards">The cards project</a></li><li>A video version of this discussion: <a href="https://www.youtube.com/watch?v=a_V-BH_luJ4">Should AI write tests?</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>AI is helping people write code.  <br>Tests are one of those things that some people don't like to write.   </p><p>Can AI play a role in creating automated software tests?  <br>Well, yes. But it's a nuanced yes.  </p><p>Anthony Shaw comes on the show to discuss the topic and try to get AI to write some test for my very own cards project.</p><p>We discuss:</p><ul><li>The promise of AI writing your tests for you</li><li>Downsides to not writing tests yourself</li><li>Bad ways to generate tests</li><li>Good ways to ask AI for help in writing tests</li><li>Tricks to get better results while using copilot and other AI tools</li></ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards">The cards project</a></li><li>A video version of this discussion: <a href="https://www.youtube.com/watch?v=a_V-BH_luJ4">Should AI write tests?</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 25 Apr 2025 10:41:08 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/232.mp3" length="47728100" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3408</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>AI is helping people write code.  <br>Tests are one of those things that some people don't like to write.   </p><p>Can AI play a role in creating automated software tests?  <br>Well, yes. But it's a nuanced yes.  </p><p>Anthony Shaw comes on the show to discuss the topic and try to get AI to write some test for my very own cards project.</p><p>We discuss:</p><ul><li>The promise of AI writing your tests for you</li><li>Downsides to not writing tests yourself</li><li>Bad ways to generate tests</li><li>Good ways to ask AI for help in writing tests</li><li>Tricks to get better results while using copilot and other AI tools</li></ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards">The cards project</a></li><li>A video version of this discussion: <a href="https://www.youtube.com/watch?v=a_V-BH_luJ4">Should AI write tests?</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://tonybaloney.github.io/">Anthony Shaw</podcast:person>
    </item>
    <item>
      <title>231: pytest-repeat - works fine on Python 3.14</title>
      <itunes:episode>231</itunes:episode>
      <podcast:episode>231</podcast:episode>
      <itunes:title>231: pytest-repeat - works fine on Python 3.14</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b1f10c98-1152-4328-a43d-fd8fe7326041</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-repeat-works-fine-on-python-3-14</link>
      <description>
        <![CDATA[<p>pytest-repeat </p><ul><li>is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </li><li>works fine on Python 3.14</li><li>is tested on Python 3.9-3.14</li><li>probably works fine still on 3.7 &amp; 3.8</li></ul><p>This episode also discusses the attempted April Fools episode.</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>The April Fools episode: <a href="https://pythontest.com/testandcode/episodes/python-3-14-wont-repeat-with-pytest-repeat">Python 3.14 won't repeat with pytest-repeat<strong><br></strong></a><br></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-repeat </p><ul><li>is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </li><li>works fine on Python 3.14</li><li>is tested on Python 3.9-3.14</li><li>probably works fine still on 3.7 &amp; 3.8</li></ul><p>This episode also discusses the attempted April Fools episode.</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>The April Fools episode: <a href="https://pythontest.com/testandcode/episodes/python-3-14-wont-repeat-with-pytest-repeat">Python 3.14 won't repeat with pytest-repeat<strong><br></strong></a><br></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 10 Apr 2025 14:30:42 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/231.mp3" length="7225234" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>450</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-repeat </p><ul><li>is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </li><li>works fine on Python 3.14</li><li>is tested on Python 3.9-3.14</li><li>probably works fine still on 3.7 &amp; 3.8</li></ul><p>This episode also discusses the attempted April Fools episode.</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>The April Fools episode: <a href="https://pythontest.com/testandcode/episodes/python-3-14-wont-repeat-with-pytest-repeat">Python 3.14 won't repeat with pytest-repeat<strong><br></strong></a><br></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>230: Python 3.14 won't repeat with pytest-repeat</title>
      <itunes:episode>230</itunes:episode>
      <podcast:episode>230</podcast:episode>
      <itunes:title>230: Python 3.14 won't repeat with pytest-repeat</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">58559be8-c2d0-480a-8f16-a932abb5ba1f</guid>
      <link>https://pythontest.com/testandcode/episodes/python-3-14-wont-repeat-with-pytest-repeat</link>
      <description>
        <![CDATA[<p>pytest-repeat is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </p><p>Note: This was an April Fools attempt, so the statement ...<br>"Unfortunately, it doesn't seem to work with Python 3.14, even though there is no rational reason why it shouldn't work." <br>... is NOT true.</p><p>Listen to the NEXT episode to get an explanation</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>Next episode: <a href="https://pythontest.com/testandcode/episodes/pytest-repeat-works-fine-on-python-3-14">pytest-repeat - works fine on Python 3.14</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-repeat is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </p><p>Note: This was an April Fools attempt, so the statement ...<br>"Unfortunately, it doesn't seem to work with Python 3.14, even though there is no rational reason why it shouldn't work." <br>... is NOT true.</p><p>Listen to the NEXT episode to get an explanation</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>Next episode: <a href="https://pythontest.com/testandcode/episodes/pytest-repeat-works-fine-on-python-3-14">pytest-repeat - works fine on Python 3.14</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 01 Apr 2025 15:20:33 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/230.mp3" length="3446311" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>245</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-repeat is a pytest plugin that makes it easy to repeat a single test, or multiple tests, a specific number of times.  </p><p>Note: This was an April Fools attempt, so the statement ...<br>"Unfortunately, it doesn't seem to work with Python 3.14, even though there is no rational reason why it shouldn't work." <br>... is NOT true.</p><p>Listen to the NEXT episode to get an explanation</p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li>Next episode: <a href="https://pythontest.com/testandcode/episodes/pytest-repeat-works-fine-on-python-3-14">pytest-repeat - works fine on Python 3.14</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>229: pytest-html - a plugin that generates HTML reports for test results</title>
      <itunes:episode>229</itunes:episode>
      <podcast:episode>229</podcast:episode>
      <itunes:title>229: pytest-html - a plugin that generates HTML reports for test results</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c7a48c8a-a1e5-4b1f-8991-8faba2bc88d6</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-html</link>
      <description>
        <![CDATA[<p>pytest-html has got to be one of my all time favorite plugins. <br>pytest-html is a plugin for pytest that generates a HTML report for test results. <br>This episode digs into some of the super coolness of pytest-html.</p><ul><li><a href="https://pytest-html.readthedocs.io/">pytest-html</a></li><li><a href="https://github.com/pytest-dev/pytest-html/blob/master/README.rst">repo readme with screenshot</a></li><li><a href="https://pytest-html.readthedocs.io/en/latest/user_guide.html#enhancing-reports">enhancing reports</a></li><li><a href="https://github.com/pytest-dev/pytest-metadata/tree/master">pytest-metadata</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-html has got to be one of my all time favorite plugins. <br>pytest-html is a plugin for pytest that generates a HTML report for test results. <br>This episode digs into some of the super coolness of pytest-html.</p><ul><li><a href="https://pytest-html.readthedocs.io/">pytest-html</a></li><li><a href="https://github.com/pytest-dev/pytest-html/blob/master/README.rst">repo readme with screenshot</a></li><li><a href="https://pytest-html.readthedocs.io/en/latest/user_guide.html#enhancing-reports">enhancing reports</a></li><li><a href="https://github.com/pytest-dev/pytest-metadata/tree/master">pytest-metadata</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 27 Mar 2025 11:16:06 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/229.mp3" length="6026135" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>375</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-html has got to be one of my all time favorite plugins. <br>pytest-html is a plugin for pytest that generates a HTML report for test results. <br>This episode digs into some of the super coolness of pytest-html.</p><ul><li><a href="https://pytest-html.readthedocs.io/">pytest-html</a></li><li><a href="https://github.com/pytest-dev/pytest-html/blob/master/README.rst">repo readme with screenshot</a></li><li><a href="https://pytest-html.readthedocs.io/en/latest/user_guide.html#enhancing-reports">enhancing reports</a></li><li><a href="https://github.com/pytest-dev/pytest-metadata/tree/master">pytest-metadata</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>228: pytest-md and pytest-md-report: Markdown reports for pytest</title>
      <itunes:episode>228</itunes:episode>
      <podcast:episode>228</podcast:episode>
      <itunes:title>228: pytest-md and pytest-md-report: Markdown reports for pytest</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d79e0cff-cf81-4152-b2b3-26ea8e73e1e5</guid>
      <link>https://pythontest.com/testandcode/episodes/markdown-reports-pytest-md-pytest-md-report</link>
      <description>
        <![CDATA[<p>Markdown reports as either text or markdown tables.<br>Two fun plugins discussed.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-md-report">pytest-md-report</a></li><li><a href="https://pypi.org/project/pytest-md">pytest-md</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Markdown reports as either text or markdown tables.<br>Two fun plugins discussed.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-md-report">pytest-md-report</a></li><li><a href="https://pypi.org/project/pytest-md">pytest-md</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 28 Feb 2025 18:38:35 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/228.mp3" length="9747218" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>608</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Markdown reports as either text or markdown tables.<br>Two fun plugins discussed.</p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-md-report">pytest-md-report</a></li><li><a href="https://pypi.org/project/pytest-md">pytest-md</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>227: Mocking in Python with unittest.mock  -  Michael Foord</title>
      <itunes:episode>227</itunes:episode>
      <podcast:episode>227</podcast:episode>
      <itunes:title>227: Mocking in Python with unittest.mock  -  Michael Foord</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b8554360-2ff5-4ff6-be59-c6a2096d0984</guid>
      <link>https://pythontest.com/testandcode/episodes/unittest-mock</link>
      <description>
        <![CDATA[<p>This episode is a replay of a 2021 interview I did with Michael Foord.<br>We lost Michael in January, and I'd like to revisit this interview as a tribute. </p><p>Michael Foord was a pivotal figure in the Python community and the creator of the mock library that's now unittest.mock. <br>But he did so much more as well. <br>His contributions continue to resonate within the developer community. <br>This interview is just a small peek at his influence. </p><p>In this episode</p><ul><li>Introduction to Michael Foord</li><li>The Mock Library Origins</li><li>Mocking and Testing Philosophy</li><li>Career Path and Consulting</li><li>Understanding Mocking</li><li>The Power of Patch</li><li>Testing Strategies and Design</li><li>Mocking External Dependencies</li><li>Teaching Testing and Mocking</li></ul><p>python.org has put up an <a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">"In memoriam" page for Michael Foord</a>, and many people have shared stories and memories.</p><p>Links:</p><ul><li><a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">In memoriam: Michael Foord 1974-2025</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing</a></li></ul><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode is a replay of a 2021 interview I did with Michael Foord.<br>We lost Michael in January, and I'd like to revisit this interview as a tribute. </p><p>Michael Foord was a pivotal figure in the Python community and the creator of the mock library that's now unittest.mock. <br>But he did so much more as well. <br>His contributions continue to resonate within the developer community. <br>This interview is just a small peek at his influence. </p><p>In this episode</p><ul><li>Introduction to Michael Foord</li><li>The Mock Library Origins</li><li>Mocking and Testing Philosophy</li><li>Career Path and Consulting</li><li>Understanding Mocking</li><li>The Power of Patch</li><li>Testing Strategies and Design</li><li>Mocking External Dependencies</li><li>Teaching Testing and Mocking</li></ul><p>python.org has put up an <a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">"In memoriam" page for Michael Foord</a>, and many people have shared stories and memories.</p><p>Links:</p><ul><li><a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">In memoriam: Michael Foord 1974-2025</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing</a></li></ul><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 07 Feb 2025 00:00:16 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/227.mp3" length="45928458" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2869</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode is a replay of a 2021 interview I did with Michael Foord.<br>We lost Michael in January, and I'd like to revisit this interview as a tribute. </p><p>Michael Foord was a pivotal figure in the Python community and the creator of the mock library that's now unittest.mock. <br>But he did so much more as well. <br>His contributions continue to resonate within the developer community. <br>This interview is just a small peek at his influence. </p><p>In this episode</p><ul><li>Introduction to Michael Foord</li><li>The Mock Library Origins</li><li>Mocking and Testing Philosophy</li><li>Career Path and Consulting</li><li>Understanding Mocking</li><li>The Power of Patch</li><li>Testing Strategies and Design</li><li>Mocking External Dependencies</li><li>Teaching Testing and Mocking</li></ul><p>python.org has put up an <a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">"In memoriam" page for Michael Foord</a>, and many people have shared stories and memories.</p><p>Links:</p><ul><li><a href="https://discuss.python.org/t/in-memoriam-michael-foord-1974-2025/78317">In memoriam: Michael Foord 1974-2025</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing</a></li></ul><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Foord</podcast:person>
    </item>
    <item>
      <title>226: pytest-mock : Mocking in pytest</title>
      <itunes:episode>226</itunes:episode>
      <podcast:episode>226</podcast:episode>
      <itunes:title>226: pytest-mock : Mocking in pytest</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">261ecc31-d792-43b5-818e-ac13d88326de</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-mock</link>
      <description>
        <![CDATA[<p>pytest-mock is currently the #3 pytest plugin. <br>pytest-mock is a wrapper around unittest.mock.</p><p>In this episode:</p><ul><li>Why the pytest-mock plugin is awesome</li><li>What is mocking, patching, and monkey patching</li><li>What, if any, is the difference between mock, fake, spy, stub. </li><li>Why we might need these in testing</li><li>Some history of mock in Python and how mock became unittest.mock</li><li>From unittest.mock<ul><li>patch.object</li><li>patch.object with autospec</li><li>using these as context managers</li></ul></li><li>pytest-mock:<ul><li>The mocker fixture </li><li>Cleanup in teardown</li><li>Using mocker.patch, mocker.spy, and mocker.stub</li><li>Why it's awesome and why you might want to use it over straight unittest.mock</li></ul></li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">top pytest plugins list</a></li><li><a href="https://pytest-mock.readthedocs.io/">pytest-mock documentation</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock</a></li><li><a href="https://pythontest.com/testandcode/episodes/145-for-those-about-to-mock-michael-foord">Podcast episode discussing unittest.mock with Michael Foord</a></li><li><a href="https://docs.pytest.org/en/stable/reference/reference.html#std-fixture-monkeypatch">monkeypatch</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-mock is currently the #3 pytest plugin. <br>pytest-mock is a wrapper around unittest.mock.</p><p>In this episode:</p><ul><li>Why the pytest-mock plugin is awesome</li><li>What is mocking, patching, and monkey patching</li><li>What, if any, is the difference between mock, fake, spy, stub. </li><li>Why we might need these in testing</li><li>Some history of mock in Python and how mock became unittest.mock</li><li>From unittest.mock<ul><li>patch.object</li><li>patch.object with autospec</li><li>using these as context managers</li></ul></li><li>pytest-mock:<ul><li>The mocker fixture </li><li>Cleanup in teardown</li><li>Using mocker.patch, mocker.spy, and mocker.stub</li><li>Why it's awesome and why you might want to use it over straight unittest.mock</li></ul></li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">top pytest plugins list</a></li><li><a href="https://pytest-mock.readthedocs.io/">pytest-mock documentation</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock</a></li><li><a href="https://pythontest.com/testandcode/episodes/145-for-those-about-to-mock-michael-foord">Podcast episode discussing unittest.mock with Michael Foord</a></li><li><a href="https://docs.pytest.org/en/stable/reference/reference.html#std-fixture-monkeypatch">monkeypatch</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 31 Jan 2025 11:05:16 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/226.mp3" length="10697629" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>667</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-mock is currently the #3 pytest plugin. <br>pytest-mock is a wrapper around unittest.mock.</p><p>In this episode:</p><ul><li>Why the pytest-mock plugin is awesome</li><li>What is mocking, patching, and monkey patching</li><li>What, if any, is the difference between mock, fake, spy, stub. </li><li>Why we might need these in testing</li><li>Some history of mock in Python and how mock became unittest.mock</li><li>From unittest.mock<ul><li>patch.object</li><li>patch.object with autospec</li><li>using these as context managers</li></ul></li><li>pytest-mock:<ul><li>The mocker fixture </li><li>Cleanup in teardown</li><li>Using mocker.patch, mocker.spy, and mocker.stub</li><li>Why it's awesome and why you might want to use it over straight unittest.mock</li></ul></li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">top pytest plugins list</a></li><li><a href="https://pytest-mock.readthedocs.io/">pytest-mock documentation</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock</a></li><li><a href="https://pythontest.com/testandcode/episodes/145-for-those-about-to-mock-michael-foord">Podcast episode discussing unittest.mock with Michael Foord</a></li><li><a href="https://docs.pytest.org/en/stable/reference/reference.html#std-fixture-monkeypatch">monkeypatch</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>225: pytest-cov : The pytest plugin for measuring coverage </title>
      <itunes:episode>225</itunes:episode>
      <podcast:episode>225</podcast:episode>
      <itunes:title>225: pytest-cov : The pytest plugin for measuring coverage </itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">84a55f80-a052-4e0e-89ce-02e34d5bc497</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-cov</link>
      <description>
        <![CDATA[<p>pytest-cov is a pytest plugin that helps produce coverage reports using Coverage.py.</p><p>In this episode, we'll discuss:</p><ul><li>what Coverage.py is</li><li>why you should measure code coverage on both your source and test code</li><li>what pytest-cov is</li><li>extra features pytest-cov gives you over and above coverage.py</li><li>and generally why using both is awesome</li></ul><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io">coverage.py</a></li><li><a href="https://pytest-cov.readthedocs.io">pytest-cov</a></li><li><a href="https://pytest-cov.readthedocs.io/en/latest/contexts.html">how to set up context reports</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul><p>Errata:</p><ul><li>I mentioned that Coverage has the ability to show context (which line is covered by which test) for the past year or so.<ul><li>However, that feature was released in Oct 2018. <a href="https://coverage.readthedocs.io/en/7.6.10/changes.html#version-5-0a3-2018-10-06">coverage 5.0 alpha</a> </li><li>That's over 6 years. Oops. Sorry Ned.</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-cov is a pytest plugin that helps produce coverage reports using Coverage.py.</p><p>In this episode, we'll discuss:</p><ul><li>what Coverage.py is</li><li>why you should measure code coverage on both your source and test code</li><li>what pytest-cov is</li><li>extra features pytest-cov gives you over and above coverage.py</li><li>and generally why using both is awesome</li></ul><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io">coverage.py</a></li><li><a href="https://pytest-cov.readthedocs.io">pytest-cov</a></li><li><a href="https://pytest-cov.readthedocs.io/en/latest/contexts.html">how to set up context reports</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul><p>Errata:</p><ul><li>I mentioned that Coverage has the ability to show context (which line is covered by which test) for the past year or so.<ul><li>However, that feature was released in Oct 2018. <a href="https://coverage.readthedocs.io/en/7.6.10/changes.html#version-5-0a3-2018-10-06">coverage 5.0 alpha</a> </li><li>That's over 6 years. Oops. Sorry Ned.</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 23 Jan 2025 13:06:36 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/225.mp3" length="11983294" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>748</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-cov is a pytest plugin that helps produce coverage reports using Coverage.py.</p><p>In this episode, we'll discuss:</p><ul><li>what Coverage.py is</li><li>why you should measure code coverage on both your source and test code</li><li>what pytest-cov is</li><li>extra features pytest-cov gives you over and above coverage.py</li><li>and generally why using both is awesome</li></ul><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io">coverage.py</a></li><li><a href="https://pytest-cov.readthedocs.io">pytest-cov</a></li><li><a href="https://pytest-cov.readthedocs.io/en/latest/contexts.html">how to set up context reports</a></li><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest Plugins</a></li></ul><p>Errata:</p><ul><li>I mentioned that Coverage has the ability to show context (which line is covered by which test) for the past year or so.<ul><li>However, that feature was released in Oct 2018. <a href="https://coverage.readthedocs.io/en/7.6.10/changes.html#version-5-0a3-2018-10-06">coverage 5.0 alpha</a> </li><li>That's over 6 years. Oops. Sorry Ned.</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, pytest, coverage, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>224: pytest plugins - a full series</title>
      <itunes:episode>224</itunes:episode>
      <podcast:episode>224</podcast:episode>
      <itunes:title>224: pytest plugins - a full series</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7d28f49d-7797-4c3b-847d-10a04ecf561f</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-plugins</link>
      <description>
        <![CDATA[<p>This episode kicks off a series on pytest plugins.</p><p>In this episode:</p><ul><li>Introduction to pytest plugins</li><li>The pytest.org pytest plugin list</li><li>Finding pytest related packages on PyPI</li><li>The Top pytest plugins list on pythontest.com</li><li>Exploring popular plugins</li><li>Learning from plugin examples</li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins list</a></li><li><a href="https://docs.pytest.org/en/stable/reference/plugin_list.html">pytest.org plugin list</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages</a></li><li>And links to plugins mentioned in the show can be found at <a href="https://pythontest.com/top-pytest-plugins/">pythontest.com/top-pytest-plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode kicks off a series on pytest plugins.</p><p>In this episode:</p><ul><li>Introduction to pytest plugins</li><li>The pytest.org pytest plugin list</li><li>Finding pytest related packages on PyPI</li><li>The Top pytest plugins list on pythontest.com</li><li>Exploring popular plugins</li><li>Learning from plugin examples</li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins list</a></li><li><a href="https://docs.pytest.org/en/stable/reference/plugin_list.html">pytest.org plugin list</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages</a></li><li>And links to plugins mentioned in the show can be found at <a href="https://pythontest.com/top-pytest-plugins/">pythontest.com/top-pytest-plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 10 Jan 2025 14:00:13 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/224.mp3" length="11823610" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>738</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode kicks off a series on pytest plugins.</p><p>In this episode:</p><ul><li>Introduction to pytest plugins</li><li>The pytest.org pytest plugin list</li><li>Finding pytest related packages on PyPI</li><li>The Top pytest plugins list on pythontest.com</li><li>Exploring popular plugins</li><li>Learning from plugin examples</li></ul><p>Links:</p><ul><li><a href="https://pythontest.com/top-pytest-plugins/">Top pytest plugins list</a></li><li><a href="https://docs.pytest.org/en/stable/reference/plugin_list.html">pytest.org plugin list</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages</a></li><li>And links to plugins mentioned in the show can be found at <a href="https://pythontest.com/top-pytest-plugins/">pythontest.com/top-pytest-plugins</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>223: Writing Stuff Down is a Super Power</title>
      <itunes:episode>223</itunes:episode>
      <podcast:episode>223</podcast:episode>
      <itunes:title>223: Writing Stuff Down is a Super Power</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">81bb1f9c-ad54-41d9-bf40-7b00f5a565f3</guid>
      <link>https://pythontest.com/testandcode/episodes/223-writing-stuff-down</link>
      <description>
        <![CDATA[<p>Taking notes well can help to listen better, remember things, show respect, be more accountable, free up mind space to solve problems.</p><p>This episode discusses</p><ul><li>the benefits of writing things down</li><li>preparing for a meeting</li><li>taking notes in meetings</li><li>reviewing notes for action items, todo items, things to follow up on, etc.</li><li>taking notes to allow for better focus</li><li>writing well structured emails</li><li>writing blog posts and books</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Taking notes well can help to listen better, remember things, show respect, be more accountable, free up mind space to solve problems.</p><p>This episode discusses</p><ul><li>the benefits of writing things down</li><li>preparing for a meeting</li><li>taking notes in meetings</li><li>reviewing notes for action items, todo items, things to follow up on, etc.</li><li>taking notes to allow for better focus</li><li>writing well structured emails</li><li>writing blog posts and books</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 16 Nov 2024 18:55:26 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/223.mp3" length="30982446" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1290</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Taking notes well can help to listen better, remember things, show respect, be more accountable, free up mind space to solve problems.</p><p>This episode discusses</p><ul><li>the benefits of writing things down</li><li>preparing for a meeting</li><li>taking notes in meetings</li><li>reviewing notes for action items, todo items, things to follow up on, etc.</li><li>taking notes to allow for better focus</li><li>writing well structured emails</li><li>writing blog posts and books</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>222: Import within a Python package</title>
      <itunes:episode>222</itunes:episode>
      <podcast:episode>222</podcast:episode>
      <itunes:title>222: Import within a Python package</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ec4e70e8-71af-492e-9e3b-edc30b27289e</guid>
      <link>https://pythontest.com/testandcode/episodes/222-import-within-a-python-package</link>
      <description>
        <![CDATA[<p>In this episode we're talking about importing part of a package into another part of the same package.</p><p><br></p><p>We'll look at: `from . import module` and `from .module import something`</p><p>and also:  `import package` to access the external API from with the package.</p><p><br></p><p>Why would we use `import package` if `from . import api` would work fine?</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode we're talking about importing part of a package into another part of the same package.</p><p><br></p><p>We'll look at: `from . import module` and `from .module import something`</p><p>and also:  `import package` to access the external API from with the package.</p><p><br></p><p>Why would we use `import package` if `from . import api` would work fine?</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 07 Sep 2024 09:27:32 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/222.mp3" length="11974075" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>747</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode we're talking about importing part of a package into another part of the same package.</p><p><br></p><p>We'll look at: `from . import module` and `from .module import something`</p><p>and also:  `import package` to access the external API from with the package.</p><p><br></p><p>Why would we use `import package` if `from . import api` would work fine?</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>221: How to get pytest to import your code under test</title>
      <itunes:episode>221</itunes:episode>
      <podcast:episode>221</podcast:episode>
      <itunes:title>221: How to get pytest to import your code under test</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4c2572d8-a971-4429-a9bb-ca72b9d90118</guid>
      <link>https://pythontest.com/testandcode/episodes/221-how-to-get-pytest-to-import-your-code-under-test</link>
      <description>
        <![CDATA[<p>We've got some code we want to test, and some tests.<br>The tests need to be able to import the code under test, or at least the API to it, in order to run tests against it.<br>How do we do that? How do we set things up so that our tests can import our code?</p><p>In this episode, we discuss two options:</p><ul><li>Installing the code under test as a pip installable package with `pip install -e /path/to/local/package`.</li><li>Using the <a href="https://docs.pytest.org/en/latest/reference/reference.html#confval-pythonpath">pythonpath pytest setting</a>.</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We've got some code we want to test, and some tests.<br>The tests need to be able to import the code under test, or at least the API to it, in order to run tests against it.<br>How do we do that? How do we set things up so that our tests can import our code?</p><p>In this episode, we discuss two options:</p><ul><li>Installing the code under test as a pip installable package with `pip install -e /path/to/local/package`.</li><li>Using the <a href="https://docs.pytest.org/en/latest/reference/reference.html#confval-pythonpath">pythonpath pytest setting</a>.</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 03 Jun 2024 11:23:38 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/221.mp3" length="7453447" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>465</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We've got some code we want to test, and some tests.<br>The tests need to be able to import the code under test, or at least the API to it, in order to run tests against it.<br>How do we do that? How do we set things up so that our tests can import our code?</p><p>In this episode, we discuss two options:</p><ul><li>Installing the code under test as a pip installable package with `pip install -e /path/to/local/package`.</li><li>Using the <a href="https://docs.pytest.org/en/latest/reference/reference.html#confval-pythonpath">pythonpath pytest setting</a>.</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>220: Getting the most out of PyCon, including juggling -  Rob Ludwick</title>
      <itunes:episode>220</itunes:episode>
      <podcast:episode>220</podcast:episode>
      <itunes:title>220: Getting the most out of PyCon, including juggling -  Rob Ludwick</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6e49ec6c-5072-4058-9d01-9fec62000a1a</guid>
      <link>https://pythontest.com/testandcode/episodes/220-juggling-pycon</link>
      <description>
        <![CDATA[<p>PyCon US is just around the corner.  I've asked Rob Ludwick to come on the show to discuss how to get the most out of your PyCon experience. There's a lot to do. A lot of activities to juggle, including actual juggling, which is where we start the conversation.</p><p>Even if you never get a chance to go to PyCon, I hope this interview helps you get a feel for the welcoming aspect of the Python community.</p><p>I recorded this interview as an episode for one of my other podcasts, Python People. But I think it's got some great pre-conference advice, so I'm sharing it here on Python Test as well.</p><p>We talk about: <br>- Juggling at PyCon<br>- How to get the most out of PyCon<br>    - Watching talks<br>    - Hallway track<br>    - Open spaces<br>    - Lightening talks<br>    - Expo hall / vendor space<br>    - Poster sessions<br>    - Job fair<br>    - A welcoming community<br>    - Tutorials <br>    - Sprints<br>    - But mostly about the people of Python and PyCon.</p><p>"Python enables smart people to work faster" - Rob Ludwick</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>PyCon US is just around the corner.  I've asked Rob Ludwick to come on the show to discuss how to get the most out of your PyCon experience. There's a lot to do. A lot of activities to juggle, including actual juggling, which is where we start the conversation.</p><p>Even if you never get a chance to go to PyCon, I hope this interview helps you get a feel for the welcoming aspect of the Python community.</p><p>I recorded this interview as an episode for one of my other podcasts, Python People. But I think it's got some great pre-conference advice, so I'm sharing it here on Python Test as well.</p><p>We talk about: <br>- Juggling at PyCon<br>- How to get the most out of PyCon<br>    - Watching talks<br>    - Hallway track<br>    - Open spaces<br>    - Lightening talks<br>    - Expo hall / vendor space<br>    - Poster sessions<br>    - Job fair<br>    - A welcoming community<br>    - Tutorials <br>    - Sprints<br>    - But mostly about the people of Python and PyCon.</p><p>"Python enables smart people to work faster" - Rob Ludwick</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 04 May 2024 14:54:32 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/220.mp3" length="29254321" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2436</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>PyCon US is just around the corner.  I've asked Rob Ludwick to come on the show to discuss how to get the most out of your PyCon experience. There's a lot to do. A lot of activities to juggle, including actual juggling, which is where we start the conversation.</p><p>Even if you never get a chance to go to PyCon, I hope this interview helps you get a feel for the welcoming aspect of the Python community.</p><p>I recorded this interview as an episode for one of my other podcasts, Python People. But I think it's got some great pre-conference advice, so I'm sharing it here on Python Test as well.</p><p>We talk about: <br>- Juggling at PyCon<br>- How to get the most out of PyCon<br>    - Watching talks<br>    - Hallway track<br>    - Open spaces<br>    - Lightening talks<br>    - Expo hall / vendor space<br>    - Poster sessions<br>    - Job fair<br>    - A welcoming community<br>    - Tutorials <br>    - Sprints<br>    - But mostly about the people of Python and PyCon.</p><p>"Python enables smart people to work faster" - Rob Ludwick</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Rob Ludwick</podcast:person>
    </item>
    <item>
      <title>219: Building Django Apps &amp; SaaS Pegasus - Cory Zue</title>
      <itunes:episode>219</itunes:episode>
      <podcast:episode>219</podcast:episode>
      <itunes:title>219: Building Django Apps &amp; SaaS Pegasus - Cory Zue</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ac52c803-f803-41a7-97ec-7fac66a0b39b</guid>
      <link>https://pythontest.com/testandcode/episodes/building-django-apps-saas-pegasus</link>
      <description>
        <![CDATA[<p>I'm starting a SaaS project using Django, and there are tons of decisions right out of the gate. <br>To help me navigate these decisions, I've brought on Cory Zue.   <br>Cory is the creator of <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a>, and has tons of experience with Django.</p><p>Some of the topics discussed:</p><ul><li>Building Django applications</li><li><a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li><li>placecard.me</li><li>What boilerplate projects are</li><li>Django cookiecutter</li><li>Cookiecutter</li><li>Which database to use, probably PostgreSQL</li><li>Authentication choises, probably Allauth</li><li>Docker, Docker for development, Docker for deployment</li><li>Deployment targets / hosting services. Render, Heroku, Fly.io, for PaaS options.</li><li>Front end frameworks. Bootstrap, Tailwind, DaisyUI, TailwindUI</li><li>HTMX vs React vs straight Django templates</li><li>Rockets</li><li>Font Awesome</li><li>and of course, <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I'm starting a SaaS project using Django, and there are tons of decisions right out of the gate. <br>To help me navigate these decisions, I've brought on Cory Zue.   <br>Cory is the creator of <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a>, and has tons of experience with Django.</p><p>Some of the topics discussed:</p><ul><li>Building Django applications</li><li><a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li><li>placecard.me</li><li>What boilerplate projects are</li><li>Django cookiecutter</li><li>Cookiecutter</li><li>Which database to use, probably PostgreSQL</li><li>Authentication choises, probably Allauth</li><li>Docker, Docker for development, Docker for deployment</li><li>Deployment targets / hosting services. Render, Heroku, Fly.io, for PaaS options.</li><li>Front end frameworks. Bootstrap, Tailwind, DaisyUI, TailwindUI</li><li>HTMX vs React vs straight Django templates</li><li>Rockets</li><li>Font Awesome</li><li>and of course, <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 23 Apr 2024 17:52:52 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/219.mp3" length="34689862" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2889</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I'm starting a SaaS project using Django, and there are tons of decisions right out of the gate. <br>To help me navigate these decisions, I've brought on Cory Zue.   <br>Cory is the creator of <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a>, and has tons of experience with Django.</p><p>Some of the topics discussed:</p><ul><li>Building Django applications</li><li><a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li><li>placecard.me</li><li>What boilerplate projects are</li><li>Django cookiecutter</li><li>Cookiecutter</li><li>Which database to use, probably PostgreSQL</li><li>Authentication choises, probably Allauth</li><li>Docker, Docker for development, Docker for deployment</li><li>Deployment targets / hosting services. Render, Heroku, Fly.io, for PaaS options.</li><li>Front end frameworks. Bootstrap, Tailwind, DaisyUI, TailwindUI</li><li>HTMX vs React vs straight Django templates</li><li>Rockets</li><li>Font Awesome</li><li>and of course, <a href="https://www.saaspegasus.com/?via=brian">SaaS Pegasus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://www.coryzue.com">Cory Zue</podcast:person>
    </item>
    <item>
      <title>218: Balancing test coverage with test costs -  Nicole Tietz-Sokolskaya</title>
      <itunes:episode>218</itunes:episode>
      <podcast:episode>218</podcast:episode>
      <itunes:title>218: Balancing test coverage with test costs -  Nicole Tietz-Sokolskaya</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ea86b01d-f8c3-432b-82b8-f5833c52fd54</guid>
      <link>https://pythontest.com/testandcode/episodes/218-balancing-test-coverage-with-test-costs</link>
      <description>
        <![CDATA[<p>Nicole is a software engineer and writer, and recently wrote about the trade-offs we make when deciding which tests to write and how much testing is enough.</p><p>We talk about:</p><ul><li>Balancing schedule vs testing</li><li>How much testing is the right about of testing</li><li>Should code coverage be measured and tracked</li><li>Good refactoring can reduce code coverage</li><li>Is it worth testing error conditions?</li><li>Are rare error codes ok to just monitor?</li><li>API drift and autospec</li><li>Mitigating risk</li><li>Deciding what to test and what not to test</li><li>Focus testing on key money-making features </li><li>If there's a bug in this part of the code, how much business impact is there?</li><li>Performance testing needs to approximately match real world workloads</li><li>Cost of a service breaking vs the cost of creating, maintaining, and running tests</li><li>Keeping test suites quick to minimize getting distracted</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://ntietz.com/blog/too-much-of-a-good-thing-the-cost-of-excess-testing/">Too much of a good thing: the trade-off we make with tests</a> </li><li><a href="https://ntietz.com/blog/load-testing-is-hard-but-why/">Load testing is hard, and the tools are... not great. But why?</a></li><li><a href="https://yarr.fyi">Yet Another Rust Resource (YARR!)</a></li><li><a href="https://en.wikipedia.org/wiki/Goodhart%27s_law">Goodhart's law</a> - "When a measure becomes a target, it ceases to be a good measure"</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Nicole is a software engineer and writer, and recently wrote about the trade-offs we make when deciding which tests to write and how much testing is enough.</p><p>We talk about:</p><ul><li>Balancing schedule vs testing</li><li>How much testing is the right about of testing</li><li>Should code coverage be measured and tracked</li><li>Good refactoring can reduce code coverage</li><li>Is it worth testing error conditions?</li><li>Are rare error codes ok to just monitor?</li><li>API drift and autospec</li><li>Mitigating risk</li><li>Deciding what to test and what not to test</li><li>Focus testing on key money-making features </li><li>If there's a bug in this part of the code, how much business impact is there?</li><li>Performance testing needs to approximately match real world workloads</li><li>Cost of a service breaking vs the cost of creating, maintaining, and running tests</li><li>Keeping test suites quick to minimize getting distracted</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://ntietz.com/blog/too-much-of-a-good-thing-the-cost-of-excess-testing/">Too much of a good thing: the trade-off we make with tests</a> </li><li><a href="https://ntietz.com/blog/load-testing-is-hard-but-why/">Load testing is hard, and the tools are... not great. But why?</a></li><li><a href="https://yarr.fyi">Yet Another Rust Resource (YARR!)</a></li><li><a href="https://en.wikipedia.org/wiki/Goodhart%27s_law">Goodhart's law</a> - "When a measure becomes a target, it ceases to be a good measure"</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 17 Apr 2024 21:26:46 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/218.mp3" length="20141767" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1677</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Nicole is a software engineer and writer, and recently wrote about the trade-offs we make when deciding which tests to write and how much testing is enough.</p><p>We talk about:</p><ul><li>Balancing schedule vs testing</li><li>How much testing is the right about of testing</li><li>Should code coverage be measured and tracked</li><li>Good refactoring can reduce code coverage</li><li>Is it worth testing error conditions?</li><li>Are rare error codes ok to just monitor?</li><li>API drift and autospec</li><li>Mitigating risk</li><li>Deciding what to test and what not to test</li><li>Focus testing on key money-making features </li><li>If there's a bug in this part of the code, how much business impact is there?</li><li>Performance testing needs to approximately match real world workloads</li><li>Cost of a service breaking vs the cost of creating, maintaining, and running tests</li><li>Keeping test suites quick to minimize getting distracted</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://ntietz.com/blog/too-much-of-a-good-thing-the-cost-of-excess-testing/">Too much of a good thing: the trade-off we make with tests</a> </li><li><a href="https://ntietz.com/blog/load-testing-is-hard-but-why/">Load testing is hard, and the tools are... not great. But why?</a></li><li><a href="https://yarr.fyi">Yet Another Rust Resource (YARR!)</a></li><li><a href="https://en.wikipedia.org/wiki/Goodhart%27s_law">Goodhart's law</a> - "When a measure becomes a target, it ceases to be a good measure"</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://ntietz.com/">Nicole Tietz-Sokolskaya</podcast:person>
    </item>
    <item>
      <title>217: Podcasting / SaaS / Work Life Balance - Justin Jackson</title>
      <itunes:episode>217</itunes:episode>
      <podcast:episode>217</podcast:episode>
      <itunes:title>217: Podcasting / SaaS / Work Life Balance - Justin Jackson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">115370d5-f365-4641-a87e-fd7bb4309fe4</guid>
      <link>https://pythontest.com/testandcode/episodes/217-podcasting-saas-work-life-balance-justin-jackson</link>
      <description>
        <![CDATA[<p>If you've ever thought about starting a podcast or a SaaS project, you'll want to listen to this episode.<br> <br>Justin is one of the people who motivated me to get started podcasting. <br>He's also running a successful SaaS company, <a href="https://transistor.fm/?via=okken">transistor.fm</a>, which hosts this podcast.</p><p>Topics:</p><ul><li>Podcasting</li><li>Building new SaaS (software as a service) products</li><li>Balancing work, side hustle, and family</li><li>Great places to snowboard in British Columbia</li></ul><p>BTW. </p><p>Links from the show:</p><ul><li><a href="https://transistor.fm/?via=okken">Transistor.fm</a> - excellent podcast hosting, Justin is a co-founder</li><li><a href="https://transistor.fm/how-to-start-a-podcast/?via=okken">How to start a podcast in 2024</a></li><li>Podcasts from Justin<ul><li><a href="https://saas.transistor.fm/">Build your SaaS</a> - current</li><li><a href="https://www.buildandlaunch.net/">Build &amp; Launch</a> - an older one, but great</li><li><a href="https://podcast.megamaker.co/">MegaMaker</a> - from 2021 / 2022</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>If you've ever thought about starting a podcast or a SaaS project, you'll want to listen to this episode.<br> <br>Justin is one of the people who motivated me to get started podcasting. <br>He's also running a successful SaaS company, <a href="https://transistor.fm/?via=okken">transistor.fm</a>, which hosts this podcast.</p><p>Topics:</p><ul><li>Podcasting</li><li>Building new SaaS (software as a service) products</li><li>Balancing work, side hustle, and family</li><li>Great places to snowboard in British Columbia</li></ul><p>BTW. </p><p>Links from the show:</p><ul><li><a href="https://transistor.fm/?via=okken">Transistor.fm</a> - excellent podcast hosting, Justin is a co-founder</li><li><a href="https://transistor.fm/how-to-start-a-podcast/?via=okken">How to start a podcast in 2024</a></li><li>Podcasts from Justin<ul><li><a href="https://saas.transistor.fm/">Build your SaaS</a> - current</li><li><a href="https://www.buildandlaunch.net/">Build &amp; Launch</a> - an older one, but great</li><li><a href="https://podcast.megamaker.co/">MegaMaker</a> - from 2021 / 2022</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 11 Apr 2024 00:36:05 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/217.mp3" length="40734500" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3393</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>If you've ever thought about starting a podcast or a SaaS project, you'll want to listen to this episode.<br> <br>Justin is one of the people who motivated me to get started podcasting. <br>He's also running a successful SaaS company, <a href="https://transistor.fm/?via=okken">transistor.fm</a>, which hosts this podcast.</p><p>Topics:</p><ul><li>Podcasting</li><li>Building new SaaS (software as a service) products</li><li>Balancing work, side hustle, and family</li><li>Great places to snowboard in British Columbia</li></ul><p>BTW. </p><p>Links from the show:</p><ul><li><a href="https://transistor.fm/?via=okken">Transistor.fm</a> - excellent podcast hosting, Justin is a co-founder</li><li><a href="https://transistor.fm/how-to-start-a-podcast/?via=okken">How to start a podcast in 2024</a></li><li>Podcasts from Justin<ul><li><a href="https://saas.transistor.fm/">Build your SaaS</a> - current</li><li><a href="https://www.buildandlaunch.net/">Build &amp; Launch</a> - an older one, but great</li><li><a href="https://podcast.megamaker.co/">MegaMaker</a> - from 2021 / 2022</li></ul></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://justinjackson.ca">Justin Jackson</podcast:person>
    </item>
    <item>
      <title>216: ruff, uv, and Astral: Python tooling, much faster, with Rust</title>
      <itunes:episode>216</itunes:episode>
      <podcast:episode>216</podcast:episode>
      <itunes:title>216: ruff, uv, and Astral: Python tooling, much faster, with Rust</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2ec45242-73fa-472c-a442-e0511a7eb052</guid>
      <link>https://pythontest.com/testandcode/episodes/ruff-astral-uv-charlie-marsh</link>
      <description>
        <![CDATA[<p>Charlie Marsh and team are using Rust to make Python tooling faster.</p><ul><li>Ruff can take the place of Flake8, isort, and Black, and so much more.</li><li>uv can take the place of pip, pip-tools, and virtualenv</li><li>Astral is Charlie's venture backed company, and what they have with `ruff` and `uv` is just the start.</li></ul><p>Since uv is the newest tool, there's quite a bit of the discussion diving into uv.</p><p><strong>Links:</strong></p><ul><li><a href="https://astral.sh/ruff">ruff</a></li><li><a href="https://astral.sh">Astral</a></li><li><a href="https://github.com/astral-sh/uv">uv</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Charlie Marsh and team are using Rust to make Python tooling faster.</p><ul><li>Ruff can take the place of Flake8, isort, and Black, and so much more.</li><li>uv can take the place of pip, pip-tools, and virtualenv</li><li>Astral is Charlie's venture backed company, and what they have with `ruff` and `uv` is just the start.</li></ul><p>Since uv is the newest tool, there's quite a bit of the discussion diving into uv.</p><p><strong>Links:</strong></p><ul><li><a href="https://astral.sh/ruff">ruff</a></li><li><a href="https://astral.sh">Astral</a></li><li><a href="https://github.com/astral-sh/uv">uv</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 11 Mar 2024 13:12:28 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/216.mp3" length="34714640" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2891</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Charlie Marsh and team are using Rust to make Python tooling faster.</p><ul><li>Ruff can take the place of Flake8, isort, and Black, and so much more.</li><li>uv can take the place of pip, pip-tools, and virtualenv</li><li>Astral is Charlie's venture backed company, and what they have with `ruff` and `uv` is just the start.</li></ul><p>Since uv is the newest tool, there's quite a bit of the discussion diving into uv.</p><p><strong>Links:</strong></p><ul><li><a href="https://astral.sh/ruff">ruff</a></li><li><a href="https://astral.sh">Astral</a></li><li><a href="https://github.com/astral-sh/uv">uv</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://astral.sh/">Charlie Marsh</podcast:person>
    </item>
    <item>
      <title>215: Staying Technical as a Manager</title>
      <itunes:episode>215</itunes:episode>
      <podcast:episode>215</podcast:episode>
      <itunes:title>215: Staying Technical as a Manager</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">887a2cf5-9eb2-4170-a6ca-be82fc029c8d</guid>
      <link>https://pythontest.com/testandcode/episodes/215-staying-technical-as-a-manager</link>
      <description>
        <![CDATA[<p>Software engineers that move into leadership roles have a struggle between learning leadership skills, maintaining technical skills, and learning new leadership and technical skills. <br>Matt Makai went from individual contributor to developer relations to leadership in devrel. <br>We discuss how to stay technical, as well as dive into some results of his studies in how companies use developer relationship channels.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Software engineers that move into leadership roles have a struggle between learning leadership skills, maintaining technical skills, and learning new leadership and technical skills. <br>Matt Makai went from individual contributor to developer relations to leadership in devrel. <br>We discuss how to stay technical, as well as dive into some results of his studies in how companies use developer relationship channels.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 25 Feb 2024 09:38:53 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/215.mp3" length="28350241" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2361</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Software engineers that move into leadership roles have a struggle between learning leadership skills, maintaining technical skills, and learning new leadership and technical skills. <br>Matt Makai went from individual contributor to developer relations to leadership in devrel. <br>We discuss how to stay technical, as well as dive into some results of his studies in how companies use developer relationship channels.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://www.fullstackpython.com">Matt Makai</podcast:person>
    </item>
    <item>
      <title>214: Python Testing in VS Code</title>
      <itunes:episode>214</itunes:episode>
      <podcast:episode>214</podcast:episode>
      <itunes:title>214: Python Testing in VS Code</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6e388bb0-d37e-444c-ba99-b5583badc78b</guid>
      <link>https://pythontest.com/testandcode/episodes/214-python-testing-in-vs-code</link>
      <description>
        <![CDATA[<p>If you haven't tried running automated tests, especially with pytest,  in VS Code recently, you should take another look.<br>The Python for VS Code interface for testing, especially for pytest, has changed recently. <br>On this episode we discuss the change with the software engineer working on the pytest changes, Eleanor Boyd, and the product manager, Courtney Webster. </p><p>Links from the episode:</p><ul><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite">Blog post announcing the rewrite</a> <a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite"> </a></li><li><a href="https://github.com/microsoft/vscode-python">Code repo for questions, comments, issues etc</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>If you haven't tried running automated tests, especially with pytest,  in VS Code recently, you should take another look.<br>The Python for VS Code interface for testing, especially for pytest, has changed recently. <br>On this episode we discuss the change with the software engineer working on the pytest changes, Eleanor Boyd, and the product manager, Courtney Webster. </p><p>Links from the episode:</p><ul><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite">Blog post announcing the rewrite</a> <a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite"> </a></li><li><a href="https://github.com/microsoft/vscode-python">Code repo for questions, comments, issues etc</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 06 Feb 2024 22:20:10 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/214.mp3" length="27988492" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2331</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>If you haven't tried running automated tests, especially with pytest,  in VS Code recently, you should take another look.<br>The Python for VS Code interface for testing, especially for pytest, has changed recently. <br>On this episode we discuss the change with the software engineer working on the pytest changes, Eleanor Boyd, and the product manager, Courtney Webster. </p><p>Links from the episode:</p><ul><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite">Blog post announcing the rewrite</a> <a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite"> </a></li><li><a href="https://github.com/microsoft/vscode-python">Code repo for questions, comments, issues etc</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://github.com/eleanorjboyd">Eleanor Boyd</podcast:person>
      <podcast:person role="Guest" href="https://github.com/cwebster-99/">Courtney Webster</podcast:person>
    </item>
    <item>
      <title>213: Repeating Tests</title>
      <itunes:episode>213</itunes:episode>
      <podcast:episode>213</podcast:episode>
      <itunes:title>213: Repeating Tests</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b949c240-39a3-4a42-8402-d7689527ef8a</guid>
      <link>https://pythontest.com/testandcode/episodes/213-repeating-tests</link>
      <description>
        <![CDATA[<p>If a test fails in a test suite, I'm going to want to re-run the test. I may even want to re-run a test, or a subset of the suite, a bunch of times.  <br>There are a few pytest plugins that help with this:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures">pytest-rerunfailures</a></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a></li><li><a href="https://github.com/pytest-dev/pytest-instafail">pytest-instafail</a></li></ul><p>We talk about each of these in this episode.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>If a test fails in a test suite, I'm going to want to re-run the test. I may even want to re-run a test, or a subset of the suite, a bunch of times.  <br>There are a few pytest plugins that help with this:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures">pytest-rerunfailures</a></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a></li><li><a href="https://github.com/pytest-dev/pytest-instafail">pytest-instafail</a></li></ul><p>We talk about each of these in this episode.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 19 Jan 2024 15:09:28 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/213.mp3" length="9950200" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>827</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>If a test fails in a test suite, I'm going to want to re-run the test. I may even want to re-run a test, or a subset of the suite, a bunch of times.  <br>There are a few pytest plugins that help with this:</p><ul><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures">pytest-rerunfailures</a></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a></li><li><a href="https://github.com/pytest-dev/pytest-instafail">pytest-instafail</a></li></ul><p>We talk about each of these in this episode.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>212: Canon TDD - by Kent Beck</title>
      <itunes:episode>212</itunes:episode>
      <podcast:episode>212</podcast:episode>
      <itunes:title>212: Canon TDD - by Kent Beck</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ac28eb85-8d49-4299-b8c1-aec7f7a7d2a5</guid>
      <link>https://pythontest.com/testandcode/episodes/212-canon-tdd-by-kent-beck</link>
      <description>
        <![CDATA[<p>In 2002, Kent Beck released a book called  "Test Driven Development by Example".<br>In December of 2023, Kent wrote an article called "Canon TDD".<br>With Kent's permission, this episode contains the full content of the article.</p><p>Brian's commentary is saved for a followup episode.</p><p>Links:</p><ul><li><a href="https://tidyfirst.substack.com/p/canon-tdd">Canon TDD</a></li><li><a href="https://bookshop.org/p/books/test-driven-development-by-example-kent-beck/115205">Test Driven Development by Example</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In 2002, Kent Beck released a book called  "Test Driven Development by Example".<br>In December of 2023, Kent wrote an article called "Canon TDD".<br>With Kent's permission, this episode contains the full content of the article.</p><p>Brian's commentary is saved for a followup episode.</p><p>Links:</p><ul><li><a href="https://tidyfirst.substack.com/p/canon-tdd">Canon TDD</a></li><li><a href="https://bookshop.org/p/books/test-driven-development-by-example-kent-beck/115205">Test Driven Development by Example</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 13 Jan 2024 12:18:28 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/212.mp3" length="5732792" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>476</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In 2002, Kent Beck released a book called  "Test Driven Development by Example".<br>In December of 2023, Kent wrote an article called "Canon TDD".<br>With Kent's permission, this episode contains the full content of the article.</p><p>Brian's commentary is saved for a followup episode.</p><p>Links:</p><ul><li><a href="https://tidyfirst.substack.com/p/canon-tdd">Canon TDD</a></li><li><a href="https://bookshop.org/p/books/test-driven-development-by-example-kent-beck/115205">Test Driven Development by Example</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>211: Stamp out test dependencies with pytest plugins</title>
      <itunes:episode>211</itunes:episode>
      <podcast:episode>211</podcast:episode>
      <itunes:title>211: Stamp out test dependencies with pytest plugins</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7e768143-22a1-4176-966e-60a14feb6275</guid>
      <link>https://pythontest.com/testandcode/episodes/211-stamp-out-test-dependencies-with-pytest-plugins</link>
      <description>
        <![CDATA[<p>We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  <br>If the behavior is different in isolation vs in a suite, it's a nightmare to debug. </p><p>In this episode, we'll talk about:</p><ul><li>Causes of dependence</li><li>Testing for dependencies using plugins</li><li>Debugging test dependencies</li></ul><p>Plugins discussed:</p><ul><li>pytest-randomly</li><li>pytest-reverse</li><li>pytest-random-order</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  <br>If the behavior is different in isolation vs in a suite, it's a nightmare to debug. </p><p>In this episode, we'll talk about:</p><ul><li>Causes of dependence</li><li>Testing for dependencies using plugins</li><li>Debugging test dependencies</li></ul><p>Plugins discussed:</p><ul><li>pytest-randomly</li><li>pytest-reverse</li><li>pytest-random-order</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 15 Dec 2023 16:17:07 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/211.mp3" length="13292129" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1106</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  <br>If the behavior is different in isolation vs in a suite, it's a nightmare to debug. </p><p>In this episode, we'll talk about:</p><ul><li>Causes of dependence</li><li>Testing for dependencies using plugins</li><li>Debugging test dependencies</li></ul><p>Plugins discussed:</p><ul><li>pytest-randomly</li><li>pytest-reverse</li><li>pytest-random-order</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>210: TDD - Refactor while green</title>
      <itunes:episode>210</itunes:episode>
      <podcast:episode>210</podcast:episode>
      <itunes:title>210: TDD - Refactor while green</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e09abcbc-7fa9-458c-aa84-4c1324009054</guid>
      <link>https://pythontest.com/testandcode/episodes/210-tdd-refactor-while-green</link>
      <description>
        <![CDATA[<p>Test Driven Development. Red, Green, Refactor. </p><ul><li>Do we have to do the refactor part? </li><li>Does the refactor at the end include tests? </li><li>Or can I refactor the tests at any time?</li><li>Why is refactor at the end? </li></ul><p>This episode is to talk about this with a an example.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Test Driven Development. Red, Green, Refactor. </p><ul><li>Do we have to do the refactor part? </li><li>Does the refactor at the end include tests? </li><li>Or can I refactor the tests at any time?</li><li>Why is refactor at the end? </li></ul><p>This episode is to talk about this with a an example.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 29 Nov 2023 17:29:08 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/210.mp3" length="11644513" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>969</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Test Driven Development. Red, Green, Refactor. </p><ul><li>Do we have to do the refactor part? </li><li>Does the refactor at the end include tests? </li><li>Or can I refactor the tests at any time?</li><li>Why is refactor at the end? </li></ul><p>This episode is to talk about this with a an example.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>209: Testing argparse Applications</title>
      <itunes:episode>209</itunes:episode>
      <podcast:episode>209</podcast:episode>
      <itunes:title>209: Testing argparse Applications</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3283a1d4-08c8-47f8-95eb-8defd63aec6a</guid>
      <link>https://pythontest.com/testandcode/episodes/209-testing-argparse-applications</link>
      <description>
        <![CDATA[<p>How do you test the argument parsing bit of an application that uses argparse?</p><p>This episode covers:</p><ul><li>Design for Test: Structuring your app or script so it's easier to test.</li><li>pytest &amp; capsys for testing stdout</li><li>Adding debug and preview flags for debugging and testing</li><li>And reverting to subprocess.run if you can't modify the code under test</li></ul><p>Also, there's a full writeup and code samples available:</p><ul><li>Blog post: <a href="https://pythontest.com/testing-argparse-apps/">Testing argparse Applications</a> </li><li><a href="https://github.com/okken/test-argparse-apps-hello-world">Code Repo</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How do you test the argument parsing bit of an application that uses argparse?</p><p>This episode covers:</p><ul><li>Design for Test: Structuring your app or script so it's easier to test.</li><li>pytest &amp; capsys for testing stdout</li><li>Adding debug and preview flags for debugging and testing</li><li>And reverting to subprocess.run if you can't modify the code under test</li></ul><p>Also, there's a full writeup and code samples available:</p><ul><li>Blog post: <a href="https://pythontest.com/testing-argparse-apps/">Testing argparse Applications</a> </li><li><a href="https://github.com/okken/test-argparse-apps-hello-world">Code Repo</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 16 Nov 2023 13:07:04 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/209.mp3" length="11768023" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>979</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How do you test the argument parsing bit of an application that uses argparse?</p><p>This episode covers:</p><ul><li>Design for Test: Structuring your app or script so it's easier to test.</li><li>pytest &amp; capsys for testing stdout</li><li>Adding debug and preview flags for debugging and testing</li><li>And reverting to subprocess.run if you can't modify the code under test</li></ul><p>Also, there's a full writeup and code samples available:</p><ul><li>Blog post: <a href="https://pythontest.com/testing-argparse-apps/">Testing argparse Applications</a> </li><li><a href="https://github.com/okken/test-argparse-apps-hello-world">Code Repo</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>208: Tests with no assert statements</title>
      <itunes:episode>208</itunes:episode>
      <podcast:episode>208</podcast:episode>
      <itunes:title>208: Tests with no assert statements</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">fe456c74-2c99-4a17-8e24-1e8d4bbbed1b</guid>
      <link>https://pythontest.com/testandcode/episodes/208-tests-with-no-assert-statements</link>
      <description>
        <![CDATA[<p>Why on earth would you want to write a test with no assert statements?<br>After all, aren't assert statements how you decide wether a test passes or fails?</p><p>In this episode, we walk through a handful of useful examples of test code without asserts.<br>We also talk about how these types of tests are a great way to dip your toe into testing.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Why on earth would you want to write a test with no assert statements?<br>After all, aren't assert statements how you decide wether a test passes or fails?</p><p>In this episode, we walk through a handful of useful examples of test code without asserts.<br>We also talk about how these types of tests are a great way to dip your toe into testing.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 29 Oct 2023 17:28:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/208.mp3" length="9131434" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>759</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Why on earth would you want to write a test with no assert statements?<br>After all, aren't assert statements how you decide wether a test passes or fails?</p><p>In this episode, we walk through a handful of useful examples of test code without asserts.<br>We also talk about how these types of tests are a great way to dip your toe into testing.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>207: pytest course, pytest-repeat and pytest-flakefinder</title>
      <itunes:episode>207</itunes:episode>
      <podcast:episode>207</podcast:episode>
      <itunes:title>207: pytest course, pytest-repeat and pytest-flakefinder</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f537b2a9-2d29-4306-95d1-bad6d5340ff8</guid>
      <link>https://pythontest.com/testandcode/episodes/207-pytest-course-repeat-flakefinder</link>
      <description>
        <![CDATA[<ul><li>New course: <a href="https://pythontest.com/courses">"The Complete pytest Course"</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a>, which I'm starting to contribute to<ul><li>Give `--repeat-scope` a try. You can use it to change from repeating every test to repeating the session, module, or class.</li></ul></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a>, which is an alternative to pytest-repeat</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> is completely unrelated, but mentioned in the show</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>New course: <a href="https://pythontest.com/courses">"The Complete pytest Course"</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a>, which I'm starting to contribute to<ul><li>Give `--repeat-scope` a try. You can use it to change from repeating every test to repeating the session, module, or class.</li></ul></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a>, which is an alternative to pytest-repeat</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> is completely unrelated, but mentioned in the show</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 25 Sep 2023 18:37:17 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/207.mp3" length="13329538" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>832</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>New course: <a href="https://pythontest.com/courses">"The Complete pytest Course"</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a>, which I'm starting to contribute to<ul><li>Give `--repeat-scope` a try. You can use it to change from repeating every test to repeating the session, module, or class.</li></ul></li><li><a href="https://github.com/dropbox/pytest-flakefinder">pytest-flakefinder</a>, which is an alternative to pytest-repeat</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> is completely unrelated, but mentioned in the show</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>206: TDD in Context</title>
      <itunes:episode>206</itunes:episode>
      <podcast:episode>206</podcast:episode>
      <itunes:title>206: TDD in Context</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">263fd4b9-22ba-46ed-a413-de8ebb92e3cc</guid>
      <link>https://pythontest.com/testandcode/episodes/206-tdd-in-context</link>
      <description>
        <![CDATA[<p>TDD (Test Driven Development) started from Test First Programming, and has been around at least since the 90's. </p><p>However, software tools and available CI systems have changed quite a bit since then. <br>Maybe it's time to re-examine the assumptions, practices, processes, and principles of TDD. <br> <br>At least in the context of my software engineering career, modifications to TDD, at least the version of TDD as it's frequently taught, have been necessary. </p><p>This is the start of a series focused on examining TDD and related lightweight practices and processes.</p><p><strong>Links from the show:</strong></p><ul><li>From XP<ul><li><a href="http://www.extremeprogramming.org/rules/testfirst.html">Test First</a></li><li><a href="http://www.extremeprogramming.org/rules/unittests.html">Unit Tests</a></li><li><a href="http://www.extremeprogramming.org/rules/functionaltests.html">Acceptance Tests</a></li></ul></li><li><a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development (wikipedia)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>TDD (Test Driven Development) started from Test First Programming, and has been around at least since the 90's. </p><p>However, software tools and available CI systems have changed quite a bit since then. <br>Maybe it's time to re-examine the assumptions, practices, processes, and principles of TDD. <br> <br>At least in the context of my software engineering career, modifications to TDD, at least the version of TDD as it's frequently taught, have been necessary. </p><p>This is the start of a series focused on examining TDD and related lightweight practices and processes.</p><p><strong>Links from the show:</strong></p><ul><li>From XP<ul><li><a href="http://www.extremeprogramming.org/rules/testfirst.html">Test First</a></li><li><a href="http://www.extremeprogramming.org/rules/unittests.html">Unit Tests</a></li><li><a href="http://www.extremeprogramming.org/rules/functionaltests.html">Acceptance Tests</a></li></ul></li><li><a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development (wikipedia)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 23 Aug 2023 16:36:56 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/206.mp3" length="14887028" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1239</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>TDD (Test Driven Development) started from Test First Programming, and has been around at least since the 90's. </p><p>However, software tools and available CI systems have changed quite a bit since then. <br>Maybe it's time to re-examine the assumptions, practices, processes, and principles of TDD. <br> <br>At least in the context of my software engineering career, modifications to TDD, at least the version of TDD as it's frequently taught, have been necessary. </p><p>This is the start of a series focused on examining TDD and related lightweight practices and processes.</p><p><strong>Links from the show:</strong></p><ul><li>From XP<ul><li><a href="http://www.extremeprogramming.org/rules/testfirst.html">Test First</a></li><li><a href="http://www.extremeprogramming.org/rules/unittests.html">Unit Tests</a></li><li><a href="http://www.extremeprogramming.org/rules/functionaltests.html">Acceptance Tests</a></li></ul></li><li><a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development (wikipedia)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>205: pytest autouse fixtures</title>
      <itunes:episode>205</itunes:episode>
      <podcast:episode>205</podcast:episode>
      <itunes:title>205: pytest autouse fixtures</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">638b3af9-7073-4ec4-957d-eef6c48be890</guid>
      <link>https://pythontest.com/testandcode/episodes/pytest-autouse-fixtures</link>
      <description>
        <![CDATA[<p>On a recent episode of PythonBytes, I suggested it's hard to come up with good examples for pytest autouse fixtures, as there aren't very many good reasons to use them.  James Falcon was kind enough to reach out and correct me. </p><p>In this episode, we describe:</p><ul><li>what fixtures are</li><li>what autouse fixtures are</li><li>great reasons to use them</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>On a recent episode of PythonBytes, I suggested it's hard to come up with good examples for pytest autouse fixtures, as there aren't very many good reasons to use them.  James Falcon was kind enough to reach out and correct me. </p><p>In this episode, we describe:</p><ul><li>what fixtures are</li><li>what autouse fixtures are</li><li>great reasons to use them</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 31 Jul 2023 17:55:40 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/205.mp3" length="21380555" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1780</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>On a recent episode of PythonBytes, I suggested it's hard to come up with good examples for pytest autouse fixtures, as there aren't very many good reasons to use them.  James Falcon was kind enough to reach out and correct me. </p><p>In this episode, we describe:</p><ul><li>what fixtures are</li><li>what autouse fixtures are</li><li>great reasons to use them</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">James Falcon</podcast:person>
    </item>
    <item>
      <title>204: Free Your Inner Nonfiction Writer - Johanna Rothman</title>
      <itunes:episode>204</itunes:episode>
      <podcast:episode>204</podcast:episode>
      <itunes:title>204: Free Your Inner Nonfiction Writer - Johanna Rothman</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d4291bde-247e-4e64-8043-b8d5409dbbd6</guid>
      <link>https://pythontest.com/testandcode/episodes/free-your-inner-nonfiction-writer</link>
      <description>
        <![CDATA[<p>Learn how to write nonfiction fast and well.<br>Johanna Rothman joins the show to discuss writing nonfiction.</p><p>Johanna's book: <a href="https://pragprog.com/titles/d-jrnfwriter/free-your-inner-nonfiction-writer/">Free Your Inner Nonfiction Writer</a></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Learn how to write nonfiction fast and well.<br>Johanna Rothman joins the show to discuss writing nonfiction.</p><p>Johanna's book: <a href="https://pragprog.com/titles/d-jrnfwriter/free-your-inner-nonfiction-writer/">Free Your Inner Nonfiction Writer</a></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 18 Jul 2023 14:01:53 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/204.mp3" length="27596055" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2298</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Learn how to write nonfiction fast and well.<br>Johanna Rothman joins the show to discuss writing nonfiction.</p><p>Johanna's book: <a href="https://pragprog.com/titles/d-jrnfwriter/free-your-inner-nonfiction-writer/">Free Your Inner Nonfiction Writer</a></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Guest" href="https://www.jrothman.com">Johanna Rothman</podcast:person>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>203: Open Source at Intel</title>
      <itunes:episode>203</itunes:episode>
      <podcast:episode>203</podcast:episode>
      <itunes:title>203: Open Source at Intel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3d133f00-e5ca-4795-8671-eb7d0fb32f74</guid>
      <link>https://pythontest.com/testandcode/episodes/open-source-at-intel</link>
      <description>
        <![CDATA[<p>Open Source is important to Intel and has been for a very long time.</p><p>Joe Curley, vice president and general manager of software products and ecosystem, and Arun Gupta, vice president and general manager for open ecosystems, join the show to discuss open source, OneAPI, and open ecosystems at Intel.</p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Open Source is important to Intel and has been for a very long time.</p><p>Joe Curley, vice president and general manager of software products and ecosystem, and Arun Gupta, vice president and general manager for open ecosystems, join the show to discuss open source, OneAPI, and open ecosystems at Intel.</p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 17 Jul 2023 09:35:18 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/203.mp3" length="31971743" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2662</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Open Source is important to Intel and has been for a very long time.</p><p>Joe Curley, vice president and general manager of software products and ecosystem, and Arun Gupta, vice president and general manager for open ecosystems, join the show to discuss open source, OneAPI, and open ecosystems at Intel.</p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Guest" href="https://github.com/arun-gupta">Arun Gupta</podcast:person>
      <podcast:person role="Guest">Joe Curley</podcast:person>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>202: Using Towncrier to Keep a Changelog - Hynek Schlawack</title>
      <itunes:episode>202</itunes:episode>
      <podcast:episode>202</podcast:episode>
      <itunes:title>202: Using Towncrier to Keep a Changelog - Hynek Schlawack</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f4d41d54-7a49-47bf-95a1-413049bc8d5b</guid>
      <link>https://pythontest.com/testandcode/episodes/202-using-towncrier-to-keep-a-changelog</link>
      <description>
        <![CDATA[<p>Hynek joins the show to discuss towncrier. </p><p>At the top of the towncrier documentation, it says "towncrier is a utility to produce useful, summarized news files (also known as changelogs) for your project."</p><p>Towncrier is used by "Twisted, pytest, pip, BuildBot, and attrs, among others."</p><p>This is the last of 3 episodes focused on keeping a CHANGELOG. </p><p><a href="https://pythontest.com/testandcode/200">Episode 200</a> kicked off the series with keepachangelog.com and Olivier Lacan<br> In <a href="https://pythontest.com/testandcode/201">201</a> we had Ned Batchelder discussing scriv.</p><p>Special Guest: Hynek Schlawack.</p><p><br></p><p>Links:</p><ul><li><a href="https://towncrier.readthedocs.io/en/stable/">Towncrier docs</a></li><li><a href="https://towncrier.readthedocs.io/en/stable/markdown.html">How to Keep a Changelog in Markdown - Towncrier docs</a></li><li><a href="https://keepachangelog.com/en/1.0.0/">Keep a Changelog</a></li><li><a href="https://github.com/hynek/structlog/blob/main/CHANGELOG.md">structlog/CHANGELOG.md</a> — Example of manually edited changelog.</li><li><a href="https://github.com/hynek/hatch-fancy-pypi-readme">hatch-fancy-pypi-readme</a></li><li><a href="https://myst-tools.org/">MyST Markdown </a></li><li><a href="https://pypi.org/project/hatchling/">hatchling</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Hynek joins the show to discuss towncrier. </p><p>At the top of the towncrier documentation, it says "towncrier is a utility to produce useful, summarized news files (also known as changelogs) for your project."</p><p>Towncrier is used by "Twisted, pytest, pip, BuildBot, and attrs, among others."</p><p>This is the last of 3 episodes focused on keeping a CHANGELOG. </p><p><a href="https://pythontest.com/testandcode/200">Episode 200</a> kicked off the series with keepachangelog.com and Olivier Lacan<br> In <a href="https://pythontest.com/testandcode/201">201</a> we had Ned Batchelder discussing scriv.</p><p>Special Guest: Hynek Schlawack.</p><p><br></p><p>Links:</p><ul><li><a href="https://towncrier.readthedocs.io/en/stable/">Towncrier docs</a></li><li><a href="https://towncrier.readthedocs.io/en/stable/markdown.html">How to Keep a Changelog in Markdown - Towncrier docs</a></li><li><a href="https://keepachangelog.com/en/1.0.0/">Keep a Changelog</a></li><li><a href="https://github.com/hynek/structlog/blob/main/CHANGELOG.md">structlog/CHANGELOG.md</a> — Example of manually edited changelog.</li><li><a href="https://github.com/hynek/hatch-fancy-pypi-readme">hatch-fancy-pypi-readme</a></li><li><a href="https://myst-tools.org/">MyST Markdown </a></li><li><a href="https://pypi.org/project/hatchling/">hatchling</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 31 May 2023 14:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/202.mp3" length="35321823" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2942</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Hynek joins the show to discuss towncrier. </p><p>At the top of the towncrier documentation, it says "towncrier is a utility to produce useful, summarized news files (also known as changelogs) for your project."</p><p>Towncrier is used by "Twisted, pytest, pip, BuildBot, and attrs, among others."</p><p>This is the last of 3 episodes focused on keeping a CHANGELOG. </p><p><a href="https://pythontest.com/testandcode/200">Episode 200</a> kicked off the series with keepachangelog.com and Olivier Lacan<br> In <a href="https://pythontest.com/testandcode/201">201</a> we had Ned Batchelder discussing scriv.</p><p>Special Guest: Hynek Schlawack.</p><p><br></p><p>Links:</p><ul><li><a href="https://towncrier.readthedocs.io/en/stable/">Towncrier docs</a></li><li><a href="https://towncrier.readthedocs.io/en/stable/markdown.html">How to Keep a Changelog in Markdown - Towncrier docs</a></li><li><a href="https://keepachangelog.com/en/1.0.0/">Keep a Changelog</a></li><li><a href="https://github.com/hynek/structlog/blob/main/CHANGELOG.md">structlog/CHANGELOG.md</a> — Example of manually edited changelog.</li><li><a href="https://github.com/hynek/hatch-fancy-pypi-readme">hatch-fancy-pypi-readme</a></li><li><a href="https://myst-tools.org/">MyST Markdown </a></li><li><a href="https://pypi.org/project/hatchling/">hatchling</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://hynek.me/">Hynek Schlawack</podcast:person>
    </item>
    <item>
      <title>201: Avoid merge conflicts on your CHANGELOG with scriv - Ned Batchelder</title>
      <itunes:episode>201</itunes:episode>
      <podcast:episode>201</podcast:episode>
      <itunes:title>201: Avoid merge conflicts on your CHANGELOG with scriv - Ned Batchelder</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0b5d370d-deff-4638-ba19-c21fa7c29925</guid>
      <link>https://pythontest.com/testandcode/episodes/201-avoid-merge-conflicts-on-your-changelog-with-scriv</link>
      <description>
        <![CDATA[<p>Last week we talked about the importance of keeping a changelog.<br> This week we talk with Ned Batchelder about scriv, a tool to help maintain that changelog.</p><p>Scriv "is a command-line tool for helping developers maintain useful changelogs. It manages a directory of changelog fragments. It aggregates them into entries in a CHANGELOG file."</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/nedbat/scriv">nedbat/scriv: Changelog management tool</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Last week we talked about the importance of keeping a changelog.<br> This week we talk with Ned Batchelder about scriv, a tool to help maintain that changelog.</p><p>Scriv "is a command-line tool for helping developers maintain useful changelogs. It manages a directory of changelog fragments. It aggregates them into entries in a CHANGELOG file."</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/nedbat/scriv">nedbat/scriv: Changelog management tool</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 25 May 2023 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/201.mp3" length="24577047" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2046</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Last week we talked about the importance of keeping a changelog.<br> This week we talk with Ned Batchelder about scriv, a tool to help maintain that changelog.</p><p>Scriv "is a command-line tool for helping developers maintain useful changelogs. It manages a directory of changelog fragments. It aggregates them into entries in a CHANGELOG file."</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/nedbat/scriv">nedbat/scriv: Changelog management tool</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://nedbatchelder.com">Ned Batchelder</podcast:person>
    </item>
    <item>
      <title>200: Keep a CHANGELOG</title>
      <itunes:episode>200</itunes:episode>
      <podcast:episode>200</podcast:episode>
      <itunes:title>200: Keep a CHANGELOG</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e2e2d214-1fc7-4ce8-8bbd-181a4f556373</guid>
      <link>https://pythontest.com/testandcode/episodes/200-keep-a-changelog</link>
      <description>
        <![CDATA[<p>A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.<br> This episode is about what a changelog is, with an interview with Olivier Lacan, creator of <a href="https://keepachangelog.com">keepachangelog.com</a>.<br> The next two episodes talk about some tools to help software project teams keep changelogs while avoiding merge conflicts. </p><p>Special Guest: Olivier Lacan.</p><p><br></p><p>Links:</p><ul><li><a href="https://shields.io/">Shields.io</a></li><li><a href="https://keepachangelog.com/en/1.1.0/">Keep a Changelog</a></li><li><a href="https://changelog.com/podcast/127">"The Changelog" Podcast interview with Olivier Lacan</a></li><li><a href="https://olivierlacan.com/posts/an-open-source-rage-diamond/">An Open Source Rage Diamond</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.<br> This episode is about what a changelog is, with an interview with Olivier Lacan, creator of <a href="https://keepachangelog.com">keepachangelog.com</a>.<br> The next two episodes talk about some tools to help software project teams keep changelogs while avoiding merge conflicts. </p><p>Special Guest: Olivier Lacan.</p><p><br></p><p>Links:</p><ul><li><a href="https://shields.io/">Shields.io</a></li><li><a href="https://keepachangelog.com/en/1.1.0/">Keep a Changelog</a></li><li><a href="https://changelog.com/podcast/127">"The Changelog" Podcast interview with Olivier Lacan</a></li><li><a href="https://olivierlacan.com/posts/an-open-source-rage-diamond/">An Open Source Rage Diamond</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 19 May 2023 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/200.mp3" length="33704284" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2807</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A changelog is a file which contains a curated, chronologically ordered list of notable changes for each version of a project.<br> This episode is about what a changelog is, with an interview with Olivier Lacan, creator of <a href="https://keepachangelog.com">keepachangelog.com</a>.<br> The next two episodes talk about some tools to help software project teams keep changelogs while avoiding merge conflicts. </p><p>Special Guest: Olivier Lacan.</p><p><br></p><p>Links:</p><ul><li><a href="https://shields.io/">Shields.io</a></li><li><a href="https://keepachangelog.com/en/1.1.0/">Keep a Changelog</a></li><li><a href="https://changelog.com/podcast/127">"The Changelog" Podcast interview with Olivier Lacan</a></li><li><a href="https://olivierlacan.com/posts/an-open-source-rage-diamond/">An Open Source Rage Diamond</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>199: Is Azure Right for a Side Project? - Pamela Fox</title>
      <itunes:episode>199</itunes:episode>
      <podcast:episode>199</podcast:episode>
      <itunes:title>199: Is Azure Right for a Side Project? - Pamela Fox</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e113d9ae-dfc9-4e75-906b-75fb36ce2385</guid>
      <link>https://pythontest.com/testandcode/episodes/199-is-azure-right-for-a-side-project</link>
      <description>
        <![CDATA[<p>For a web side project to go from "working on desktop" to "live in the cloud", one decision that needs to be made is where to host everything. One option is Microsoft Azure. Lots of corporate sites use it. Is it right for side projects? </p><p>Pamela Fox, a Cloud Advocate for Python at Microsoft, joins the show to help us with that question.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/323/ai-search-wars-have-begun">Python Bytes Episode #323</a></li><li><a href="https://github.com/pamelafox">pamelafox gitHub projects</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli">Deploy a Python (Django or Flask) web app to Azure</a></li><li><a href="https://blog.pamelafox.org/2023/03/hosting-python-web-apps-on-azure-price.html">Hosting Python Web Apps on Azure: A Price-Off</a></li><li><a href="https://blog.pamelafox.org/2023/03/deploying-containerized-fastapi-app-to.html">Deploying a containerized FastAPI app to Azure Container Apps</a></li><li><a href="https://learn.microsoft.com/en-us/azure/developer/python/quickstarts-app-hosting">Getting started with hosting Python apps on Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/calculator/">Pricing Calculator for Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/details/app-service/windows/">App Service Pricing </a></li><li><a href="https://github.com/pamelafox/flask-db-quiz-example">pamelafox/flask-db-quiz-example</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?pivots=deploy-portal&amp;tabs=flask%2Cwindows">Tutorial: Deploy a Python Django or Flask web app with PostgreSQL</a></li><li><a href="https://fosstodon.org/@pamelafox">Pamela Fox on Mastodon</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>For a web side project to go from "working on desktop" to "live in the cloud", one decision that needs to be made is where to host everything. One option is Microsoft Azure. Lots of corporate sites use it. Is it right for side projects? </p><p>Pamela Fox, a Cloud Advocate for Python at Microsoft, joins the show to help us with that question.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/323/ai-search-wars-have-begun">Python Bytes Episode #323</a></li><li><a href="https://github.com/pamelafox">pamelafox gitHub projects</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli">Deploy a Python (Django or Flask) web app to Azure</a></li><li><a href="https://blog.pamelafox.org/2023/03/hosting-python-web-apps-on-azure-price.html">Hosting Python Web Apps on Azure: A Price-Off</a></li><li><a href="https://blog.pamelafox.org/2023/03/deploying-containerized-fastapi-app-to.html">Deploying a containerized FastAPI app to Azure Container Apps</a></li><li><a href="https://learn.microsoft.com/en-us/azure/developer/python/quickstarts-app-hosting">Getting started with hosting Python apps on Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/calculator/">Pricing Calculator for Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/details/app-service/windows/">App Service Pricing </a></li><li><a href="https://github.com/pamelafox/flask-db-quiz-example">pamelafox/flask-db-quiz-example</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?pivots=deploy-portal&amp;tabs=flask%2Cwindows">Tutorial: Deploy a Python Django or Flask web app with PostgreSQL</a></li><li><a href="https://fosstodon.org/@pamelafox">Pamela Fox on Mastodon</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 04 May 2023 09:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/199.mp3" length="36795123" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3064</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>For a web side project to go from "working on desktop" to "live in the cloud", one decision that needs to be made is where to host everything. One option is Microsoft Azure. Lots of corporate sites use it. Is it right for side projects? </p><p>Pamela Fox, a Cloud Advocate for Python at Microsoft, joins the show to help us with that question.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/323/ai-search-wars-have-begun">Python Bytes Episode #323</a></li><li><a href="https://github.com/pamelafox">pamelafox gitHub projects</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cwindows%2Cazure-cli%2Cvscode-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli">Deploy a Python (Django or Flask) web app to Azure</a></li><li><a href="https://blog.pamelafox.org/2023/03/hosting-python-web-apps-on-azure-price.html">Hosting Python Web Apps on Azure: A Price-Off</a></li><li><a href="https://blog.pamelafox.org/2023/03/deploying-containerized-fastapi-app-to.html">Deploying a containerized FastAPI app to Azure Container Apps</a></li><li><a href="https://learn.microsoft.com/en-us/azure/developer/python/quickstarts-app-hosting">Getting started with hosting Python apps on Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/calculator/">Pricing Calculator for Azure</a></li><li><a href="https://azure.microsoft.com/en-us/pricing/details/app-service/windows/">App Service Pricing </a></li><li><a href="https://github.com/pamelafox/flask-db-quiz-example">pamelafox/flask-db-quiz-example</a></li><li><a href="https://learn.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?pivots=deploy-portal&amp;tabs=flask%2Cwindows">Tutorial: Deploy a Python Django or Flask web app with PostgreSQL</a></li><li><a href="https://fosstodon.org/@pamelafox">Pamela Fox on Mastodon</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://pamelafox.org">Pamela Fox</podcast:person>
    </item>
    <item>
      <title>198: Testing Django Web Applications - Carlton Gibson, Will Vincent</title>
      <itunes:episode>198</itunes:episode>
      <podcast:episode>198</podcast:episode>
      <itunes:title>198: Testing Django Web Applications - Carlton Gibson, Will Vincent</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6ceabefa-2e37-48b7-a071-a36809d9d8f8</guid>
      <link>https://pythontest.com/testandcode/episodes/198-testing-django-web-applications</link>
      <description>
        <![CDATA[<p>Django has some built in ways to test your application. There's also pytest-django and other plugins that help with testing. Carlton Gibson and Will Vincent from the Django Chat Podcast join the show to discuss how to get started testing your Django application.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Django has some built in ways to test your application. There's also pytest-django and other plugins that help with testing. Carlton Gibson and Will Vincent from the Django Chat Podcast join the show to discuss how to get started testing your Django application.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 27 Apr 2023 13:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/198.mp3" length="44550057" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3711</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Django has some built in ways to test your application. There's also pytest-django and other plugins that help with testing. Carlton Gibson and Will Vincent from the Django Chat Podcast join the show to discuss how to get started testing your Django application.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://noumenal.es">Carlton Gibson</podcast:person>
      <podcast:person role="Guest" href="https://wsvincent.com">Will Vincent</podcast:person>
    </item>
    <item>
      <title>197: Python project trove classifiers - Do you need this bit of pyproject.toml metadata? - Brett Cannon</title>
      <itunes:episode>197</itunes:episode>
      <podcast:episode>197</podcast:episode>
      <itunes:title>197: Python project trove classifiers - Do you need this bit of pyproject.toml metadata? - Brett Cannon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b12fad8a-d62b-40bb-99db-d7beb2dbf251</guid>
      <link>https://pythontest.com/testandcode/episodes/197-python-project-trove-classifiers-do-you-need-this-bit-of-pyproject-toml-metadata</link>
      <description>
        <![CDATA[<p>Classifiers are one bit of Python project metadata that predates PyPI.</p><p> Classifiers are weird.</p><p> They were around in setuptools days, and are still here with pyproject.toml. </p><ul><li>What are they? </li><li>Why do we need them? </li><li>Do we need them?</li><li>Which classifiers should I include?</li><li>Why are they called "trove classifiers" in the <a href="https://pypi.org/classifiers/">Python docs</a></li></ul><p>Brett Cannon joins the show to discuss these wacky bits of metadata.</p><p>Here's an example, from <a href="https://github.com/okken/pytest-crayons/blob/main/pyproject.toml">pytest-crayons</a>:</p>[project]
...
classifiers = [
    "License :: OSI Approved :: MIT License",
    "Framework :: Pytest"
    ]
<br><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/classifiers/">Classifiers · PyPI</a></li><li><a href="https://peps.python.org/pep-0621">PEP 621 – Storing project metadata in pyproject.toml | peps.python.org</a></li><li><a href="https://packaging.python.org/en/latest/tutorials/packaging-projects/#configuring-metadata">Packaging Python Projects — Python Packaging User Guide</a> — Configuring metadata</li><li><a href="https://peps.python.org/pep-0639/">PEP 639 – Improving License Clarity with Better Package Metadata | peps.python.org</a></li><li><a href="https://spdx.dev/">SPDX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Classifiers are one bit of Python project metadata that predates PyPI.</p><p> Classifiers are weird.</p><p> They were around in setuptools days, and are still here with pyproject.toml. </p><ul><li>What are they? </li><li>Why do we need them? </li><li>Do we need them?</li><li>Which classifiers should I include?</li><li>Why are they called "trove classifiers" in the <a href="https://pypi.org/classifiers/">Python docs</a></li></ul><p>Brett Cannon joins the show to discuss these wacky bits of metadata.</p><p>Here's an example, from <a href="https://github.com/okken/pytest-crayons/blob/main/pyproject.toml">pytest-crayons</a>:</p>[project]
...
classifiers = [
    "License :: OSI Approved :: MIT License",
    "Framework :: Pytest"
    ]
<br><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/classifiers/">Classifiers · PyPI</a></li><li><a href="https://peps.python.org/pep-0621">PEP 621 – Storing project metadata in pyproject.toml | peps.python.org</a></li><li><a href="https://packaging.python.org/en/latest/tutorials/packaging-projects/#configuring-metadata">Packaging Python Projects — Python Packaging User Guide</a> — Configuring metadata</li><li><a href="https://peps.python.org/pep-0639/">PEP 639 – Improving License Clarity with Better Package Metadata | peps.python.org</a></li><li><a href="https://spdx.dev/">SPDX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 04 Apr 2023 18:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/197.mp3" length="24253264" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2019</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Classifiers are one bit of Python project metadata that predates PyPI.</p><p> Classifiers are weird.</p><p> They were around in setuptools days, and are still here with pyproject.toml. </p><ul><li>What are they? </li><li>Why do we need them? </li><li>Do we need them?</li><li>Which classifiers should I include?</li><li>Why are they called "trove classifiers" in the <a href="https://pypi.org/classifiers/">Python docs</a></li></ul><p>Brett Cannon joins the show to discuss these wacky bits of metadata.</p><p>Here's an example, from <a href="https://github.com/okken/pytest-crayons/blob/main/pyproject.toml">pytest-crayons</a>:</p>[project]
...
classifiers = [
    "License :: OSI Approved :: MIT License",
    "Framework :: Pytest"
    ]
<br><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/classifiers/">Classifiers · PyPI</a></li><li><a href="https://peps.python.org/pep-0621">PEP 621 – Storing project metadata in pyproject.toml | peps.python.org</a></li><li><a href="https://packaging.python.org/en/latest/tutorials/packaging-projects/#configuring-metadata">Packaging Python Projects — Python Packaging User Guide</a> — Configuring metadata</li><li><a href="https://peps.python.org/pep-0639/">PEP 639 – Improving License Clarity with Better Package Metadata | peps.python.org</a></li><li><a href="https://spdx.dev/">SPDX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://snarky.ca">Brett Cannon (@brettcannon@fosstodon.org)</podcast:person>
    </item>
    <item>
      <title>196: I am not a supplier - Thomas Depierre</title>
      <itunes:episode>196</itunes:episode>
      <podcast:episode>196</podcast:episode>
      <itunes:title>196: I am not a supplier - Thomas Depierre</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ce010ff7-a3ae-429c-b64b-e5703ef370cb</guid>
      <link>https://pythontest.com/testandcode/episodes/196-i-am-not-a-supplier</link>
      <description>
        <![CDATA[<p>Should we think of open source components the same way we think of physical parts for manufactured goods?</p><p> There are problems with supply chain analogy when applied to software.</p><p> Thomas Depierre discusses some of those issues in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://www.softwaremaxims.com/blog/not-a-supplier">I am not a supplier - article</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Should we think of open source components the same way we think of physical parts for manufactured goods?</p><p> There are problems with supply chain analogy when applied to software.</p><p> Thomas Depierre discusses some of those issues in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://www.softwaremaxims.com/blog/not-a-supplier">I am not a supplier - article</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 30 Mar 2023 17:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/196.mp3" length="26540589" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2210</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Should we think of open source components the same way we think of physical parts for manufactured goods?</p><p> There are problems with supply chain analogy when applied to software.</p><p> Thomas Depierre discusses some of those issues in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://www.softwaremaxims.com/blog/not-a-supplier">I am not a supplier - article</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://softwaremaxims.com">Thomas Depierre</podcast:person>
    </item>
    <item>
      <title>195: What would you change about pytest? -  Anthony Sottile</title>
      <itunes:episode>195</itunes:episode>
      <podcast:episode>195</podcast:episode>
      <itunes:title>195: What would you change about pytest? -  Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">71604dcf-2f42-4d19-9579-25123445c7b3</guid>
      <link>https://pythontest.com/testandcode/episodes/195-what-would-you-change-about-pytest</link>
      <description>
        <![CDATA[<p>Anthony Sottile and Brian discuss changes that would be cool for pytest, even unrealistic changes. These are changes we'd make to pytest if we didn't ahve to care about backwards compatibilty.</p><p>Anthony's list:</p><ol><li>The import system</li><li>Multi-process support out of the box</li><li>Async support</li><li>Changes to the fixture system</li><li>Extend the assert rewriting to make it modular</li><li>Add matchers to assert mechanism</li><li>Ban test class inheritance</li></ol><p>Brian's list: </p><ol><li>Extend assert rewriting for custom rewriting, like check</li><li>pytester matchers available for all tests</li><li>Throw out nose and unittest compatibility plugins</li><li>Throw out setup_module, teardown_module and other xunit style functions</li><li>Remove a bunch of the hook functions</li><li>Documentation improvement of remaining hook functions which include examples of how to use it</li><li>Start running tests before collection is done</li><li>Split collection and running into two processes</li><li>Have the fixtures be able to know the result of the test during teardown</li></ol><p><br></p><p>Links:</p><ul><li><a href="https://www.youtube.com/@anthonywritescode">anthonywritescode - YouTube</a></li><li><a href="https://www.twitch.tv/anthonywritescode">anthonywritescode - Twitch</a></li><li><a href="https://pypi.org/project/pytest-asyncio/">pytest-asyncio · PyPI</a></li><li><a href="https://tonybaloney.github.io/posts/async-test-patterns-for-pytest-and-unittest.html">async test patterns for pytest</a></li><li><a href="https://pypi.org/project/future-fstrings/">future-fstrings · PyPI</a></li><li><a href="https://pypi.org/project/re-assert/">re-assert · PyPI</a></li><li><a href="https://numpy.org/doc/stable/reference/routines.testing.html">numpy.testing</a></li><li><a href="https://sourcegraph.com/search">Sourcegraph</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Anthony Sottile and Brian discuss changes that would be cool for pytest, even unrealistic changes. These are changes we'd make to pytest if we didn't ahve to care about backwards compatibilty.</p><p>Anthony's list:</p><ol><li>The import system</li><li>Multi-process support out of the box</li><li>Async support</li><li>Changes to the fixture system</li><li>Extend the assert rewriting to make it modular</li><li>Add matchers to assert mechanism</li><li>Ban test class inheritance</li></ol><p>Brian's list: </p><ol><li>Extend assert rewriting for custom rewriting, like check</li><li>pytester matchers available for all tests</li><li>Throw out nose and unittest compatibility plugins</li><li>Throw out setup_module, teardown_module and other xunit style functions</li><li>Remove a bunch of the hook functions</li><li>Documentation improvement of remaining hook functions which include examples of how to use it</li><li>Start running tests before collection is done</li><li>Split collection and running into two processes</li><li>Have the fixtures be able to know the result of the test during teardown</li></ol><p><br></p><p>Links:</p><ul><li><a href="https://www.youtube.com/@anthonywritescode">anthonywritescode - YouTube</a></li><li><a href="https://www.twitch.tv/anthonywritescode">anthonywritescode - Twitch</a></li><li><a href="https://pypi.org/project/pytest-asyncio/">pytest-asyncio · PyPI</a></li><li><a href="https://tonybaloney.github.io/posts/async-test-patterns-for-pytest-and-unittest.html">async test patterns for pytest</a></li><li><a href="https://pypi.org/project/future-fstrings/">future-fstrings · PyPI</a></li><li><a href="https://pypi.org/project/re-assert/">re-assert · PyPI</a></li><li><a href="https://numpy.org/doc/stable/reference/routines.testing.html">numpy.testing</a></li><li><a href="https://sourcegraph.com/search">Sourcegraph</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 08 Mar 2023 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/195.mp3" length="41823806" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3483</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Anthony Sottile and Brian discuss changes that would be cool for pytest, even unrealistic changes. These are changes we'd make to pytest if we didn't ahve to care about backwards compatibilty.</p><p>Anthony's list:</p><ol><li>The import system</li><li>Multi-process support out of the box</li><li>Async support</li><li>Changes to the fixture system</li><li>Extend the assert rewriting to make it modular</li><li>Add matchers to assert mechanism</li><li>Ban test class inheritance</li></ol><p>Brian's list: </p><ol><li>Extend assert rewriting for custom rewriting, like check</li><li>pytester matchers available for all tests</li><li>Throw out nose and unittest compatibility plugins</li><li>Throw out setup_module, teardown_module and other xunit style functions</li><li>Remove a bunch of the hook functions</li><li>Documentation improvement of remaining hook functions which include examples of how to use it</li><li>Start running tests before collection is done</li><li>Split collection and running into two processes</li><li>Have the fixtures be able to know the result of the test during teardown</li></ol><p><br></p><p>Links:</p><ul><li><a href="https://www.youtube.com/@anthonywritescode">anthonywritescode - YouTube</a></li><li><a href="https://www.twitch.tv/anthonywritescode">anthonywritescode - Twitch</a></li><li><a href="https://pypi.org/project/pytest-asyncio/">pytest-asyncio · PyPI</a></li><li><a href="https://tonybaloney.github.io/posts/async-test-patterns-for-pytest-and-unittest.html">async test patterns for pytest</a></li><li><a href="https://pypi.org/project/future-fstrings/">future-fstrings · PyPI</a></li><li><a href="https://pypi.org/project/re-assert/">re-assert · PyPI</a></li><li><a href="https://numpy.org/doc/stable/reference/routines.testing.html">numpy.testing</a></li><li><a href="https://sourcegraph.com/search">Sourcegraph</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://twitch.tv/anthonywritescode">Anthony Sottile</podcast:person>
    </item>
    <item>
      <title>193: The Good Research Code Handbook - Patrick Mineault</title>
      <itunes:episode>193</itunes:episode>
      <podcast:episode>193</podcast:episode>
      <itunes:title>193: The Good Research Code Handbook - Patrick Mineault</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0fcb3370-f807-48cd-90e0-c9dd0bc81dcb</guid>
      <link>https://pythontest.com/testandcode/episodes/193-the-good-research-code-handbook-patrick-mineault</link>
      <description>
        <![CDATA[<p>I don't think it's too much of a stretch to say that software is part of most scientific research now.<br> From astronomy, to neuroscience, to chemistry, to climate models. <br> If you work in research that hasn't been affected by software yet, just wait.</p><p>But how good is that software? </p><p>How much of common best practices in software development are making it to those writing software in the sciences?</p><p>Patrick Mineault has written "The Good Research Code Handbook". <br> It's a website. It's concise. <br> And it will put you on the right path to writing better software.<br> Even if you don't write science based software, and even if you already have a CS degree, there's some good information worth reading.</p><p>Special Guest: Patrick Mineault.</p><p><br></p><p>Links:</p><ul><li><a href="https://goodresearch.dev/index.html#">The Good Research Code Handbook</a></li><li><a href="https://github.com/pathunstrom/game-wrath-jam">game-wrath-jam: A game jam game, theme: Wrath</a></li><li><a href="https://www.youtube.com/watch?v=aOVA2Axxfdk">Robotron 2084 - Arcade - YouTube</a></li><li><a href="https://www.amazon.ca/Book-Why-Science-Cause-Effect/dp/046509760X">The Book of Why: The New Science of Cause and Effect</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I don't think it's too much of a stretch to say that software is part of most scientific research now.<br> From astronomy, to neuroscience, to chemistry, to climate models. <br> If you work in research that hasn't been affected by software yet, just wait.</p><p>But how good is that software? </p><p>How much of common best practices in software development are making it to those writing software in the sciences?</p><p>Patrick Mineault has written "The Good Research Code Handbook". <br> It's a website. It's concise. <br> And it will put you on the right path to writing better software.<br> Even if you don't write science based software, and even if you already have a CS degree, there's some good information worth reading.</p><p>Special Guest: Patrick Mineault.</p><p><br></p><p>Links:</p><ul><li><a href="https://goodresearch.dev/index.html#">The Good Research Code Handbook</a></li><li><a href="https://github.com/pathunstrom/game-wrath-jam">game-wrath-jam: A game jam game, theme: Wrath</a></li><li><a href="https://www.youtube.com/watch?v=aOVA2Axxfdk">Robotron 2084 - Arcade - YouTube</a></li><li><a href="https://www.amazon.ca/Book-Why-Science-Cause-Effect/dp/046509760X">The Book of Why: The New Science of Cause and Effect</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 30 Aug 2022 08:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/193.mp3" length="31038574" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2585</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I don't think it's too much of a stretch to say that software is part of most scientific research now.<br> From astronomy, to neuroscience, to chemistry, to climate models. <br> If you work in research that hasn't been affected by software yet, just wait.</p><p>But how good is that software? </p><p>How much of common best practices in software development are making it to those writing software in the sciences?</p><p>Patrick Mineault has written "The Good Research Code Handbook". <br> It's a website. It's concise. <br> And it will put you on the right path to writing better software.<br> Even if you don't write science based software, and even if you already have a CS degree, there's some good information worth reading.</p><p>Special Guest: Patrick Mineault.</p><p><br></p><p>Links:</p><ul><li><a href="https://goodresearch.dev/index.html#">The Good Research Code Handbook</a></li><li><a href="https://github.com/pathunstrom/game-wrath-jam">game-wrath-jam: A game jam game, theme: Wrath</a></li><li><a href="https://www.youtube.com/watch?v=aOVA2Axxfdk">Robotron 2084 - Arcade - YouTube</a></li><li><a href="https://www.amazon.ca/Book-Why-Science-Cause-Effect/dp/046509760X">The Book of Why: The New Science of Cause and Effect</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://xcorr.net">Patrick Mineault</podcast:person>
    </item>
    <item>
      <title>192: Learn to code through game development with PursuedPyBear - Piper Thunstrom</title>
      <itunes:episode>192</itunes:episode>
      <podcast:episode>192</podcast:episode>
      <itunes:title>192: Learn to code through game development with PursuedPyBear - Piper Thunstrom</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">91fb4955-cc86-4d1b-b0b3-5b2e6364acc1</guid>
      <link>https://pythontest.com/testandcode/episodes/192-learn-to-code-through-game-development-with-pursuedpybear-piper-thunstrom</link>
      <description>
        <![CDATA[<p>The first game I remember coding, or at least copying from a magazine, was in Basic. It was Lunar Lander. </p><p>Learning to code a game is a way that a lot of people get started and excited about programming. </p><p>Of course, I don't recommend Basic. Now we've got Python. And one of the game engines available for Python is PursuedPyBear, a project started by Piper Thunstrom. </p><p>Piper joins us this episode and we talk about PursuedPyBear, learning to code, and learning CS concepts with game development. </p><p>PursuedPyBear, ppb, is a game framework great for learning with, with goals of being fun, education friendly, an example of idiomatic Python, hardware library agnostic, and built on event driven and object oriented concepts.</p><p>Special Guest: Piper Thunstrom.</p><p><br></p><p>Links:</p><ul><li><a href="https://ppb.dev/">PursuedPyBear | Unbearably Fun Game Development</a></li><li><a href="https://piper.thunstrom.dev/">Piper's Blog</a></li><li><a href="https://www.youtube.com/watch?v=bbKED0o3uVU">Making Games With PPB - PyTexas</a></li><li><a href="https://pathunstrom.itch.io/shooter-game">Shooter Game by Piper Thunstrom</a></li><li><a href="https://github.com/pathunstrom/shootergame">shootergame on GitHub</a></li><li><a href="https://beeware.org/project/projects/tools/briefcase/">Briefcase— BeeWare</a></li><li><a href="https://github.com/pathunstrom/game-blink">game-blink: A tiny emergent behavior toy.</a></li><li><a href="https://en.wikipedia.org/wiki/Combat_(Atari_2600)">Combat (Atari 2600)</a> — The tank game I didn't remember the name of.</li><li><a href="https://en.wikipedia.org/wiki/Lunar_Lander_(video_game_genre)">Lunar Lander</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The first game I remember coding, or at least copying from a magazine, was in Basic. It was Lunar Lander. </p><p>Learning to code a game is a way that a lot of people get started and excited about programming. </p><p>Of course, I don't recommend Basic. Now we've got Python. And one of the game engines available for Python is PursuedPyBear, a project started by Piper Thunstrom. </p><p>Piper joins us this episode and we talk about PursuedPyBear, learning to code, and learning CS concepts with game development. </p><p>PursuedPyBear, ppb, is a game framework great for learning with, with goals of being fun, education friendly, an example of idiomatic Python, hardware library agnostic, and built on event driven and object oriented concepts.</p><p>Special Guest: Piper Thunstrom.</p><p><br></p><p>Links:</p><ul><li><a href="https://ppb.dev/">PursuedPyBear | Unbearably Fun Game Development</a></li><li><a href="https://piper.thunstrom.dev/">Piper's Blog</a></li><li><a href="https://www.youtube.com/watch?v=bbKED0o3uVU">Making Games With PPB - PyTexas</a></li><li><a href="https://pathunstrom.itch.io/shooter-game">Shooter Game by Piper Thunstrom</a></li><li><a href="https://github.com/pathunstrom/shootergame">shootergame on GitHub</a></li><li><a href="https://beeware.org/project/projects/tools/briefcase/">Briefcase— BeeWare</a></li><li><a href="https://github.com/pathunstrom/game-blink">game-blink: A tiny emergent behavior toy.</a></li><li><a href="https://en.wikipedia.org/wiki/Combat_(Atari_2600)">Combat (Atari 2600)</a> — The tank game I didn't remember the name of.</li><li><a href="https://en.wikipedia.org/wiki/Lunar_Lander_(video_game_genre)">Lunar Lander</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 06 Aug 2022 16:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/192.mp3" length="30456487" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2536</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The first game I remember coding, or at least copying from a magazine, was in Basic. It was Lunar Lander. </p><p>Learning to code a game is a way that a lot of people get started and excited about programming. </p><p>Of course, I don't recommend Basic. Now we've got Python. And one of the game engines available for Python is PursuedPyBear, a project started by Piper Thunstrom. </p><p>Piper joins us this episode and we talk about PursuedPyBear, learning to code, and learning CS concepts with game development. </p><p>PursuedPyBear, ppb, is a game framework great for learning with, with goals of being fun, education friendly, an example of idiomatic Python, hardware library agnostic, and built on event driven and object oriented concepts.</p><p>Special Guest: Piper Thunstrom.</p><p><br></p><p>Links:</p><ul><li><a href="https://ppb.dev/">PursuedPyBear | Unbearably Fun Game Development</a></li><li><a href="https://piper.thunstrom.dev/">Piper's Blog</a></li><li><a href="https://www.youtube.com/watch?v=bbKED0o3uVU">Making Games With PPB - PyTexas</a></li><li><a href="https://pathunstrom.itch.io/shooter-game">Shooter Game by Piper Thunstrom</a></li><li><a href="https://github.com/pathunstrom/shootergame">shootergame on GitHub</a></li><li><a href="https://beeware.org/project/projects/tools/briefcase/">Briefcase— BeeWare</a></li><li><a href="https://github.com/pathunstrom/game-blink">game-blink: A tiny emergent behavior toy.</a></li><li><a href="https://en.wikipedia.org/wiki/Combat_(Atari_2600)">Combat (Atari 2600)</a> — The tank game I didn't remember the name of.</li><li><a href="https://en.wikipedia.org/wiki/Lunar_Lander_(video_game_genre)">Lunar Lander</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, game development, education, game engine</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://piper.thunstrom.dev">Piper Thunstrom</podcast:person>
    </item>
    <item>
      <title>191: Running your own site for fun and absolutely no profit whatsoever - Brian Wisti</title>
      <itunes:episode>191</itunes:episode>
      <podcast:episode>191</podcast:episode>
      <itunes:title>191: Running your own site for fun and absolutely no profit whatsoever - Brian Wisti</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">325df115-704f-47ec-a50c-2e50ecada181</guid>
      <link>https://pythontest.com/testandcode/episodes/191-running-your-own-site-for-fun-and-absolutely-no-profit-whatsoever-brian-wisti</link>
      <description>
        <![CDATA[<p>Having a personal site is a great playground for learning tons of skills. Brian Wisti discusses the benefits of running a his own blog over the years.</p><p><br></p><p>Links:</p><ul><li><a href="https://randomgeekery.org/">Random Geekery</a></li><li><a href="https://en.wikipedia.org/wiki/Jamstack">Jamstack</a></li><li><a href="https://www.11ty.dev/">Eleventy</a></li><li><a href="https://www.netlify.com/">Netlify</a></li><li><a href="https://plausible.io/">Plausible Analytics</a></li><li><a href="https://pythontest.com/pytest-book/">pytest</a></li><li><a href="https://beautiful-soup-4.readthedocs.io/en/latest/">Beautiful Soup</a></li><li><a href="https://www.pyinvoke.org/">pyinvoke - Invoke!</a></li><li><a href="https://en.wikipedia.org/wiki/Rsync">rsync</a></li><li><a href="https://archive.org/">Internet Archive : archive.org</a></li><li><a href="https://rich.readthedocs.io/en/stable/introduction.html">Rich</a></li><li><a href="https://statamic.com/">Statamic</a></li><li><a href="https://jamstack.org/">jamstack.org</a></li><li><a href="https://www.slideshare.net/genehackdotorg/a-static-site-generator-should-be-your-next-language-learning-project">A static site generator should be your next language learning project</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Having a personal site is a great playground for learning tons of skills. Brian Wisti discusses the benefits of running a his own blog over the years.</p><p><br></p><p>Links:</p><ul><li><a href="https://randomgeekery.org/">Random Geekery</a></li><li><a href="https://en.wikipedia.org/wiki/Jamstack">Jamstack</a></li><li><a href="https://www.11ty.dev/">Eleventy</a></li><li><a href="https://www.netlify.com/">Netlify</a></li><li><a href="https://plausible.io/">Plausible Analytics</a></li><li><a href="https://pythontest.com/pytest-book/">pytest</a></li><li><a href="https://beautiful-soup-4.readthedocs.io/en/latest/">Beautiful Soup</a></li><li><a href="https://www.pyinvoke.org/">pyinvoke - Invoke!</a></li><li><a href="https://en.wikipedia.org/wiki/Rsync">rsync</a></li><li><a href="https://archive.org/">Internet Archive : archive.org</a></li><li><a href="https://rich.readthedocs.io/en/stable/introduction.html">Rich</a></li><li><a href="https://statamic.com/">Statamic</a></li><li><a href="https://jamstack.org/">jamstack.org</a></li><li><a href="https://www.slideshare.net/genehackdotorg/a-static-site-generator-should-be-your-next-language-learning-project">A static site generator should be your next language learning project</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 01 Jul 2022 10:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/191.mp3" length="33162358" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2762</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Having a personal site is a great playground for learning tons of skills. Brian Wisti discusses the benefits of running a his own blog over the years.</p><p><br></p><p>Links:</p><ul><li><a href="https://randomgeekery.org/">Random Geekery</a></li><li><a href="https://en.wikipedia.org/wiki/Jamstack">Jamstack</a></li><li><a href="https://www.11ty.dev/">Eleventy</a></li><li><a href="https://www.netlify.com/">Netlify</a></li><li><a href="https://plausible.io/">Plausible Analytics</a></li><li><a href="https://pythontest.com/pytest-book/">pytest</a></li><li><a href="https://beautiful-soup-4.readthedocs.io/en/latest/">Beautiful Soup</a></li><li><a href="https://www.pyinvoke.org/">pyinvoke - Invoke!</a></li><li><a href="https://en.wikipedia.org/wiki/Rsync">rsync</a></li><li><a href="https://archive.org/">Internet Archive : archive.org</a></li><li><a href="https://rich.readthedocs.io/en/stable/introduction.html">Rich</a></li><li><a href="https://statamic.com/">Statamic</a></li><li><a href="https://jamstack.org/">jamstack.org</a></li><li><a href="https://www.slideshare.net/genehackdotorg/a-static-site-generator-should-be-your-next-language-learning-project">A static site generator should be your next language learning project</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>personal site, blogging, education</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://randomgeekery.org">Brian Wisti</podcast:person>
    </item>
    <item>
      <title>190: Testing PyPy - Carl Friedrich Bolz-Tereick</title>
      <itunes:episode>190</itunes:episode>
      <podcast:episode>190</podcast:episode>
      <itunes:title>190: Testing PyPy - Carl Friedrich Bolz-Tereick</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">8caa58c5-5138-481f-a52f-bfd7eb0c2f75</guid>
      <link>https://pythontest.com/testandcode/episodes/190-testing-pypy-carl-friedrich-bolz-tereick</link>
      <description>
        <![CDATA[<p>PyPy is a fast, compliant alternative implementation of Python.<br> cPython is implemented in C.</p><p> PyPy is implemented in Python.<br> What does that mean?</p><p> And how do you test something as huge as an alternative implementation of Python?</p><p>Special Guest: Carl Friedrich Bolz-Tereick.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.pypy.org/">PyPy</a></li><li><a href="https://www.pypy.org/posts/2022/04/how-is-pypy-tested.html">How is PyPy Tested? </a></li><li><a href="https://speed.pypy.org/">PyPy Speed</a></li><li><a href="https://speed.python.org/">Python Speed Center</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>PyPy is a fast, compliant alternative implementation of Python.<br> cPython is implemented in C.</p><p> PyPy is implemented in Python.<br> What does that mean?</p><p> And how do you test something as huge as an alternative implementation of Python?</p><p>Special Guest: Carl Friedrich Bolz-Tereick.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.pypy.org/">PyPy</a></li><li><a href="https://www.pypy.org/posts/2022/04/how-is-pypy-tested.html">How is PyPy Tested? </a></li><li><a href="https://speed.pypy.org/">PyPy Speed</a></li><li><a href="https://speed.python.org/">Python Speed Center</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 21 Jun 2022 05:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/190.mp3" length="36520832" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3042</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>PyPy is a fast, compliant alternative implementation of Python.<br> cPython is implemented in C.</p><p> PyPy is implemented in Python.<br> What does that mean?</p><p> And how do you test something as huge as an alternative implementation of Python?</p><p>Special Guest: Carl Friedrich Bolz-Tereick.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.pypy.org/">PyPy</a></li><li><a href="https://www.pypy.org/posts/2022/04/how-is-pypy-tested.html">How is PyPy Tested? </a></li><li><a href="https://speed.pypy.org/">PyPy Speed</a></li><li><a href="https://speed.python.org/">Python Speed Center</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, interpreter testing, application testing, performance testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://cfbolz.de">CF Bolz-Tereick</podcast:person>
    </item>
    <item>
      <title>189: attrs and dataclasses - Hynek Schlawack</title>
      <itunes:episode>189</itunes:episode>
      <podcast:episode>189</podcast:episode>
      <itunes:title>189: attrs and dataclasses - Hynek Schlawack</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6da56574-0faa-463f-a64f-abaab47d97f1</guid>
      <link>https://pythontest.com/testandcode/episodes/189-attrs-and-dataclasses-hynek-schlawack</link>
      <description>
        <![CDATA[<p>In Python, before dataclasses, we had attrs.<br> Before attrs, it wasn't pretty.</p><p>The story of attrs and dataclasses is actually intertwined. <br> They've built on each other.<br> And in the middle of it all, Hynek.</p><p>Hynek joins the show today to discuss some history of attrs and dataclasses, and some differences.</p><p>If you ever need to create a custom class in Python, you should listen to this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.attrs.org/en/stable/">attrs documentation</a></li><li><a href="https://hynek.me/articles/import-attrs/">History of attrs and introduction to attrs namespace</a></li><li><a href="https://github.com/python-attrs/cattrs">cattrs: Complex custom class converters for attrs.</a> — python-attrs</li><li><a href="https://peps.python.org/pep-0557/">PEP 557 – Data Classes</a></li><li><a href="https://peps.python.org/pep-0681/">PEP 681 – Data Class Transforms</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In Python, before dataclasses, we had attrs.<br> Before attrs, it wasn't pretty.</p><p>The story of attrs and dataclasses is actually intertwined. <br> They've built on each other.<br> And in the middle of it all, Hynek.</p><p>Hynek joins the show today to discuss some history of attrs and dataclasses, and some differences.</p><p>If you ever need to create a custom class in Python, you should listen to this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.attrs.org/en/stable/">attrs documentation</a></li><li><a href="https://hynek.me/articles/import-attrs/">History of attrs and introduction to attrs namespace</a></li><li><a href="https://github.com/python-attrs/cattrs">cattrs: Complex custom class converters for attrs.</a> — python-attrs</li><li><a href="https://peps.python.org/pep-0557/">PEP 557 – Data Classes</a></li><li><a href="https://peps.python.org/pep-0681/">PEP 681 – Data Class Transforms</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 07 Jun 2022 14:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/189.mp3" length="23315618" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1941</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In Python, before dataclasses, we had attrs.<br> Before attrs, it wasn't pretty.</p><p>The story of attrs and dataclasses is actually intertwined. <br> They've built on each other.<br> And in the middle of it all, Hynek.</p><p>Hynek joins the show today to discuss some history of attrs and dataclasses, and some differences.</p><p>If you ever need to create a custom class in Python, you should listen to this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.attrs.org/en/stable/">attrs documentation</a></li><li><a href="https://hynek.me/articles/import-attrs/">History of attrs and introduction to attrs namespace</a></li><li><a href="https://github.com/python-attrs/cattrs">cattrs: Complex custom class converters for attrs.</a> — python-attrs</li><li><a href="https://peps.python.org/pep-0557/">PEP 557 – Data Classes</a></li><li><a href="https://peps.python.org/pep-0681/">PEP 681 – Data Class Transforms</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, dataclasses, attrs</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://hynek.me/">Hynek Schlawack</podcast:person>
    </item>
    <item>
      <title>188: Python's Rich, Textual, and Textualize - Innovating the CLI</title>
      <itunes:episode>188</itunes:episode>
      <podcast:episode>188</podcast:episode>
      <itunes:title>188: Python's Rich, Textual, and Textualize - Innovating the CLI</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c47de884-c119-4a15-a19e-792258528a99</guid>
      <link>https://pythontest.com/testandcode/episodes/188-pythons-rich-textual-and-textualize-innovating-the-cli</link>
      <description>
        <![CDATA[<p>Will McGugan has brought a lot of color to CLIs within Python due to Rich. <br> Then Textual started rethinking full command line applications, including layout with CSS.<br> And now Textualize, a new startup, is bringing CLI apps to the web.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Textualize/rich">rich</a></li><li><a href="https://github.com/Textualize/rich-cli">rich-cli</a></li><li><a href="https://github.com/Textualize/textual">textual</a></li><li><a href="https://www.textualize.io/">Textualize.io</a></li><li><a href="https://www.textualize.io/rich/gallery">Rich Gallery</a></li><li><a href="https://www.textualize.io/textual/gallery">Textualize Gallery</a></li><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Will McGugan has brought a lot of color to CLIs within Python due to Rich. <br> Then Textual started rethinking full command line applications, including layout with CSS.<br> And now Textualize, a new startup, is bringing CLI apps to the web.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Textualize/rich">rich</a></li><li><a href="https://github.com/Textualize/rich-cli">rich-cli</a></li><li><a href="https://github.com/Textualize/textual">textual</a></li><li><a href="https://www.textualize.io/">Textualize.io</a></li><li><a href="https://www.textualize.io/rich/gallery">Rich Gallery</a></li><li><a href="https://www.textualize.io/textual/gallery">Textualize Gallery</a></li><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 17 May 2022 06:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/188.mp3" length="25610234" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2132</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Will McGugan has brought a lot of color to CLIs within Python due to Rich. <br> Then Textual started rethinking full command line applications, including layout with CSS.<br> And now Textualize, a new startup, is bringing CLI apps to the web.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Textualize/rich">rich</a></li><li><a href="https://github.com/Textualize/rich-cli">rich-cli</a></li><li><a href="https://github.com/Textualize/textual">textual</a></li><li><a href="https://www.textualize.io/">Textualize.io</a></li><li><a href="https://www.textualize.io/rich/gallery">Rich Gallery</a></li><li><a href="https://www.textualize.io/textual/gallery">Textualize Gallery</a></li><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>CLI, web, CSS, textualize, rich</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://www.willmcgugan.com">Will McGugan</podcast:person>
    </item>
    <item>
      <title>187: Teaching Web Development, including Front End Testing</title>
      <itunes:episode>187</itunes:episode>
      <podcast:episode>187</podcast:episode>
      <itunes:title>187: Teaching Web Development, including Front End Testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5b3e5b32-c971-4875-9044-0e9e3d409923</guid>
      <link>https://pythontest.com/testandcode/episodes/187-teaching-web-development-including-front-end-testing</link>
      <description>
        <![CDATA[<p>When you are teaching someone web development skills, when is the right time to start teaching code quality and testing practices?</p><p>Karl Stolley believes it's never too early. Let's hear how he incorporates code quality in his courses.</p><p>Our discussion includes:</p><ul><li>starting people off with good dev practices and tools</li><li>linting</li><li>html and css validation</li><li>visual regression testing</li><li>using local dev servers, including https</li><li>incorporating testing with git hooks</li><li>testing to aid in css optimization and refactoring</li><li>Backstop</li><li>Nightwatch</li><li>BrowserStack</li><li>the tree legged stool of learning and progressing as a developer: testing, version control, and documentation</li></ul><p>Karl is also writing a book on WebRTC, so we jump into that a bit too.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://garris.github.io/BackstopJS/">Backstop</a></li><li><a href="https://nightwatchjs.org/">Nightwatch</a></li><li><a href="https://www.browserstack.com/">BrowserStack</a></li><li><a href="https://pragprog.com/titles/ksrtc/programming-webrtc/">Programming WebRTC: Build Real-Time Streaming Applications for the Web by Karl Stolley</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When you are teaching someone web development skills, when is the right time to start teaching code quality and testing practices?</p><p>Karl Stolley believes it's never too early. Let's hear how he incorporates code quality in his courses.</p><p>Our discussion includes:</p><ul><li>starting people off with good dev practices and tools</li><li>linting</li><li>html and css validation</li><li>visual regression testing</li><li>using local dev servers, including https</li><li>incorporating testing with git hooks</li><li>testing to aid in css optimization and refactoring</li><li>Backstop</li><li>Nightwatch</li><li>BrowserStack</li><li>the tree legged stool of learning and progressing as a developer: testing, version control, and documentation</li></ul><p>Karl is also writing a book on WebRTC, so we jump into that a bit too.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://garris.github.io/BackstopJS/">Backstop</a></li><li><a href="https://nightwatchjs.org/">Nightwatch</a></li><li><a href="https://www.browserstack.com/">BrowserStack</a></li><li><a href="https://pragprog.com/titles/ksrtc/programming-webrtc/">Programming WebRTC: Build Real-Time Streaming Applications for the Web by Karl Stolley</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 13 May 2022 05:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/187.mp3" length="28939586" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2410</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When you are teaching someone web development skills, when is the right time to start teaching code quality and testing practices?</p><p>Karl Stolley believes it's never too early. Let's hear how he incorporates code quality in his courses.</p><p>Our discussion includes:</p><ul><li>starting people off with good dev practices and tools</li><li>linting</li><li>html and css validation</li><li>visual regression testing</li><li>using local dev servers, including https</li><li>incorporating testing with git hooks</li><li>testing to aid in css optimization and refactoring</li><li>Backstop</li><li>Nightwatch</li><li>BrowserStack</li><li>the tree legged stool of learning and progressing as a developer: testing, version control, and documentation</li></ul><p>Karl is also writing a book on WebRTC, so we jump into that a bit too.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://garris.github.io/BackstopJS/">Backstop</a></li><li><a href="https://nightwatchjs.org/">Nightwatch</a></li><li><a href="https://www.browserstack.com/">BrowserStack</a></li><li><a href="https://pragprog.com/titles/ksrtc/programming-webrtc/">Programming WebRTC: Build Real-Time Streaming Applications for the Web by Karl Stolley</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>html, css, front end testing, linting, code quality, validation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://stolley.dev/">Karl Stoley</podcast:person>
    </item>
    <item>
      <title>186: Developer and Team Productivity</title>
      <itunes:episode>186</itunes:episode>
      <podcast:episode>186</podcast:episode>
      <itunes:title>186: Developer and Team Productivity</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">20de346d-d65b-46e8-98ad-254a867d4351</guid>
      <link>https://pythontest.com/testandcode/episodes/186-developer-and-team-productivity</link>
      <description>
        <![CDATA[<p>Being productive is obviously a good thing.<br> Can we measure it?<br> Should we measure it?<br> There's been failed attempts, like lines of code, etc. in the past.<br> Currently, there are new tools to measure productivity, like using git metrics.</p><p>Nick Hodges joins the show to discuss the good and the bad of developer and team productivity, including how we can improve productivity.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Being productive is obviously a good thing.<br> Can we measure it?<br> Should we measure it?<br> There's been failed attempts, like lines of code, etc. in the past.<br> Currently, there are new tools to measure productivity, like using git metrics.</p><p>Nick Hodges joins the show to discuss the good and the bad of developer and team productivity, including how we can improve productivity.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 12 May 2022 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/186.mp3" length="37052466" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3086</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Being productive is obviously a good thing.<br> Can we measure it?<br> Should we measure it?<br> There's been failed attempts, like lines of code, etc. in the past.<br> Currently, there are new tools to measure productivity, like using git metrics.</p><p>Nick Hodges joins the show to discuss the good and the bad of developer and team productivity, including how we can improve productivity.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>productivity, git metrics</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Nick Hodges</podcast:person>
    </item>
    <item>
      <title>185: Python + Django + Rich + Testing == Awesome</title>
      <itunes:episode>185</itunes:episode>
      <podcast:episode>185</podcast:episode>
      <itunes:title>185: Python + Django + Rich + Testing == Awesome</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e6b11f26-2074-4d0d-a980-457fe3ba1f42</guid>
      <link>https://pythontest.com/testandcode/episodes/185-python-django-rich-testing-awesome</link>
      <description>
        <![CDATA[<p>Django has a handful of console commands to help manage and develop sites. <br> <a href="https://pypi.org/project/django-rich/">django-rich</a> adds color and nice formatting. Super cool.<br> In a recent release, django-rich also adds nice colorized tracebacks to the Django test runner. </p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/django-rich/">django-rich · PyPI</a></li><li><a href="https://pythontest.com/testandcode/181">episode 181: Boost Your Django DX - Adam Johnson</a></li><li><a href="https://django-crispy-forms.readthedocs.io/en/latest/">django-crispy-forms</a></li><li><a href="https://www.jetbrains.com/lp/python-developers-survey-2020/">Python Developers Survey 2020 Results </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Django has a handful of console commands to help manage and develop sites. <br> <a href="https://pypi.org/project/django-rich/">django-rich</a> adds color and nice formatting. Super cool.<br> In a recent release, django-rich also adds nice colorized tracebacks to the Django test runner. </p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/django-rich/">django-rich · PyPI</a></li><li><a href="https://pythontest.com/testandcode/181">episode 181: Boost Your Django DX - Adam Johnson</a></li><li><a href="https://django-crispy-forms.readthedocs.io/en/latest/">django-crispy-forms</a></li><li><a href="https://www.jetbrains.com/lp/python-developers-survey-2020/">Python Developers Survey 2020 Results </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 11 May 2022 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/185.mp3" length="15284025" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:image href="https://img.transistor.fm/vBl1KIm3r6f793WsT26Ge4aQIZqoj_QMRPx_kew_y6U/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9lcGlz/b2RlLzE0MjA0MjAv/MTY4OTM5Nzk1OC1h/cnR3b3JrLmpwZw.jpg"/>
      <itunes:duration>1271</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Django has a handful of console commands to help manage and develop sites. <br> <a href="https://pypi.org/project/django-rich/">django-rich</a> adds color and nice formatting. Super cool.<br> In a recent release, django-rich also adds nice colorized tracebacks to the Django test runner. </p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/django-rich/">django-rich · PyPI</a></li><li><a href="https://pythontest.com/testandcode/181">episode 181: Boost Your Django DX - Adam Johnson</a></li><li><a href="https://django-crispy-forms.readthedocs.io/en/latest/">django-crispy-forms</a></li><li><a href="https://www.jetbrains.com/lp/python-developers-survey-2020/">Python Developers Survey 2020 Results </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, unittest, django, rich</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://adamj.eu/">Adam Johnson</podcast:person>
      <podcast:person role="Guest">David Smith</podcast:person>
    </item>
    <item>
      <title>184: Twisted and Testing Event Driven / Asynchronous Applications - Glyph</title>
      <itunes:episode>184</itunes:episode>
      <podcast:episode>184</podcast:episode>
      <itunes:title>184: Twisted and Testing Event Driven / Asynchronous Applications - Glyph</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">81f9542a-39d7-421b-8730-e65ba3a620ae</guid>
      <link>https://pythontest.com/testandcode/episodes/184-twisted-and-testing-event-driven-asynchronous-applications-glyph</link>
      <description>
        <![CDATA[<p>Twisted has been supporting asynchronous / event driven applications way before asyncio. Twisted, and Glyph, have also been encouraging automated tests for a very long time.</p><p>Twisted uses a technique that should be usable by other applications, even those using asyncio or other event driven architectures.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://pyfound.blogspot.com/2017/08/the-ethical-maintainer-community.html">Community Service Award Recipient Glyph Lefkowitz</a> — The PSF article I was referring to early in the episode </li><li><a href="https://twistedmatrix.com/">Twisted</a></li><li><a href="https://github.com/twisted/klein">twisted/klein</a></li><li><a href="https://github.com/twisted/treq">twisted/treq</a></li><li><a href="https://github.com/django/daphne">django/daphne</a> — Django Channels HTTP/WebSocket server</li><li><a href="https://scrapy.org/">Scrapy</a></li><li><a href="https://www.youtube.com/watch?v=o7GR7cG7xJ0">So Easy You Can Even Do It in JavaScript: Event-Driven Architecture for Regular Programmers - YouTube</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">Feature test - twitter engineering</a></li><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — Some reading for Glyph if he wants to learn to love pytest</li><li><a href="https://pypi.org/project/pytest-twisted/">pytest-twisted</a></li><li><a href="https://github.com/pygame/pygame">pygame</a></li><li><a href="https://pyodide.org/en/stable/">Pyodide</a></li><li><a href="https://brython.info/">Brython</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Twisted has been supporting asynchronous / event driven applications way before asyncio. Twisted, and Glyph, have also been encouraging automated tests for a very long time.</p><p>Twisted uses a technique that should be usable by other applications, even those using asyncio or other event driven architectures.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://pyfound.blogspot.com/2017/08/the-ethical-maintainer-community.html">Community Service Award Recipient Glyph Lefkowitz</a> — The PSF article I was referring to early in the episode </li><li><a href="https://twistedmatrix.com/">Twisted</a></li><li><a href="https://github.com/twisted/klein">twisted/klein</a></li><li><a href="https://github.com/twisted/treq">twisted/treq</a></li><li><a href="https://github.com/django/daphne">django/daphne</a> — Django Channels HTTP/WebSocket server</li><li><a href="https://scrapy.org/">Scrapy</a></li><li><a href="https://www.youtube.com/watch?v=o7GR7cG7xJ0">So Easy You Can Even Do It in JavaScript: Event-Driven Architecture for Regular Programmers - YouTube</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">Feature test - twitter engineering</a></li><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — Some reading for Glyph if he wants to learn to love pytest</li><li><a href="https://pypi.org/project/pytest-twisted/">pytest-twisted</a></li><li><a href="https://github.com/pygame/pygame">pygame</a></li><li><a href="https://pyodide.org/en/stable/">Pyodide</a></li><li><a href="https://brython.info/">Brython</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 21 Mar 2022 05:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/184.mp3" length="29521714" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2458</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Twisted has been supporting asynchronous / event driven applications way before asyncio. Twisted, and Glyph, have also been encouraging automated tests for a very long time.</p><p>Twisted uses a technique that should be usable by other applications, even those using asyncio or other event driven architectures.</p><p><br></p><p><br></p><p>Links:</p><ul><li><a href="https://pyfound.blogspot.com/2017/08/the-ethical-maintainer-community.html">Community Service Award Recipient Glyph Lefkowitz</a> — The PSF article I was referring to early in the episode </li><li><a href="https://twistedmatrix.com/">Twisted</a></li><li><a href="https://github.com/twisted/klein">twisted/klein</a></li><li><a href="https://github.com/twisted/treq">twisted/treq</a></li><li><a href="https://github.com/django/daphne">django/daphne</a> — Django Channels HTTP/WebSocket server</li><li><a href="https://scrapy.org/">Scrapy</a></li><li><a href="https://www.youtube.com/watch?v=o7GR7cG7xJ0">So Easy You Can Even Do It in JavaScript: Event-Driven Architecture for Regular Programmers - YouTube</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">Feature test - twitter engineering</a></li><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — Some reading for Glyph if he wants to learn to love pytest</li><li><a href="https://pypi.org/project/pytest-twisted/">pytest-twisted</a></li><li><a href="https://github.com/pygame/pygame">pygame</a></li><li><a href="https://pyodide.org/en/stable/">Pyodide</a></li><li><a href="https://brython.info/">Brython</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://blog.glyph.im/">Glyph</podcast:person>
    </item>
    <item>
      <title>183: Managing Software Teams - Ryan Cheley</title>
      <itunes:episode>183</itunes:episode>
      <podcast:episode>183</podcast:episode>
      <itunes:title>183: Managing Software Teams - Ryan Cheley</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">da7ae553-6354-44b6-a95c-ac8dce8bf784</guid>
      <link>https://pythontest.com/testandcode/episodes/183-managing-software-teams-ryan-cheley</link>
      <description>
        <![CDATA[<p>Ryan Cheley joins me today to talk about some challenges of managing software teams, and how to handle them.<br> We end up talking about a lot of skills that are excellent for software engineers as well as managers.</p><p>Some topics discussed:</p><ul><li>handling code reviews</li><li>asking good questions</li><li>being honest about what you can't do with current resources and data</li><li>discussing tradeoffs and offering solutions that can be completed faster than the ideal solution</li><li>balancing engineering and managing</li><li>making sure documentation happens</li><li>remote teams <ul><li>encouraging collaboration</li><li>encouraging non-work-related conversations</li><li>watching out for overworking</li></ul></li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Ryan Cheley joins me today to talk about some challenges of managing software teams, and how to handle them.<br> We end up talking about a lot of skills that are excellent for software engineers as well as managers.</p><p>Some topics discussed:</p><ul><li>handling code reviews</li><li>asking good questions</li><li>being honest about what you can't do with current resources and data</li><li>discussing tradeoffs and offering solutions that can be completed faster than the ideal solution</li><li>balancing engineering and managing</li><li>making sure documentation happens</li><li>remote teams <ul><li>encouraging collaboration</li><li>encouraging non-work-related conversations</li><li>watching out for overworking</li></ul></li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 16 Mar 2022 21:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/183.mp3" length="34313689" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2858</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Ryan Cheley joins me today to talk about some challenges of managing software teams, and how to handle them.<br> We end up talking about a lot of skills that are excellent for software engineers as well as managers.</p><p>Some topics discussed:</p><ul><li>handling code reviews</li><li>asking good questions</li><li>being honest about what you can't do with current resources and data</li><li>discussing tradeoffs and offering solutions that can be completed faster than the ideal solution</li><li>balancing engineering and managing</li><li>making sure documentation happens</li><li>remote teams <ul><li>encouraging collaboration</li><li>encouraging non-work-related conversations</li><li>watching out for overworking</li></ul></li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>managing software teams</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://www.ryancheley.com">Ryan Cheley</podcast:person>
    </item>
    <item>
      <title>182: An Unorthodox Technical Interview and Hiring Process - Nathan Aschbacher</title>
      <itunes:episode>182</itunes:episode>
      <podcast:episode>182</podcast:episode>
      <itunes:title>182: An Unorthodox Technical Interview and Hiring Process - Nathan Aschbacher</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">85ad9587-c649-48c6-97b5-3f7811cbe1ce</guid>
      <link>https://pythontest.com/testandcode/episodes/182-an-unorthodox-technical-interview-and-hiring-process-nathan-aschbacher</link>
      <description>
        <![CDATA[<p>Don't you just love technical interviews, with someone who just saw your resume or CV 5 minutes ago asking you to write some code on a whiteboard. Probably code that has nothing to do with anything you've done before or anything you will do at the company.</p><p>No? Neither does Nathan Aschbacher. <br> So when he started building the team at his company, he decided to do things differently.</p><p>Hiring is one of the essential processes for building a great team.<br> However, it's a high noise, low signal process.</p><p>Nathan Aschbacher has a relatively unorthodox tech hiring approach. <br> He's trying to make it very humane, with a better signal to noise ratio. </p><p>Nathan is not intereseted in bizarre interview processes where the interviewer doesn't know anything about the interviewee beforehand, all people are asked the same questions, and people are asked to code on white boards.</p><p>Instead, he states "if the goal is to try to figure out if the person can do the work with your team, and your trying to build the team that you are adding this person to, they need to know what the team is like, and determine if they want to be part of the team, and the team needs to know what the person is like and if they would be addititve to the team.</p><p>So what's Nathan's process:</p><ul><li>Screening resumes and CVs, looking for internal motivation to become an expert at something.</li><li>Basic phone screen, very informal.</li><li>A couple 2-3 hour pairings with someone on the team with whatever they are working on.</li><li>Debriefing both the candidate and the team afterwords.</li><li>Giving the candidate an opportunity for a second impression and following up on difficulties during the pairings.</li></ul><p>We discuss the process, and also:</p><ul><li>trying to remove the barriers to team integration </li><li>treating people as humans </li></ul><p>And of course, there's the story of how Nathan ended up interviewing someone with Zoo experience an no technical experience for a technical role. Of course, it was a misunderstanding of a job requirement around experience with ZooKeeper. But it's a good story.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Don't you just love technical interviews, with someone who just saw your resume or CV 5 minutes ago asking you to write some code on a whiteboard. Probably code that has nothing to do with anything you've done before or anything you will do at the company.</p><p>No? Neither does Nathan Aschbacher. <br> So when he started building the team at his company, he decided to do things differently.</p><p>Hiring is one of the essential processes for building a great team.<br> However, it's a high noise, low signal process.</p><p>Nathan Aschbacher has a relatively unorthodox tech hiring approach. <br> He's trying to make it very humane, with a better signal to noise ratio. </p><p>Nathan is not intereseted in bizarre interview processes where the interviewer doesn't know anything about the interviewee beforehand, all people are asked the same questions, and people are asked to code on white boards.</p><p>Instead, he states "if the goal is to try to figure out if the person can do the work with your team, and your trying to build the team that you are adding this person to, they need to know what the team is like, and determine if they want to be part of the team, and the team needs to know what the person is like and if they would be addititve to the team.</p><p>So what's Nathan's process:</p><ul><li>Screening resumes and CVs, looking for internal motivation to become an expert at something.</li><li>Basic phone screen, very informal.</li><li>A couple 2-3 hour pairings with someone on the team with whatever they are working on.</li><li>Debriefing both the candidate and the team afterwords.</li><li>Giving the candidate an opportunity for a second impression and following up on difficulties during the pairings.</li></ul><p>We discuss the process, and also:</p><ul><li>trying to remove the barriers to team integration </li><li>treating people as humans </li></ul><p>And of course, there's the story of how Nathan ended up interviewing someone with Zoo experience an no technical experience for a technical role. Of course, it was a misunderstanding of a job requirement around experience with ZooKeeper. But it's a good story.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 08 Mar 2022 09:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/182.mp3" length="34286139" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2855</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Don't you just love technical interviews, with someone who just saw your resume or CV 5 minutes ago asking you to write some code on a whiteboard. Probably code that has nothing to do with anything you've done before or anything you will do at the company.</p><p>No? Neither does Nathan Aschbacher. <br> So when he started building the team at his company, he decided to do things differently.</p><p>Hiring is one of the essential processes for building a great team.<br> However, it's a high noise, low signal process.</p><p>Nathan Aschbacher has a relatively unorthodox tech hiring approach. <br> He's trying to make it very humane, with a better signal to noise ratio. </p><p>Nathan is not intereseted in bizarre interview processes where the interviewer doesn't know anything about the interviewee beforehand, all people are asked the same questions, and people are asked to code on white boards.</p><p>Instead, he states "if the goal is to try to figure out if the person can do the work with your team, and your trying to build the team that you are adding this person to, they need to know what the team is like, and determine if they want to be part of the team, and the team needs to know what the person is like and if they would be addititve to the team.</p><p>So what's Nathan's process:</p><ul><li>Screening resumes and CVs, looking for internal motivation to become an expert at something.</li><li>Basic phone screen, very informal.</li><li>A couple 2-3 hour pairings with someone on the team with whatever they are working on.</li><li>Debriefing both the candidate and the team afterwords.</li><li>Giving the candidate an opportunity for a second impression and following up on difficulties during the pairings.</li></ul><p>We discuss the process, and also:</p><ul><li>trying to remove the barriers to team integration </li><li>treating people as humans </li></ul><p>And of course, there's the story of how Nathan ended up interviewing someone with Zoo experience an no technical experience for a technical role. Of course, it was a misunderstanding of a job requirement around experience with ZooKeeper. But it's a good story.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>technical interview, technical hiring</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://www.linkedin.com/in/nathanaschbacher">Nathan Aschbacher</podcast:person>
    </item>
    <item>
      <title>181: Boost Your Django DX - Adam Johnson</title>
      <itunes:episode>181</itunes:episode>
      <podcast:episode>181</podcast:episode>
      <itunes:title>181: Boost Your Django DX - Adam Johnson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1aea2461-7d5f-4f90-916c-fbd8ca50967e</guid>
      <link>https://pythontest.com/testandcode/episodes/181-boost-your-django-dx-adam-johnson</link>
      <description>
        <![CDATA[<p>We talk with Adam Johnson about his new book, "Boost Your Django DX". </p><p>Developer experience includes tools and practices to make developers more effective and efficient, and just plain make software development more fun and satisfying. <br> One of the things I love about this book is that it's not just for Django devs. <br> I'd guess that about half the book is about topics that all Python developers would find useful, from virtual environments to linters to testing. <br> But of course, also tons of tips and tools for working with Django.</p><p><br></p><p>Links:</p><ul><li><a href="https://adamj.eu/tech/2022/01/10/boost-your-django-dx-released/">“Boost Your Django DX” Released </a>— Adam's announcement</li><li><a href="https://adamchainz.gumroad.com/l/byddx">Boost Your Django DX</a> — The book</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We talk with Adam Johnson about his new book, "Boost Your Django DX". </p><p>Developer experience includes tools and practices to make developers more effective and efficient, and just plain make software development more fun and satisfying. <br> One of the things I love about this book is that it's not just for Django devs. <br> I'd guess that about half the book is about topics that all Python developers would find useful, from virtual environments to linters to testing. <br> But of course, also tons of tips and tools for working with Django.</p><p><br></p><p>Links:</p><ul><li><a href="https://adamj.eu/tech/2022/01/10/boost-your-django-dx-released/">“Boost Your Django DX” Released </a>— Adam's announcement</li><li><a href="https://adamchainz.gumroad.com/l/byddx">Boost Your Django DX</a> — The book</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 28 Feb 2022 23:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/181.mp3" length="19381260" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1613</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We talk with Adam Johnson about his new book, "Boost Your Django DX". </p><p>Developer experience includes tools and practices to make developers more effective and efficient, and just plain make software development more fun and satisfying. <br> One of the things I love about this book is that it's not just for Django devs. <br> I'd guess that about half the book is about topics that all Python developers would find useful, from virtual environments to linters to testing. <br> But of course, also tons of tips and tools for working with Django.</p><p><br></p><p>Links:</p><ul><li><a href="https://adamj.eu/tech/2022/01/10/boost-your-django-dx-released/">“Boost Your Django DX” Released </a>— Adam's announcement</li><li><a href="https://adamchainz.gumroad.com/l/byddx">Boost Your Django DX</a> — The book</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Django, developer experience</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://adamj.eu/">Adam Johnson</podcast:person>
    </item>
    <item>
      <title>180: Lean TDD</title>
      <itunes:episode>180</itunes:episode>
      <podcast:episode>180</podcast:episode>
      <itunes:title>180: Lean TDD</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9aba7c0d-11eb-4bde-adc6-6187c96436b9</guid>
      <link>https://pythontest.com/testandcode/episodes/180-lean-tdd</link>
      <description>
        <![CDATA[<p>Lean TDD is an attempt to reconcile some conflicting aspects of Test Driven Development and Lean Software Development.</p><p>I've mentioned Lean TDD on the podcast a few times and even tried to do a quick outline at the end of <a href="https://pythontest.com/testandcode/162">episode 162</a>.</p><p>This episode is a more complete outline, or at least a first draft.</p><p>If you feel you've got a good understanding of TDD, and it's working awesome for you, that's great. Keep doing what you're doing. There are no problems.</p><p>For me, the normal way TDD is taught just doesn't work. So I'm trying to come up with a spin on some old ideas to make it work for me. I'm hoping it works for you as well.</p><p>I'm calling the new thing Lean TDD. It's inspired by decades of experience writing software and influence from dozens of sources, including Pragmatic Programmer, Lean Software Development, Test-Driven Development by Example, and many blog posts and wiki articles. </p><p>The main highlights, however, come from the collision of ideas between Lean and TDD and how I've tried to resolve the seemingly opposing processes.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/lean-tdd/">Lean TDD | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li><li><a href="https://www.agilealliance.org/glossary/tdd/#q=~(infinite~false~filters~(postType~(~'page~'post~'aa_book~'aa_event_session~'aa_experience_report~'aa_glossary~'aa_research_paper~'aa_video)~tags~(~'tdd))~searchTerm~'~sort~false~sortDirection~'asc~page~1)">What is Test Driven Development (TDD)? | Agile Alliance</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/7">episode 7: The Waterfall Model and “Managing the Development of Large Software Systems”</a></li><li><a href="https://pythontest.com/testandcode/51">episode 51: Feature Testing</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">The testing renaissance</a> — Twitter Engineering blog post about Feature Testing</li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development">Lean software development - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Lean TDD is an attempt to reconcile some conflicting aspects of Test Driven Development and Lean Software Development.</p><p>I've mentioned Lean TDD on the podcast a few times and even tried to do a quick outline at the end of <a href="https://pythontest.com/testandcode/162">episode 162</a>.</p><p>This episode is a more complete outline, or at least a first draft.</p><p>If you feel you've got a good understanding of TDD, and it's working awesome for you, that's great. Keep doing what you're doing. There are no problems.</p><p>For me, the normal way TDD is taught just doesn't work. So I'm trying to come up with a spin on some old ideas to make it work for me. I'm hoping it works for you as well.</p><p>I'm calling the new thing Lean TDD. It's inspired by decades of experience writing software and influence from dozens of sources, including Pragmatic Programmer, Lean Software Development, Test-Driven Development by Example, and many blog posts and wiki articles. </p><p>The main highlights, however, come from the collision of ideas between Lean and TDD and how I've tried to resolve the seemingly opposing processes.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/lean-tdd/">Lean TDD | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li><li><a href="https://www.agilealliance.org/glossary/tdd/#q=~(infinite~false~filters~(postType~(~'page~'post~'aa_book~'aa_event_session~'aa_experience_report~'aa_glossary~'aa_research_paper~'aa_video)~tags~(~'tdd))~searchTerm~'~sort~false~sortDirection~'asc~page~1)">What is Test Driven Development (TDD)? | Agile Alliance</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/7">episode 7: The Waterfall Model and “Managing the Development of Large Software Systems”</a></li><li><a href="https://pythontest.com/testandcode/51">episode 51: Feature Testing</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">The testing renaissance</a> — Twitter Engineering blog post about Feature Testing</li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development">Lean software development - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 21 Feb 2022 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/180.mp3" length="18654611" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1553</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Lean TDD is an attempt to reconcile some conflicting aspects of Test Driven Development and Lean Software Development.</p><p>I've mentioned Lean TDD on the podcast a few times and even tried to do a quick outline at the end of <a href="https://pythontest.com/testandcode/162">episode 162</a>.</p><p>This episode is a more complete outline, or at least a first draft.</p><p>If you feel you've got a good understanding of TDD, and it's working awesome for you, that's great. Keep doing what you're doing. There are no problems.</p><p>For me, the normal way TDD is taught just doesn't work. So I'm trying to come up with a spin on some old ideas to make it work for me. I'm hoping it works for you as well.</p><p>I'm calling the new thing Lean TDD. It's inspired by decades of experience writing software and influence from dozens of sources, including Pragmatic Programmer, Lean Software Development, Test-Driven Development by Example, and many blog posts and wiki articles. </p><p>The main highlights, however, come from the collision of ideas between Lean and TDD and how I've tried to resolve the seemingly opposing processes.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/lean-tdd/">Lean TDD | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li><li><a href="https://www.agilealliance.org/glossary/tdd/#q=~(infinite~false~filters~(postType~(~'page~'post~'aa_book~'aa_event_session~'aa_experience_report~'aa_glossary~'aa_research_paper~'aa_video)~tags~(~'tdd))~searchTerm~'~sort~false~sortDirection~'asc~page~1)">What is Test Driven Development (TDD)? | Agile Alliance</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development | pythontest.com</a></li><li><a href="https://pythontest.com/testandcode/7">episode 7: The Waterfall Model and “Managing the Development of Large Software Systems”</a></li><li><a href="https://pythontest.com/testandcode/51">episode 51: Feature Testing</a></li><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance">The testing renaissance</a> — Twitter Engineering blog post about Feature Testing</li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development">Lean software development - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Lean Software Development, TDD, Lean TDD</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>179: Exploratory Testing</title>
      <itunes:episode>179</itunes:episode>
      <podcast:episode>179</podcast:episode>
      <itunes:title>179: Exploratory Testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">00fe3327-f429-4765-8cf6-017632ac9804</guid>
      <link>https://pythontest.com/testandcode/episodes/179-exploratory-testing</link>
      <description>
        <![CDATA[<p>Exploratory testing is absolutely an essential part of a testing strategy.<br> This episode discusses what exploratory testing is, its benefits, and how it fits within a framework of relying on automated tests for most of our testing.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Exploratory testing is absolutely an essential part of a testing strategy.<br> This episode discusses what exploratory testing is, its benefits, and how it fits within a framework of relying on automated tests for most of our testing.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 08 Feb 2022 22:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/179.mp3" length="7718615" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>641</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Exploratory testing is absolutely an essential part of a testing strategy.<br> This episode discusses what exploratory testing is, its benefits, and how it fits within a framework of relying on automated tests for most of our testing.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>178: The Five Factors of Automated Software Testing</title>
      <itunes:episode>178</itunes:episode>
      <podcast:episode>178</podcast:episode>
      <itunes:title>178: The Five Factors of Automated Software Testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d140d89d-122b-4d1a-984a-31ce65b802e0</guid>
      <link>https://pythontest.com/testandcode/episodes/178-the-five-factors-of-automated-software-testing</link>
      <description>
        <![CDATA[<p>"There are five practical reasons that we write tests. Whether we realize it or not, our personal testing philosophy is based on how we judge the relative importance of these reasons." - Sarah Mei</p><p>This episode discusses the factors.</p><p>Sarah's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Document the code’s behavior</li><li>Provide design guidance</li><li>Support refactoring</li></ol><p>Brian's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Support refactoring</li><li>Provide design guidance</li><li>Document the code’s behavior</li></ol><p>The episode includes reasons why I've re-ordered them.</p><p><br></p><p>Links:</p><ul><li><a href="https://madeintandem.com/blog/five-factor-testing/">Five Factor Testing - Sarah Mei</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>"There are five practical reasons that we write tests. Whether we realize it or not, our personal testing philosophy is based on how we judge the relative importance of these reasons." - Sarah Mei</p><p>This episode discusses the factors.</p><p>Sarah's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Document the code’s behavior</li><li>Provide design guidance</li><li>Support refactoring</li></ol><p>Brian's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Support refactoring</li><li>Provide design guidance</li><li>Document the code’s behavior</li></ol><p>The episode includes reasons why I've re-ordered them.</p><p><br></p><p>Links:</p><ul><li><a href="https://madeintandem.com/blog/five-factor-testing/">Five Factor Testing - Sarah Mei</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 31 Jan 2022 13:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/178.mp3" length="6894845" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>573</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>"There are five practical reasons that we write tests. Whether we realize it or not, our personal testing philosophy is based on how we judge the relative importance of these reasons." - Sarah Mei</p><p>This episode discusses the factors.</p><p>Sarah's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Document the code’s behavior</li><li>Provide design guidance</li><li>Support refactoring</li></ol><p>Brian's order:</p><ol><li>Verify the code is working correctly</li><li>Prevent future regressions</li><li>Support refactoring</li><li>Provide design guidance</li><li>Document the code’s behavior</li></ol><p>The episode includes reasons why I've re-ordered them.</p><p><br></p><p>Links:</p><ul><li><a href="https://madeintandem.com/blog/five-factor-testing/">Five Factor Testing - Sarah Mei</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>177: Unit Test vs Integration Test and The Testing Trophy</title>
      <itunes:episode>177</itunes:episode>
      <podcast:episode>177</podcast:episode>
      <itunes:title>177: Unit Test vs Integration Test and The Testing Trophy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">970e1fef-8d7c-4aa6-b0d1-a997b83e8778</guid>
      <link>https://pythontest.com/testandcode/episodes/177-unit-test-vs-integration-test-and-the-testing-trophy</link>
      <description>
        <![CDATA[<p>A recent Twitter thread by Simon Willison reminded me that I've been meaning to do an episode on the testing trophy.<br> This discussion is about the distinction between unit and integration tests, what those terms mean, and where we should spend our testing time.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/simonw/status/1485700771031117824">Simon Willison's Twitter Thread</a></li><li><a href="https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications">The Testing Trophy and Testing Classifications</a> — Kent C Dodds</li><li><a href="https://kentcdodds.com/blog/write-tests">Write tests. Not too many. Mostly integration.</a> — Kent C Dodds</li><li><a href="https://martinfowler.com/articles/2021-test-shapes.html">On the Diverse And Fantastical Shapes of Testing</a> — Martin Fowler</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A recent Twitter thread by Simon Willison reminded me that I've been meaning to do an episode on the testing trophy.<br> This discussion is about the distinction between unit and integration tests, what those terms mean, and where we should spend our testing time.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/simonw/status/1485700771031117824">Simon Willison's Twitter Thread</a></li><li><a href="https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications">The Testing Trophy and Testing Classifications</a> — Kent C Dodds</li><li><a href="https://kentcdodds.com/blog/write-tests">Write tests. Not too many. Mostly integration.</a> — Kent C Dodds</li><li><a href="https://martinfowler.com/articles/2021-test-shapes.html">On the Diverse And Fantastical Shapes of Testing</a> — Martin Fowler</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 27 Jan 2022 22:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/177.mp3" length="14993332" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1248</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A recent Twitter thread by Simon Willison reminded me that I've been meaning to do an episode on the testing trophy.<br> This discussion is about the distinction between unit and integration tests, what those terms mean, and where we should spend our testing time.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/simonw/status/1485700771031117824">Simon Willison's Twitter Thread</a></li><li><a href="https://kentcdodds.com/blog/the-testing-trophy-and-testing-classifications">The Testing Trophy and Testing Classifications</a> — Kent C Dodds</li><li><a href="https://kentcdodds.com/blog/write-tests">Write tests. Not too many. Mostly integration.</a> — Kent C Dodds</li><li><a href="https://martinfowler.com/articles/2021-test-shapes.html">On the Diverse And Fantastical Shapes of Testing</a> — Martin Fowler</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>testing trophy, unit tests, integration tests</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>176: SaaS Side Projects - Brandon Braner</title>
      <itunes:episode>176</itunes:episode>
      <podcast:episode>176</podcast:episode>
      <itunes:title>176: SaaS Side Projects - Brandon Braner</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">046bbdf7-c287-4241-8e60-7ad6a53ebf5c</guid>
      <link>https://pythontest.com/testandcode/episodes/176-saas-side-projects</link>
      <description>
        <![CDATA[<p>The idea of having a software as a service product sound great, doesn't it?</p><p> Solve a problem with software. Have a nice looking landing page and website. Get paying customers.</p><p> Eventually have it make enough revenue so you can turn it into your primary source of income. </p><p>There's a lot of software talent out there. We could solve lots of problems. <br> But going from idea to product to first customer is non-trivial. <br> Especially as a side hustle. <br> This episode discusses some of the hurdles from idea to first customer. </p><p>Brandon Braner is building Released.sh. It's a cool idea, but it's not done yet. </p><p>Brandon and I talk about building side projects:</p><ul><li>finding a target audience</li><li>limiting scope to something doable by one person</li><li>building a great looking landing page</li><li>finding time to work on things</li><li>prioritizing and planning</li><li>learning while building</li><li>even utilizing third party services to allow you to launch faster</li><li>and last, but not least, having fun</li></ul><p><br></p><p>Special Guest: Brandon Braner.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.released.sh/">Released</a></li><li><a href="https://tailwindcss.com/">Tailwind CSS </a></li><li><a href="https://tailwindui.com/">Tailwind UI</a></li><li><a href="https://www.figma.com/">Figma</a></li><li><a href="https://www.heroku.com/">Heroku</a></li><li><a href="https://cloud.google.com/appengine">Google App Engine</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The idea of having a software as a service product sound great, doesn't it?</p><p> Solve a problem with software. Have a nice looking landing page and website. Get paying customers.</p><p> Eventually have it make enough revenue so you can turn it into your primary source of income. </p><p>There's a lot of software talent out there. We could solve lots of problems. <br> But going from idea to product to first customer is non-trivial. <br> Especially as a side hustle. <br> This episode discusses some of the hurdles from idea to first customer. </p><p>Brandon Braner is building Released.sh. It's a cool idea, but it's not done yet. </p><p>Brandon and I talk about building side projects:</p><ul><li>finding a target audience</li><li>limiting scope to something doable by one person</li><li>building a great looking landing page</li><li>finding time to work on things</li><li>prioritizing and planning</li><li>learning while building</li><li>even utilizing third party services to allow you to launch faster</li><li>and last, but not least, having fun</li></ul><p><br></p><p>Special Guest: Brandon Braner.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.released.sh/">Released</a></li><li><a href="https://tailwindcss.com/">Tailwind CSS </a></li><li><a href="https://tailwindui.com/">Tailwind UI</a></li><li><a href="https://www.figma.com/">Figma</a></li><li><a href="https://www.heroku.com/">Heroku</a></li><li><a href="https://cloud.google.com/appengine">Google App Engine</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 18 Jan 2022 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/176.mp3" length="17925508" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1492</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The idea of having a software as a service product sound great, doesn't it?</p><p> Solve a problem with software. Have a nice looking landing page and website. Get paying customers.</p><p> Eventually have it make enough revenue so you can turn it into your primary source of income. </p><p>There's a lot of software talent out there. We could solve lots of problems. <br> But going from idea to product to first customer is non-trivial. <br> Especially as a side hustle. <br> This episode discusses some of the hurdles from idea to first customer. </p><p>Brandon Braner is building Released.sh. It's a cool idea, but it's not done yet. </p><p>Brandon and I talk about building side projects:</p><ul><li>finding a target audience</li><li>limiting scope to something doable by one person</li><li>building a great looking landing page</li><li>finding time to work on things</li><li>prioritizing and planning</li><li>learning while building</li><li>even utilizing third party services to allow you to launch faster</li><li>and last, but not least, having fun</li></ul><p><br></p><p>Special Guest: Brandon Braner.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.released.sh/">Released</a></li><li><a href="https://tailwindcss.com/">Tailwind CSS </a></li><li><a href="https://tailwindui.com/">Tailwind UI</a></li><li><a href="https://www.figma.com/">Figma</a></li><li><a href="https://www.heroku.com/">Heroku</a></li><li><a href="https://cloud.google.com/appengine">Google App Engine</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>SaaS, side projects</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>175: Who Should Do QA?</title>
      <itunes:episode>175</itunes:episode>
      <podcast:episode>175</podcast:episode>
      <itunes:title>175: Who Should Do QA?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">21d96fef-d558-4176-a67f-9f8d89fcbd0a</guid>
      <link>https://pythontest.com/testandcode/episodes/175-who-should-do-qa</link>
      <description>
        <![CDATA[<ul><li>Who should do QA?</li><li>How does that change with different projects and teams?</li><li>What does "doing QA" mean, anyway?</li></ul><p>Answering these questions are the goals of this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.thoughtworks.com/insights/blog/test-automation-who-should-be-involved">Test Automation - Who Should be Involved? | Thoughtworks</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>Who should do QA?</li><li>How does that change with different projects and teams?</li><li>What does "doing QA" mean, anyway?</li></ul><p>Answering these questions are the goals of this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.thoughtworks.com/insights/blog/test-automation-who-should-be-involved">Test Automation - Who Should be Involved? | Thoughtworks</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 12 Jan 2022 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/175.mp3" length="8819204" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>733</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>Who should do QA?</li><li>How does that change with different projects and teams?</li><li>What does "doing QA" mean, anyway?</li></ul><p>Answering these questions are the goals of this episode.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.thoughtworks.com/insights/blog/test-automation-who-should-be-involved">Test Automation - Who Should be Involved? | Thoughtworks</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>qa, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>174: pseudo-TDD - Paul Ganssle</title>
      <itunes:episode>174</itunes:episode>
      <podcast:episode>174</podcast:episode>
      <itunes:title>174: pseudo-TDD - Paul Ganssle</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">57be1820-e728-488c-8e88-2de99444de8d</guid>
      <link>https://pythontest.com/testandcode/episodes/174-pseudo-tdd-paul-ganssle</link>
      <description>
        <![CDATA[<p>In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD.<br> Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit.<br> This workflow includes using pytest xfail and some semi-advanced version control features.</p><p>Some strict forms of TDD include something like this:</p><ul><li>write a failing test that demonstrates a lacking feature or defect</li><li>write the source code to get the test to pass</li><li>refactor if necessary</li><li>repeat</li></ul><p>In reality, at least for me, the software development process is way more messy than this, and not so smooth and linear.</p><p>Pauls workflow allow you to develop non-linearly, but commit cleanly.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pseudo-tdd-xfail.html">A pseudo-TDD workflow using expected failures</a></li><li><a href="https://pythontest.com/testandcode/171">episode 171: How and why I use pytest's xfail - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD.<br> Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit.<br> This workflow includes using pytest xfail and some semi-advanced version control features.</p><p>Some strict forms of TDD include something like this:</p><ul><li>write a failing test that demonstrates a lacking feature or defect</li><li>write the source code to get the test to pass</li><li>refactor if necessary</li><li>repeat</li></ul><p>In reality, at least for me, the software development process is way more messy than this, and not so smooth and linear.</p><p>Pauls workflow allow you to develop non-linearly, but commit cleanly.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pseudo-tdd-xfail.html">A pseudo-TDD workflow using expected failures</a></li><li><a href="https://pythontest.com/testandcode/171">episode 171: How and why I use pytest's xfail - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 22 Dec 2021 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/174.mp3" length="28216698" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2350</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD.<br> Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit.<br> This workflow includes using pytest xfail and some semi-advanced version control features.</p><p>Some strict forms of TDD include something like this:</p><ul><li>write a failing test that demonstrates a lacking feature or defect</li><li>write the source code to get the test to pass</li><li>refactor if necessary</li><li>repeat</li></ul><p>In reality, at least for me, the software development process is way more messy than this, and not so smooth and linear.</p><p>Pauls workflow allow you to develop non-linearly, but commit cleanly.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pseudo-tdd-xfail.html">A pseudo-TDD workflow using expected failures</a></li><li><a href="https://pythontest.com/testandcode/171">episode 171: How and why I use pytest's xfail - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/162">episode 162: Flavors of TDD</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>TDD, pytest, git</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://ganssle.io">Paul Ganssle</podcast:person>
    </item>
    <item>
      <title>173: Why NOT unittest?</title>
      <itunes:episode>173</itunes:episode>
      <podcast:episode>173</podcast:episode>
      <itunes:title>173: Why NOT unittest?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">50eaedb6-3cc7-4975-8170-e8749ba2174e</guid>
      <link>https://pythontest.com/testandcode/episodes/173-why-not-unittest</link>
      <description>
        <![CDATA[<p>In the preface of "Python Testing with pytest" I list some reasons to use pytest, under a section called "why pytest?". Someone asked me recently, a different but related question "why NOT unittest?".</p><p>unittest is an xUnit style framework. For me, xUnit style frameworks are fatally flawed for software testing.</p><p>That's what this episode is about, my opinion of </p><ul><li>"Why NOT unittest?", or more broadly, </li><li>"What are the fatal flaws of xUnit?"</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest2/python-testing-with-pytest-second-edition/">Python Testing with pytest, Second Edition</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest docs</a></li><li><a href="https://docs.python.org/3/library/unittest.html#assert-methods">unittest assert methods</a></li><li><a href="https://en.wikipedia.org/wiki/XUnit">xUnit - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In the preface of "Python Testing with pytest" I list some reasons to use pytest, under a section called "why pytest?". Someone asked me recently, a different but related question "why NOT unittest?".</p><p>unittest is an xUnit style framework. For me, xUnit style frameworks are fatally flawed for software testing.</p><p>That's what this episode is about, my opinion of </p><ul><li>"Why NOT unittest?", or more broadly, </li><li>"What are the fatal flaws of xUnit?"</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest2/python-testing-with-pytest-second-edition/">Python Testing with pytest, Second Edition</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest docs</a></li><li><a href="https://docs.python.org/3/library/unittest.html#assert-methods">unittest assert methods</a></li><li><a href="https://en.wikipedia.org/wiki/XUnit">xUnit - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 17 Dec 2021 13:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/173.mp3" length="16865963" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1404</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In the preface of "Python Testing with pytest" I list some reasons to use pytest, under a section called "why pytest?". Someone asked me recently, a different but related question "why NOT unittest?".</p><p>unittest is an xUnit style framework. For me, xUnit style frameworks are fatally flawed for software testing.</p><p>That's what this episode is about, my opinion of </p><ul><li>"Why NOT unittest?", or more broadly, </li><li>"What are the fatal flaws of xUnit?"</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest2/python-testing-with-pytest-second-edition/">Python Testing with pytest, Second Edition</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest docs</a></li><li><a href="https://docs.python.org/3/library/unittest.html#assert-methods">unittest assert methods</a></li><li><a href="https://en.wikipedia.org/wiki/XUnit">xUnit - Wikipedia</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>unittest, pytest, xunit, Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>172: Designing Better Software with a Prototype Mindset</title>
      <itunes:episode>172</itunes:episode>
      <podcast:episode>172</podcast:episode>
      <itunes:title>172: Designing Better Software with a Prototype Mindset</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">84d70f46-2af3-4b68-a82e-7c6bbfe93637</guid>
      <link>https://pythontest.com/testandcode/episodes/172-designing-better-software-with-a-prototype-mindset</link>
      <description>
        <![CDATA[<p>A prototype is a a preliminary model of something, from which other forms are developed or copied.<br> In software, we think of prototypes as early things, or a proof of concept.<br> We don't often think of prototyping during daily software development or maintenance. I think we should.<br> This episode is about growing better designed software with the help of a prototype mindset.</p><p><br></p><p>Links:</p><ul><li><a href="https://snarky.ca/programming-language-selection-is-a-form-of-premature-optimization/">Selecting a programming language can be a form of premature optimization</a> — Brett Cannon's blog post</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A prototype is a a preliminary model of something, from which other forms are developed or copied.<br> In software, we think of prototypes as early things, or a proof of concept.<br> We don't often think of prototyping during daily software development or maintenance. I think we should.<br> This episode is about growing better designed software with the help of a prototype mindset.</p><p><br></p><p>Links:</p><ul><li><a href="https://snarky.ca/programming-language-selection-is-a-form-of-premature-optimization/">Selecting a programming language can be a form of premature optimization</a> — Brett Cannon's blog post</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 30 Nov 2021 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/172.mp3" length="4758868" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>395</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A prototype is a a preliminary model of something, from which other forms are developed or copied.<br> In software, we think of prototypes as early things, or a proof of concept.<br> We don't often think of prototyping during daily software development or maintenance. I think we should.<br> This episode is about growing better designed software with the help of a prototype mindset.</p><p><br></p><p>Links:</p><ul><li><a href="https://snarky.ca/programming-language-selection-is-a-form-of-premature-optimization/">Selecting a programming language can be a form of premature optimization</a> — Brett Cannon's blog post</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software design</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>171: How and why I use pytest's xfail - Paul Ganssle</title>
      <itunes:episode>171</itunes:episode>
      <podcast:episode>171</podcast:episode>
      <itunes:title>171: How and why I use pytest's xfail - Paul Ganssle</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">67a4470a-1265-4197-b004-6d945829da2b</guid>
      <link>https://pythontest.com/testandcode/episodes/171-how-and-why-i-use-pytests-xfail-paul-ganssle</link>
      <description>
        <![CDATA[<p>Paul Ganssle, is a software developer at Google, core Python dev, and open source maintainer for many projects, has some thoughts about pytest's xfail.<br> He was an early skeptic of using xfail, and is now an proponent of the feature.<br> In this episode, we talk about some open source workflows that are possible because of xfail. </p><p><br></p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pytest-xfail.html">How and why I use pytest's xfail</a> — Paul's blog post mentioned in the episode</li><li><a href="https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports">Craft Minimal Bug Reports</a> — Matthew Rocklin's article</li><li><a href="https://pythontest.com/testandcode/111">episode 111: Subtests in Python with unittest and pytest - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/166">episode 166: unittest expectedFailure and xfail</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Paul Ganssle, is a software developer at Google, core Python dev, and open source maintainer for many projects, has some thoughts about pytest's xfail.<br> He was an early skeptic of using xfail, and is now an proponent of the feature.<br> In this episode, we talk about some open source workflows that are possible because of xfail. </p><p><br></p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pytest-xfail.html">How and why I use pytest's xfail</a> — Paul's blog post mentioned in the episode</li><li><a href="https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports">Craft Minimal Bug Reports</a> — Matthew Rocklin's article</li><li><a href="https://pythontest.com/testandcode/111">episode 111: Subtests in Python with unittest and pytest - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/166">episode 166: unittest expectedFailure and xfail</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 22 Nov 2021 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/171.mp3" length="27345902" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2277</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Paul Ganssle, is a software developer at Google, core Python dev, and open source maintainer for many projects, has some thoughts about pytest's xfail.<br> He was an early skeptic of using xfail, and is now an proponent of the feature.<br> In this episode, we talk about some open source workflows that are possible because of xfail. </p><p><br></p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2021/11/pytest-xfail.html">How and why I use pytest's xfail</a> — Paul's blog post mentioned in the episode</li><li><a href="https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports">Craft Minimal Bug Reports</a> — Matthew Rocklin's article</li><li><a href="https://pythontest.com/testandcode/111">episode 111: Subtests in Python with unittest and pytest - Paul Ganssle</a></li><li><a href="https://pythontest.com/testandcode/165">episode 165: pytest xfail policy and workflow</a></li><li><a href="https://pythontest.com/testandcode/166">episode 166: unittest expectedFailure and xfail</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>xfail, pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://ganssle.io">Paul Ganssle</podcast:person>
    </item>
    <item>
      <title>170: pytest for Data Science and Machine Learning - Prayson Daniel</title>
      <itunes:episode>170</itunes:episode>
      <podcast:episode>170</podcast:episode>
      <itunes:title>170: pytest for Data Science and Machine Learning - Prayson Daniel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">13527540-6f5b-44c1-b3fc-1f28aeeec3dd</guid>
      <link>https://pythontest.com/testandcode/episodes/170-pytest-for-data-science-and-machine-learning-prayson-daniel</link>
      <description>
        <![CDATA[<p>Prayson Daniel, a principle data scientist, discusses testing machine learning pipelines with pytest.</p><p>Prayson is using pytest for some pretty cool stuff, including:</p><ul><li>unit tests, of course</li><li>testing pipeline stages</li><li>counterfactual testing</li><li>performance testing</li></ul><p>All with pytest. So cool.</p><p><br></p><p>Special Guest: Prayson Daniel.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/250/skorch-your-scikit-learn-together-with-pytorch">Python Bytes 250, with Prayson Daniel</a> — Listen to this for more of an introduction to Prayson</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Prayson Daniel, a principle data scientist, discusses testing machine learning pipelines with pytest.</p><p>Prayson is using pytest for some pretty cool stuff, including:</p><ul><li>unit tests, of course</li><li>testing pipeline stages</li><li>counterfactual testing</li><li>performance testing</li></ul><p>All with pytest. So cool.</p><p><br></p><p>Special Guest: Prayson Daniel.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/250/skorch-your-scikit-learn-together-with-pytorch">Python Bytes 250, with Prayson Daniel</a> — Listen to this for more of an introduction to Prayson</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 17 Nov 2021 22:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/170.mp3" length="32392773" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2698</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Prayson Daniel, a principle data scientist, discusses testing machine learning pipelines with pytest.</p><p>Prayson is using pytest for some pretty cool stuff, including:</p><ul><li>unit tests, of course</li><li>testing pipeline stages</li><li>counterfactual testing</li><li>performance testing</li></ul><p>All with pytest. So cool.</p><p><br></p><p>Special Guest: Prayson Daniel.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/episodes/show/250/skorch-your-scikit-learn-together-with-pytorch">Python Bytes 250, with Prayson Daniel</a> — Listen to this for more of an introduction to Prayson</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>data science, machine learning, ML pipelines, pytest, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>169: Service and Microservice Performance Monitoring - Omri Sass</title>
      <itunes:episode>169</itunes:episode>
      <podcast:episode>169</podcast:episode>
      <itunes:title>169: Service and Microservice Performance Monitoring - Omri Sass</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5a9eff14-11df-40e7-8d3f-df0b4f022d40</guid>
      <link>https://pythontest.com/testandcode/episodes/169-service-and-microservice-performance-monitoring-omri-sass</link>
      <description>
        <![CDATA[<p>Performance monitoring and error detection is just as important with services and microservices as with any system, but with added complexity. Omri Sass joins the show to explain telemetry and monitoring of services and of systems with services. </p><p><br></p><p>Special Guest: Omri Sass.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Performance monitoring and error detection is just as important with services and microservices as with any system, but with added complexity. Omri Sass joins the show to explain telemetry and monitoring of services and of systems with services. </p><p><br></p><p>Special Guest: Omri Sass.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 11 Nov 2021 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/169.mp3" length="21670864" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1804</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Performance monitoring and error detection is just as important with services and microservices as with any system, but with added complexity. Omri Sass joins the show to explain telemetry and monitoring of services and of systems with services. </p><p><br></p><p>Special Guest: Omri Sass.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>performance monitoring, APM, services, microservices</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>168: Understanding Complex Code by Refactoring into Larger Functions</title>
      <itunes:episode>168</itunes:episode>
      <podcast:episode>168</podcast:episode>
      <itunes:title>168: Understanding Complex Code by Refactoring into Larger Functions</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">841943a8-3f1c-42a9-b316-015b8c75bce0</guid>
      <link>https://pythontest.com/testandcode/episodes/168-understanding-complex-code-by-refactoring-into-larger-functions</link>
      <description>
        <![CDATA[<p>To understand complex code, it can be helpful to remove abstractions, even if it results in larger functions. This episode walks through a process I use to refactor code that I need to debug and fix, but don't completely understand.</p><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>To understand complex code, it can be helpful to remove abstractions, even if it results in larger functions. This episode walks through a process I use to refactor code that I need to debug and fix, but don't completely understand.</p><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 02 Nov 2021 07:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/168.mp3" length="8034950" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>668</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>To understand complex code, it can be helpful to remove abstractions, even if it results in larger functions. This episode walks through a process I use to refactor code that I need to debug and fix, but don't completely understand.</p><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>refactoring</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title> 167: React, TypeScript, and the Joy of Testing - Paul Everitt</title>
      <itunes:episode>167</itunes:episode>
      <podcast:episode>167</podcast:episode>
      <itunes:title> 167: React, TypeScript, and the Joy of Testing - Paul Everitt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0749a8f0-4020-4f9e-ada5-e8315f09c395</guid>
      <link>https://pythontest.com/testandcode/episodes/167-react-typescript-and-the-joy-of-testing-paul-everitt</link>
      <description>
        <![CDATA[<p>Paul has a tutorial on testing and TDD with React and TypeScript. <br> We discuss workflow and the differences, similarities between testing with React/TypeScript and Python.<br> We also discuss what lessons that we can bring from front end testing to Python testing.</p><p><br></p><p>Special Guest: Paul Everitt.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.jetbrains.com/webstorm/guide/tutorials/react_typescript_tdd/">React, TypeScript, and TDD</a> — Paul Everitt's tutorial</li><li><a href="https://testing-library.com/docs/react-testing-library/intro/">React Testing Library</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Paul has a tutorial on testing and TDD with React and TypeScript. <br> We discuss workflow and the differences, similarities between testing with React/TypeScript and Python.<br> We also discuss what lessons that we can bring from front end testing to Python testing.</p><p><br></p><p>Special Guest: Paul Everitt.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.jetbrains.com/webstorm/guide/tutorials/react_typescript_tdd/">React, TypeScript, and TDD</a> — Paul Everitt's tutorial</li><li><a href="https://testing-library.com/docs/react-testing-library/intro/">React Testing Library</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 21 Oct 2021 21:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/167.mp3" length="26815835" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2233</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Paul has a tutorial on testing and TDD with React and TypeScript. <br> We discuss workflow and the differences, similarities between testing with React/TypeScript and Python.<br> We also discuss what lessons that we can bring from front end testing to Python testing.</p><p><br></p><p>Special Guest: Paul Everitt.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.jetbrains.com/webstorm/guide/tutorials/react_typescript_tdd/">React, TypeScript, and TDD</a> — Paul Everitt's tutorial</li><li><a href="https://testing-library.com/docs/react-testing-library/intro/">React Testing Library</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>JavaScript, React, TypeScript, TDD,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>166: unittest expectedFailure and xfail</title>
      <itunes:episode>166</itunes:episode>
      <podcast:episode>166</podcast:episode>
      <itunes:title>166: unittest expectedFailure and xfail</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">8992c879-1665-4f52-a03e-8b11645302ce</guid>
      <link>https://pythontest.com/testandcode/episodes/166-unittest-expectedfailure-and-xfail</link>
      <description>
        <![CDATA[<p>xfail isn't just for pytest tests. Python's unittest has @unittest.expectedFailure.</p><p>In this episode, we cover:</p><ul><li>using @unittest.expectedFailure</li><li>the results of passing and failing tests with expectedFailure</li><li>using pytest as a test runner for unittest</li><li>using pytest markers on unittest tests</li></ul><p>Docs for expectedFailure: <br> <a href="https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures">https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures</a></p><p>Some sample code. <br> unittest only:</p>import unittest

class ExpectedFailureTestCase(unittest.TestCase):

    @unittest.expectedFailure
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @unittest.expectedFailure
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p>unittest with pytest markers:</p>import unittest
import pytest


class ExpectedFailureTestCase(unittest.TestCase):

    @pytest.mark.xfail
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @pytest.mark.xfail
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>xfail isn't just for pytest tests. Python's unittest has @unittest.expectedFailure.</p><p>In this episode, we cover:</p><ul><li>using @unittest.expectedFailure</li><li>the results of passing and failing tests with expectedFailure</li><li>using pytest as a test runner for unittest</li><li>using pytest markers on unittest tests</li></ul><p>Docs for expectedFailure: <br> <a href="https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures">https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures</a></p><p>Some sample code. <br> unittest only:</p>import unittest

class ExpectedFailureTestCase(unittest.TestCase):

    @unittest.expectedFailure
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @unittest.expectedFailure
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p>unittest with pytest markers:</p>import unittest
import pytest


class ExpectedFailureTestCase(unittest.TestCase):

    @pytest.mark.xfail
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @pytest.mark.xfail
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 14 Oct 2021 10:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/166.mp3" length="4904929" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>407</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>xfail isn't just for pytest tests. Python's unittest has @unittest.expectedFailure.</p><p>In this episode, we cover:</p><ul><li>using @unittest.expectedFailure</li><li>the results of passing and failing tests with expectedFailure</li><li>using pytest as a test runner for unittest</li><li>using pytest markers on unittest tests</li></ul><p>Docs for expectedFailure: <br> <a href="https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures">https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures</a></p><p>Some sample code. <br> unittest only:</p>import unittest

class ExpectedFailureTestCase(unittest.TestCase):

    @unittest.expectedFailure
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @unittest.expectedFailure
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p>unittest with pytest markers:</p>import unittest
import pytest


class ExpectedFailureTestCase(unittest.TestCase):

    @pytest.mark.xfail
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @pytest.mark.xfail
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")
<br><p><br></p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, pytest, unittest, expectedFailure, xfail</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>165: pytest xfail policy and workflow</title>
      <itunes:episode>165</itunes:episode>
      <podcast:episode>165</podcast:episode>
      <itunes:title>165: pytest xfail policy and workflow</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0c1c2f1e-eb9b-484c-a5be-657630e83773</guid>
      <link>https://pythontest.com/testandcode/episodes/165-pytest-xfail-policy-and-workflow</link>
      <description>
        <![CDATA[<p>A discussion of how to use the xfail feature of pytest to help with communication on software projects.</p><p>The episode covers:</p><ul><li>What is xfail</li><li>Why I use it</li><li>Using reason effectively by including issue tracking numbers</li><li>Using xfail_strict</li><li>Adding --runxfail when transitioning from development to feature freeze</li><li>What to do about test failures</li><li>How all of this might help with team communication</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A discussion of how to use the xfail feature of pytest to help with communication on software projects.</p><p>The episode covers:</p><ul><li>What is xfail</li><li>Why I use it</li><li>Using reason effectively by including issue tracking numbers</li><li>Using xfail_strict</li><li>Adding --runxfail when transitioning from development to feature freeze</li><li>What to do about test failures</li><li>How all of this might help with team communication</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 07 Oct 2021 15:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/165.mp3" length="6681671" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>555</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A discussion of how to use the xfail feature of pytest to help with communication on software projects.</p><p>The episode covers:</p><ul><li>What is xfail</li><li>Why I use it</li><li>Using reason effectively by including issue tracking numbers</li><li>Using xfail_strict</li><li>Adding --runxfail when transitioning from development to feature freeze</li><li>What to do about test failures</li><li>How all of this might help with team communication</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, xfail, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>164: Debugging Python Test Failures with pytest</title>
      <itunes:episode>164</itunes:episode>
      <podcast:episode>164</podcast:episode>
      <itunes:title>164: Debugging Python Test Failures with pytest</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b4cf5d26-013a-4233-a219-f658d5c2fbc4</guid>
      <link>https://pythontest.com/testandcode/episodes/164-debugging-python-test-failures-with-pytest</link>
      <description>
        <![CDATA[<p>An overview of the pytest flags that help with debugging.<br> From Chapter 13, Debugging Test Failures, of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.</p><p>pytest includes quite a few command-line flags that are useful for debugging. </p><p>We talk about thes flags in this episode.</p><p>Flags for selecting which tests to run, in which order, and when to stop:</p><ul><li>-lf / --last-failed: Runs just the tests that failed last.</li><li>-ff / --failed-failed: Runs all the tests, starting with the last failed.</li><li>-x / --exitfirst: Stops the tests session afterEd: after?Author: yep the first failure.</li><li>--maxfail=num: Stops the tests after num failures.</li><li>-nf / --new-first: Runs all the tests, ordered by file modification time.</li><li>--sw / --stepwise: Stops the tests at the first failure. Starts the tests at the last failure next time.</li><li>--sw-skip / --stepwise-skip: Same as --sw, but skips the first failure.</li></ul><p>Flags to control pytest output:</p><ul><li>-v / --verbose Displays all the test names, passing or failing.</li><li>--tb=[auto/long/short/line/native/no] Controls the traceback style.</li><li>-l / --showlocals Displays local variables alongside the stacktrace.</li></ul><p>Flags to start a command-line debugger:</p><ul><li>--pdb Starts an interactive debugging session at the point of failure.</li><li>--trace Starts the pdb source-code debugger immediately when running each test.</li><li>--pdbcls Uses alternatives to pdb, such as IPython’s debugger with –-pdbcls=IPython.terminal.debugger:TerminalPdb.</li></ul><p>This list is also found in Chapter 13 of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.<br> The chapter is "Debugging Test Failures" and covers way more than just debug flags, while walking through debugging 2 test failures.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — The fastest way to get up to speed on pytest.</li><li><a href="https://docs.pytest.org/en/6.2.x/reference.html#command-line-flags">all pytest flags in pytest 6.2.x</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>An overview of the pytest flags that help with debugging.<br> From Chapter 13, Debugging Test Failures, of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.</p><p>pytest includes quite a few command-line flags that are useful for debugging. </p><p>We talk about thes flags in this episode.</p><p>Flags for selecting which tests to run, in which order, and when to stop:</p><ul><li>-lf / --last-failed: Runs just the tests that failed last.</li><li>-ff / --failed-failed: Runs all the tests, starting with the last failed.</li><li>-x / --exitfirst: Stops the tests session afterEd: after?Author: yep the first failure.</li><li>--maxfail=num: Stops the tests after num failures.</li><li>-nf / --new-first: Runs all the tests, ordered by file modification time.</li><li>--sw / --stepwise: Stops the tests at the first failure. Starts the tests at the last failure next time.</li><li>--sw-skip / --stepwise-skip: Same as --sw, but skips the first failure.</li></ul><p>Flags to control pytest output:</p><ul><li>-v / --verbose Displays all the test names, passing or failing.</li><li>--tb=[auto/long/short/line/native/no] Controls the traceback style.</li><li>-l / --showlocals Displays local variables alongside the stacktrace.</li></ul><p>Flags to start a command-line debugger:</p><ul><li>--pdb Starts an interactive debugging session at the point of failure.</li><li>--trace Starts the pdb source-code debugger immediately when running each test.</li><li>--pdbcls Uses alternatives to pdb, such as IPython’s debugger with –-pdbcls=IPython.terminal.debugger:TerminalPdb.</li></ul><p>This list is also found in Chapter 13 of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.<br> The chapter is "Debugging Test Failures" and covers way more than just debug flags, while walking through debugging 2 test failures.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — The fastest way to get up to speed on pytest.</li><li><a href="https://docs.pytest.org/en/6.2.x/reference.html#command-line-flags">all pytest flags in pytest 6.2.x</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 14 Sep 2021 09:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/164.mp3" length="9072512" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>754</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>An overview of the pytest flags that help with debugging.<br> From Chapter 13, Debugging Test Failures, of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.</p><p>pytest includes quite a few command-line flags that are useful for debugging. </p><p>We talk about thes flags in this episode.</p><p>Flags for selecting which tests to run, in which order, and when to stop:</p><ul><li>-lf / --last-failed: Runs just the tests that failed last.</li><li>-ff / --failed-failed: Runs all the tests, starting with the last failed.</li><li>-x / --exitfirst: Stops the tests session afterEd: after?Author: yep the first failure.</li><li>--maxfail=num: Stops the tests after num failures.</li><li>-nf / --new-first: Runs all the tests, ordered by file modification time.</li><li>--sw / --stepwise: Stops the tests at the first failure. Starts the tests at the last failure next time.</li><li>--sw-skip / --stepwise-skip: Same as --sw, but skips the first failure.</li></ul><p>Flags to control pytest output:</p><ul><li>-v / --verbose Displays all the test names, passing or failing.</li><li>--tb=[auto/long/short/line/native/no] Controls the traceback style.</li><li>-l / --showlocals Displays local variables alongside the stacktrace.</li></ul><p>Flags to start a command-line debugger:</p><ul><li>--pdb Starts an interactive debugging session at the point of failure.</li><li>--trace Starts the pdb source-code debugger immediately when running each test.</li><li>--pdbcls Uses alternatives to pdb, such as IPython’s debugger with –-pdbcls=IPython.terminal.debugger:TerminalPdb.</li></ul><p>This list is also found in Chapter 13 of <a href="https://pythontest.com/pytest-book/">Python Testing with pytest, 2nd edition</a>.<br> The chapter is "Debugging Test Failures" and covers way more than just debug flags, while walking through debugging 2 test failures.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/pytest-book/">Python Testing with pytest</a> — The fastest way to get up to speed on pytest.</li><li><a href="https://docs.pytest.org/en/6.2.x/reference.html#command-line-flags">all pytest flags in pytest 6.2.x</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, debugging, software testing, Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>163: pip install ./local_directory - Stéphane Bidoul</title>
      <itunes:episode>163</itunes:episode>
      <podcast:episode>163</podcast:episode>
      <itunes:title>163: pip install ./local_directory - Stéphane Bidoul</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6b8967d5-39f1-4f9f-9390-9f69bf9aa2c5</guid>
      <link>https://pythontest.com/testandcode/episodes/163-pip-install-local_directory-stephane-bidoul</link>
      <description>
        <![CDATA[<p>pip : "pip installs packages" or maybe "Package Installer for Python"<br> pip is an invaluable tool when developing with Python.<br> A lot of people know pip as a way to install third party packages from pypi.org<br> You can also use pip to install from other indexes (or is it indices?)</p><p>You can also use pip to install a package in a local directory.<br> That's the part I want to jump in and explore with Stéphane Bidoul.<br> The way pip installs from a local directory is about to change, and the story is fascinating.</p><p><br></p><p>Special Guest: Stéphane Bidoul.</p><p><br></p><p>Links:</p><ul><li><a href="https://odoo-community.org/">The Odoo Community Association</a></li><li><a href="https://www.python.org/dev/peps/pep-0610/">PEP 610 -- Recording the Direct URL Origin of installed distributions | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0660/">PEP 660 -- Editable installs for pyproject.toml based builds (wheel based) | Python.org</a> — Bidoul</li><li><a href="https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-index">pip install --no-index --find-links </a></li><li><a href="https://github.com/pypa/pip/issues/7555">Solving issues related to out-of-tree builds · Issue #7555 · pypa/pip</a></li><li><a href="https://pip.pypa.io/en/stable/cli/pip_list/#cmdoption-format">pip list json format</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pip : "pip installs packages" or maybe "Package Installer for Python"<br> pip is an invaluable tool when developing with Python.<br> A lot of people know pip as a way to install third party packages from pypi.org<br> You can also use pip to install from other indexes (or is it indices?)</p><p>You can also use pip to install a package in a local directory.<br> That's the part I want to jump in and explore with Stéphane Bidoul.<br> The way pip installs from a local directory is about to change, and the story is fascinating.</p><p><br></p><p>Special Guest: Stéphane Bidoul.</p><p><br></p><p>Links:</p><ul><li><a href="https://odoo-community.org/">The Odoo Community Association</a></li><li><a href="https://www.python.org/dev/peps/pep-0610/">PEP 610 -- Recording the Direct URL Origin of installed distributions | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0660/">PEP 660 -- Editable installs for pyproject.toml based builds (wheel based) | Python.org</a> — Bidoul</li><li><a href="https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-index">pip install --no-index --find-links </a></li><li><a href="https://github.com/pypa/pip/issues/7555">Solving issues related to out-of-tree builds · Issue #7555 · pypa/pip</a></li><li><a href="https://pip.pypa.io/en/stable/cli/pip_list/#cmdoption-format">pip list json format</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 20 Aug 2021 12:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/163.mp3" length="20787809" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1730</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pip : "pip installs packages" or maybe "Package Installer for Python"<br> pip is an invaluable tool when developing with Python.<br> A lot of people know pip as a way to install third party packages from pypi.org<br> You can also use pip to install from other indexes (or is it indices?)</p><p>You can also use pip to install a package in a local directory.<br> That's the part I want to jump in and explore with Stéphane Bidoul.<br> The way pip installs from a local directory is about to change, and the story is fascinating.</p><p><br></p><p>Special Guest: Stéphane Bidoul.</p><p><br></p><p>Links:</p><ul><li><a href="https://odoo-community.org/">The Odoo Community Association</a></li><li><a href="https://www.python.org/dev/peps/pep-0610/">PEP 610 -- Recording the Direct URL Origin of installed distributions | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0660/">PEP 660 -- Editable installs for pyproject.toml based builds (wheel based) | Python.org</a> — Bidoul</li><li><a href="https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-index">pip install --no-index --find-links </a></li><li><a href="https://github.com/pypa/pip/issues/7555">Solving issues related to out-of-tree builds · Issue #7555 · pypa/pip</a></li><li><a href="https://pip.pypa.io/en/stable/cli/pip_list/#cmdoption-format">pip list json format</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, pip, packaging</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>162: Flavors of TDD</title>
      <itunes:episode>162</itunes:episode>
      <podcast:episode>162</podcast:episode>
      <itunes:title>162: Flavors of TDD</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">123218ed-7197-4b42-ac01-dd1caaa81ae3</guid>
      <link>https://pythontest.com/testandcode/episodes/162-flavors-of-tdd</link>
      <description>
        <![CDATA[<p>What flavor of TDD do you practice? </p><p>In this episode we talk about:</p><ul><li>Classical vs Mockist TDD</li><li>Detroit vs London (I actually refer to it in the episode as Chicago instead of Detroit. Oh well.)</li><li>Static vs Behavior</li><li>Inside Out vs Outside In</li><li>Double Loop TDD</li><li>BDD</li><li>FDD</li><li>Tracer Bullets</li><li>Rules of TDD</li><li>Team Structure</li><li>Lean TDD </li></ul><p>This is definitely an episode I'd like feedback on. Reach out to me for further questions or if I missed some crucial variant of TDD that you know and love.</p><p><br></p><p>Links:</p><ul><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://www.thoughtworks.com/en-us/insights/blog/mockists-are-dead-long-live-classicists?utm_source=pocket_mylist">Mockists Are Dead. Long Live Classicists.</a></li><li><a href="http://coding-is-like-cooking.info/2013/04/outside-in-development-with-double-loop-tdd/">Double Loop TDD</a></li><li><a href="https://en.wikipedia.org/wiki/Behavior-driven_development">BDD: Behavior-driven development</a></li><li><a href="https://en.wikipedia.org/wiki/Feature-driven_development">FDD: Feature-driven development</a></li><li><a href="https://pythontest.com/agile/is-tdd-dead/">My reaction to “Is TDD Dead?” - pythontest.com</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://essenceoftesting.blogspot.com/2018/03/test-driven-development-tdd-and-its-variations.html?utm_source=pocket_mylist">Humorous list of TDD variants</a> — BDD = Buzzword Driven Development, CDD = Calendar Driven Development, etc</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What flavor of TDD do you practice? </p><p>In this episode we talk about:</p><ul><li>Classical vs Mockist TDD</li><li>Detroit vs London (I actually refer to it in the episode as Chicago instead of Detroit. Oh well.)</li><li>Static vs Behavior</li><li>Inside Out vs Outside In</li><li>Double Loop TDD</li><li>BDD</li><li>FDD</li><li>Tracer Bullets</li><li>Rules of TDD</li><li>Team Structure</li><li>Lean TDD </li></ul><p>This is definitely an episode I'd like feedback on. Reach out to me for further questions or if I missed some crucial variant of TDD that you know and love.</p><p><br></p><p>Links:</p><ul><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://www.thoughtworks.com/en-us/insights/blog/mockists-are-dead-long-live-classicists?utm_source=pocket_mylist">Mockists Are Dead. Long Live Classicists.</a></li><li><a href="http://coding-is-like-cooking.info/2013/04/outside-in-development-with-double-loop-tdd/">Double Loop TDD</a></li><li><a href="https://en.wikipedia.org/wiki/Behavior-driven_development">BDD: Behavior-driven development</a></li><li><a href="https://en.wikipedia.org/wiki/Feature-driven_development">FDD: Feature-driven development</a></li><li><a href="https://pythontest.com/agile/is-tdd-dead/">My reaction to “Is TDD Dead?” - pythontest.com</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://essenceoftesting.blogspot.com/2018/03/test-driven-development-tdd-and-its-variations.html?utm_source=pocket_mylist">Humorous list of TDD variants</a> — BDD = Buzzword Driven Development, CDD = Calendar Driven Development, etc</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 03 Aug 2021 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/162.mp3" length="15849693" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1319</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What flavor of TDD do you practice? </p><p>In this episode we talk about:</p><ul><li>Classical vs Mockist TDD</li><li>Detroit vs London (I actually refer to it in the episode as Chicago instead of Detroit. Oh well.)</li><li>Static vs Behavior</li><li>Inside Out vs Outside In</li><li>Double Loop TDD</li><li>BDD</li><li>FDD</li><li>Tracer Bullets</li><li>Rules of TDD</li><li>Team Structure</li><li>Lean TDD </li></ul><p>This is definitely an episode I'd like feedback on. Reach out to me for further questions or if I missed some crucial variant of TDD that you know and love.</p><p><br></p><p>Links:</p><ul><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://www.thoughtworks.com/en-us/insights/blog/mockists-are-dead-long-live-classicists?utm_source=pocket_mylist">Mockists Are Dead. Long Live Classicists.</a></li><li><a href="http://coding-is-like-cooking.info/2013/04/outside-in-development-with-double-loop-tdd/">Double Loop TDD</a></li><li><a href="https://en.wikipedia.org/wiki/Behavior-driven_development">BDD: Behavior-driven development</a></li><li><a href="https://en.wikipedia.org/wiki/Feature-driven_development">FDD: Feature-driven development</a></li><li><a href="https://pythontest.com/agile/is-tdd-dead/">My reaction to “Is TDD Dead?” - pythontest.com</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://essenceoftesting.blogspot.com/2018/03/test-driven-development-tdd-and-its-variations.html?utm_source=pocket_mylist">Humorous list of TDD variants</a> — BDD = Buzzword Driven Development, CDD = Calendar Driven Development, etc</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>161: Waste in Software Development</title>
      <itunes:episode>161</itunes:episode>
      <podcast:episode>161</podcast:episode>
      <itunes:title>161: Waste in Software Development</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">51251116-8aba-482c-9d65-bc641c66b7a8</guid>
      <link>https://pythontest.com/testandcode/episodes/161-waste-in-software-development</link>
      <description>
        <![CDATA[<p>Software development processes create value, and have waste, in the Lean sense of the word waste.<br> Lean manufacturing and lean software development changed the way we look at value and waste.<br> This episode looks at lean definitions of waste, so we can see it clearly when we encounter it.</p><p>I'm going to use the term waste and value in future episodes. I'm using waste in a Lean sense, so we can look at software processes critically, see the value chain, and try to reduce waste.</p><p>Lean manufacturing and lean software development caused people to talk about and examine waste and value, even in fields where we didn't really think about waste that much to begin with.</p><p>Software is just ones and zeros. Is there waste? <br> When I delete a file, nothing goes into the landfill.</p><p>The mistake I'm making here is confusing the common English definition of waste when what we're talking about is the Lean definition of waste.</p><p>This episode tries to clear up the confusion.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Big_Design_Up_Front">Big Design Up Front</a></li><li><a href="https://wiki.c2.com/?LightweightMethodologies">Lightweight Methodologies</a></li><li><a href="https://agilemanifesto.org/">Manifesto for Agile Software Development</a></li><li><a href="https://en.wikipedia.org/wiki/Extreme_programming">Extreme programming</a></li><li><a href="https://martinfowler.com/articles/newMethodology.html">The New Methodology</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment">Test Driven Development</a></li><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer</a></li><li><a href="https://en.wikipedia.org/wiki/Six_Sigma">Six Sigma</a></li><li><a href="https://en.wikipedia.org/wiki/DMAIC">DMAIC</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development#Eliminate_waste">Lean software development</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_manufacturing">Lean manufacturing</a></li><li><a href="https://en.wikipedia.org/wiki/The_Toyota_Way">The Toyota Way</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_Six_Sigma">Lean Six Sigma</a></li><li><a href="https://www.merriam-webster.com/dictionary/waste">Definition of Waste by Merriam-Webster</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Software development processes create value, and have waste, in the Lean sense of the word waste.<br> Lean manufacturing and lean software development changed the way we look at value and waste.<br> This episode looks at lean definitions of waste, so we can see it clearly when we encounter it.</p><p>I'm going to use the term waste and value in future episodes. I'm using waste in a Lean sense, so we can look at software processes critically, see the value chain, and try to reduce waste.</p><p>Lean manufacturing and lean software development caused people to talk about and examine waste and value, even in fields where we didn't really think about waste that much to begin with.</p><p>Software is just ones and zeros. Is there waste? <br> When I delete a file, nothing goes into the landfill.</p><p>The mistake I'm making here is confusing the common English definition of waste when what we're talking about is the Lean definition of waste.</p><p>This episode tries to clear up the confusion.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Big_Design_Up_Front">Big Design Up Front</a></li><li><a href="https://wiki.c2.com/?LightweightMethodologies">Lightweight Methodologies</a></li><li><a href="https://agilemanifesto.org/">Manifesto for Agile Software Development</a></li><li><a href="https://en.wikipedia.org/wiki/Extreme_programming">Extreme programming</a></li><li><a href="https://martinfowler.com/articles/newMethodology.html">The New Methodology</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment">Test Driven Development</a></li><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer</a></li><li><a href="https://en.wikipedia.org/wiki/Six_Sigma">Six Sigma</a></li><li><a href="https://en.wikipedia.org/wiki/DMAIC">DMAIC</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development#Eliminate_waste">Lean software development</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_manufacturing">Lean manufacturing</a></li><li><a href="https://en.wikipedia.org/wiki/The_Toyota_Way">The Toyota Way</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_Six_Sigma">Lean Six Sigma</a></li><li><a href="https://www.merriam-webster.com/dictionary/waste">Definition of Waste by Merriam-Webster</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Jul 2021 08:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/161.mp3" length="12989613" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1081</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Software development processes create value, and have waste, in the Lean sense of the word waste.<br> Lean manufacturing and lean software development changed the way we look at value and waste.<br> This episode looks at lean definitions of waste, so we can see it clearly when we encounter it.</p><p>I'm going to use the term waste and value in future episodes. I'm using waste in a Lean sense, so we can look at software processes critically, see the value chain, and try to reduce waste.</p><p>Lean manufacturing and lean software development caused people to talk about and examine waste and value, even in fields where we didn't really think about waste that much to begin with.</p><p>Software is just ones and zeros. Is there waste? <br> When I delete a file, nothing goes into the landfill.</p><p>The mistake I'm making here is confusing the common English definition of waste when what we're talking about is the Lean definition of waste.</p><p>This episode tries to clear up the confusion.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Big_Design_Up_Front">Big Design Up Front</a></li><li><a href="https://wiki.c2.com/?LightweightMethodologies">Lightweight Methodologies</a></li><li><a href="https://agilemanifesto.org/">Manifesto for Agile Software Development</a></li><li><a href="https://en.wikipedia.org/wiki/Extreme_programming">Extreme programming</a></li><li><a href="https://martinfowler.com/articles/newMethodology.html">The New Methodology</a></li><li><a href="https://pythontest.com/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment">Test Driven Development</a></li><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer</a></li><li><a href="https://en.wikipedia.org/wiki/Six_Sigma">Six Sigma</a></li><li><a href="https://en.wikipedia.org/wiki/DMAIC">DMAIC</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_software_development#Eliminate_waste">Lean software development</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_manufacturing">Lean manufacturing</a></li><li><a href="https://en.wikipedia.org/wiki/The_Toyota_Way">The Toyota Way</a></li><li><a href="https://en.wikipedia.org/wiki/Lean_Six_Sigma">Lean Six Sigma</a></li><li><a href="https://www.merriam-webster.com/dictionary/waste">Definition of Waste by Merriam-Webster</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>agile, lean, waste, value</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>160: DRY, WET, DAMP, AHA, and removing duplication from production code and test code</title>
      <itunes:episode>160</itunes:episode>
      <podcast:episode>160</podcast:episode>
      <itunes:title>160: DRY, WET, DAMP, AHA, and removing duplication from production code and test code</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d6891f15-7360-438f-b719-ae5861135e59</guid>
      <link>https://pythontest.com/testandcode/episodes/160-dry-wet-damp-aha-and-removing-duplication-from-production-code-and-test-code</link>
      <description>
        <![CDATA[<p>Should your code be DRY or DAMP or something completely different?<br> How about your test code? Do different rules apply?<br> Wait, what do all of these acronyms mean?</p><p>We'll get to all of these definitions, and then talk about how it applies to both production code and test code in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer, 20th Anniversary Edition</a></li><li><a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">Don't repeat yourself - Wikipedia</a></li><li><a href="https://www.youtube.com/watch?v=djV11Xbc914">a-ha - Take On Me</a></li><li><a href="https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)">Rule of three - Wikipedia</a></li><li><a href="https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests">What does “DAMP not DRY” mean when talking about unit tests? - Stack Overflow</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Should your code be DRY or DAMP or something completely different?<br> How about your test code? Do different rules apply?<br> Wait, what do all of these acronyms mean?</p><p>We'll get to all of these definitions, and then talk about how it applies to both production code and test code in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer, 20th Anniversary Edition</a></li><li><a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">Don't repeat yourself - Wikipedia</a></li><li><a href="https://www.youtube.com/watch?v=djV11Xbc914">a-ha - Take On Me</a></li><li><a href="https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)">Rule of three - Wikipedia</a></li><li><a href="https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests">What does “DAMP not DRY” mean when talking about unit tests? - Stack Overflow</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 08 Jul 2021 13:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/160.mp3" length="10158408" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>845</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Should your code be DRY or DAMP or something completely different?<br> How about your test code? Do different rules apply?<br> Wait, what do all of these acronyms mean?</p><p>We'll get to all of these definitions, and then talk about how it applies to both production code and test code in this episode. </p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/">The Pragmatic Programmer, 20th Anniversary Edition</a></li><li><a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">Don't repeat yourself - Wikipedia</a></li><li><a href="https://www.youtube.com/watch?v=djV11Xbc914">a-ha - Take On Me</a></li><li><a href="https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)">Rule of three - Wikipedia</a></li><li><a href="https://stackoverflow.com/questions/6453235/what-does-damp-not-dry-mean-when-talking-about-unit-tests">What does “DAMP not DRY” mean when talking about unit tests? - Stack Overflow</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>159: Python, pandas, and Twitter Analytics - Matt Harrison</title>
      <itunes:episode>159</itunes:episode>
      <podcast:episode>159</podcast:episode>
      <itunes:title>159: Python, pandas, and Twitter Analytics - Matt Harrison</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f01eaaaf-deee-437d-a3b4-e74efb17b7de</guid>
      <link>https://pythontest.com/testandcode/episodes/159-python-pandas-and-twitter-analytics-matt-harrison</link>
      <description>
        <![CDATA[<p>When learning data science and machine learning techniques, you need to work on a data set.<br> Matt Harrison had a great idea: Why not use your own Twitter analytics data?<br> So, he did that with his own data, and shares what he learned in this episode, including some of his secrets to gaining followers.</p><p>In this episode we talk about:</p><ul><li>Looking at your own Twitter analytics data.</li><li>Using Python, pandas, Jupyter for data cleaning and exploratory analysis</li><li>Data visualization</li><li>Machine learning, principal component analysis, clustering</li><li>Model drift and re-running analysis</li><li>What kind of tweets perform well</li><li>And much more</li></ul><p>Links:</p><ul><li><a href="https://store.metasnake.com/applied-pandas-twitter-analytics">Applied Pandas: Twitter Analytics</a> — the course</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>When learning data science and machine learning techniques, you need to work on a data set.<br> Matt Harrison had a great idea: Why not use your own Twitter analytics data?<br> So, he did that with his own data, and shares what he learned in this episode, including some of his secrets to gaining followers.</p><p>In this episode we talk about:</p><ul><li>Looking at your own Twitter analytics data.</li><li>Using Python, pandas, Jupyter for data cleaning and exploratory analysis</li><li>Data visualization</li><li>Machine learning, principal component analysis, clustering</li><li>Model drift and re-running analysis</li><li>What kind of tweets perform well</li><li>And much more</li></ul><p>Links:</p><ul><li><a href="https://store.metasnake.com/applied-pandas-twitter-analytics">Applied Pandas: Twitter Analytics</a> — the course</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 02 Jul 2021 06:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/159.mp3" length="33833157" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2818</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>When learning data science and machine learning techniques, you need to work on a data set.<br> Matt Harrison had a great idea: Why not use your own Twitter analytics data?<br> So, he did that with his own data, and shares what he learned in this episode, including some of his secrets to gaining followers.</p><p>In this episode we talk about:</p><ul><li>Looking at your own Twitter analytics data.</li><li>Using Python, pandas, Jupyter for data cleaning and exploratory analysis</li><li>Data visualization</li><li>Machine learning, principal component analysis, clustering</li><li>Model drift and re-running analysis</li><li>What kind of tweets perform well</li><li>And much more</li></ul><p>Links:</p><ul><li><a href="https://store.metasnake.com/applied-pandas-twitter-analytics">Applied Pandas: Twitter Analytics</a> — the course</li></ul><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Twitter analytics, Python, pandas, Jupyter, data analytics</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>158: TDD in Swift - Gio Lodi</title>
      <itunes:episode>158</itunes:episode>
      <podcast:episode>158</podcast:episode>
      <itunes:title>158: TDD in Swift - Gio Lodi</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2e32bc16-8193-4fb0-9208-51627d52b53a</guid>
      <link>https://pythontest.com/testandcode/episodes/158-tdd-in-swift-gio</link>
      <description>
        <![CDATA[<p>Iterative processes that include writing test code and production code together, such as TDD, help make coding fun. </p><p>All of us that care about developing quality code with the help of testing can learn from each other, regardless of programming language.</p><p>Today we step outside our normal Python comfort zone and talk with Gio about TDD in Swift.</p><p>Gio Lodi, author of TDD in Swift, joins the show to discuss Test Driven Development, software workflows, bottom up vs top down, rapid feedback, developer vs customer facing tests, and more.</p><p><br></p><p>Links:</p><ul><li><a href="https://tddinswift.com/">TDD in Swift with SwiftUI and Combine</a></li><li><a href="https://mokacoding.com/">mokacoding - Gio's blog</a></li><li><a href="https://developer.apple.com/documentation/xctest">XCTest</a></li><li><a href="https://kentbeck.substack.com/">Software Design: Tidy First? - Kent Beck on Substack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Iterative processes that include writing test code and production code together, such as TDD, help make coding fun. </p><p>All of us that care about developing quality code with the help of testing can learn from each other, regardless of programming language.</p><p>Today we step outside our normal Python comfort zone and talk with Gio about TDD in Swift.</p><p>Gio Lodi, author of TDD in Swift, joins the show to discuss Test Driven Development, software workflows, bottom up vs top down, rapid feedback, developer vs customer facing tests, and more.</p><p><br></p><p>Links:</p><ul><li><a href="https://tddinswift.com/">TDD in Swift with SwiftUI and Combine</a></li><li><a href="https://mokacoding.com/">mokacoding - Gio's blog</a></li><li><a href="https://developer.apple.com/documentation/xctest">XCTest</a></li><li><a href="https://kentbeck.substack.com/">Software Design: Tidy First? - Kent Beck on Substack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 18 Jun 2021 15:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/158.mp3" length="30839494" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2568</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Iterative processes that include writing test code and production code together, such as TDD, help make coding fun. </p><p>All of us that care about developing quality code with the help of testing can learn from each other, regardless of programming language.</p><p>Today we step outside our normal Python comfort zone and talk with Gio about TDD in Swift.</p><p>Gio Lodi, author of TDD in Swift, joins the show to discuss Test Driven Development, software workflows, bottom up vs top down, rapid feedback, developer vs customer facing tests, and more.</p><p><br></p><p>Links:</p><ul><li><a href="https://tddinswift.com/">TDD in Swift with SwiftUI and Combine</a></li><li><a href="https://mokacoding.com/">mokacoding - Gio's blog</a></li><li><a href="https://developer.apple.com/documentation/xctest">XCTest</a></li><li><a href="https://kentbeck.substack.com/">Software Design: Tidy First? - Kent Beck on Substack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>TDD, Swift, Software Testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://giolodi.com">Gio Lodi</podcast:person>
    </item>
    <item>
      <title>157: pre-commit - Anthony Sottile</title>
      <itunes:episode>157</itunes:episode>
      <podcast:episode>157</podcast:episode>
      <itunes:title>157: pre-commit - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">33396303-ce6a-4565-840e-a0ee41fed06f</guid>
      <link>https://pythontest.com/testandcode/episodes/157-pre-commit-anthony-sottile</link>
      <description>
        <![CDATA[<p>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.</p><p>Anthony Sottile discusses pre-commit, for using locally by developers, and pre-commit.ci, which can run actions during merge requests.</p><p>"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." - <a href="https://pre-commit.com/">pre-commit.com</a></p><p>"Developers spend a fair chunk of time during their development flow fixing relatively trivial problems in their code. pre-commit.ci both enforces that these issues are discovered, which is opt in for each developer workflow via pre-commit, but also fixes the issues automatically, letting developers focus their time on more valuable problems." - A user of <a href="https://pre-commit.ci/">pre-commit.ci</a></p><p><br></p><p>Links:</p><ul><li><a href="https://pre-commit.com/">pre-commit</a></li><li><a href="https://pre-commit.com/hooks.html">pre-commit supported hooks</a></li><li><a href="https://pre-commit.ci/">pre-commit.ci</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Anthony Sottile discusses pre-commit, for using locally by developers, and pre-commit.ci, which can run actions during merge requests.</p><p>"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." - <a href="https://pre-commit.com/">pre-commit.com</a></p><p>"Developers spend a fair chunk of time during their development flow fixing relatively trivial problems in their code. pre-commit.ci both enforces that these issues are discovered, which is opt in for each developer workflow via pre-commit, but also fixes the issues automatically, letting developers focus their time on more valuable problems." - A user of <a href="https://pre-commit.ci/">pre-commit.ci</a></p><p><br></p><p>Links:</p><ul><li><a href="https://pre-commit.com/">pre-commit</a></li><li><a href="https://pre-commit.com/hooks.html">pre-commit supported hooks</a></li><li><a href="https://pre-commit.ci/">pre-commit.ci</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 11 Jun 2021 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/157.mp3" length="28982193" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2413</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Anthony Sottile discusses pre-commit, for using locally by developers, and pre-commit.ci, which can run actions during merge requests.</p><p>"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." - <a href="https://pre-commit.com/">pre-commit.com</a></p><p>"Developers spend a fair chunk of time during their development flow fixing relatively trivial problems in their code. pre-commit.ci both enforces that these issues are discovered, which is opt in for each developer workflow via pre-commit, but also fixes the issues automatically, letting developers focus their time on more valuable problems." - A user of <a href="https://pre-commit.ci/">pre-commit.ci</a></p><p><br></p><p>Links:</p><ul><li><a href="https://pre-commit.com/">pre-commit</a></li><li><a href="https://pre-commit.com/hooks.html">pre-commit supported hooks</a></li><li><a href="https://pre-commit.ci/">pre-commit.ci</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>linters, code formatters, CI</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://twitch.tv/anthonywritescode">Anthony Sottile</podcast:person>
    </item>
    <item>
      <title>156: Flake8: Python linting framework with Pyflakes, pycodestyle, McCabe, and more - Anthony Sottile</title>
      <itunes:episode>156</itunes:episode>
      <podcast:episode>156</podcast:episode>
      <itunes:title>156: Flake8: Python linting framework with Pyflakes, pycodestyle, McCabe, and more - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2ed409d6-c5c4-40cd-91fe-6e231202b12d</guid>
      <link>https://pythontest.com/testandcode/episodes/156-flake8-python-linting-framework-with-pyflakes-pycodestyle-mccabe-and-more-anthony-sottile</link>
      <description>
        <![CDATA[<p>Flake8 is a command-line tool for linting Python projects. <br> By default, it includes lint checks provided Pyflakes, pycodestyle, and McCabe<br> It's also a platform, and allows plugins to extend the checks.<br> Flake8 will run third-party extensions if they are found and installed.</p><p>But what does all of that mean?</p><p>Anthony Sottile is a maintainer of flake8 and has kindly offered to explain it to us.</p><p><br></p><p>Links:</p><ul><li><a href="https://flake8.pycqa.org/en/latest/">Flake8: Your Tool For Style Guide Enforcement</a></li><li><a href="https://pypi.org/project/pyflakes/">pyflakes</a></li><li><a href="https://pypi.org/project/pycodestyle/">pycodestyle</a></li><li><a href="https://github.com/PyCQA/mccabe">mccabe</a></li><li><a href="https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py">pyflakes/messages.py</a></li><li><a href="https://flake8.pycqa.org/en/latest/user/error-codes.html">flake8 Error / Violation Codes</a></li><li><a href="https://pypi.org/project/wemake-python-styleguide/">wemake-python-styleguide</a></li><li><a href="https://github.com/asottile/flake8-typing-imports">flake8-typing-imports</a></li><li><a href="https://tox.readthedocs.io/en/latest/">tox automation project</a></li><li><a href="https://nox.thea.codes/en/stable/">Nox</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Flake8 is a command-line tool for linting Python projects. <br> By default, it includes lint checks provided Pyflakes, pycodestyle, and McCabe<br> It's also a platform, and allows plugins to extend the checks.<br> Flake8 will run third-party extensions if they are found and installed.</p><p>But what does all of that mean?</p><p>Anthony Sottile is a maintainer of flake8 and has kindly offered to explain it to us.</p><p><br></p><p>Links:</p><ul><li><a href="https://flake8.pycqa.org/en/latest/">Flake8: Your Tool For Style Guide Enforcement</a></li><li><a href="https://pypi.org/project/pyflakes/">pyflakes</a></li><li><a href="https://pypi.org/project/pycodestyle/">pycodestyle</a></li><li><a href="https://github.com/PyCQA/mccabe">mccabe</a></li><li><a href="https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py">pyflakes/messages.py</a></li><li><a href="https://flake8.pycqa.org/en/latest/user/error-codes.html">flake8 Error / Violation Codes</a></li><li><a href="https://pypi.org/project/wemake-python-styleguide/">wemake-python-styleguide</a></li><li><a href="https://github.com/asottile/flake8-typing-imports">flake8-typing-imports</a></li><li><a href="https://tox.readthedocs.io/en/latest/">tox automation project</a></li><li><a href="https://nox.thea.codes/en/stable/">Nox</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 03 Jun 2021 15:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/156.mp3" length="15334743" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1276</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Flake8 is a command-line tool for linting Python projects. <br> By default, it includes lint checks provided Pyflakes, pycodestyle, and McCabe<br> It's also a platform, and allows plugins to extend the checks.<br> Flake8 will run third-party extensions if they are found and installed.</p><p>But what does all of that mean?</p><p>Anthony Sottile is a maintainer of flake8 and has kindly offered to explain it to us.</p><p><br></p><p>Links:</p><ul><li><a href="https://flake8.pycqa.org/en/latest/">Flake8: Your Tool For Style Guide Enforcement</a></li><li><a href="https://pypi.org/project/pyflakes/">pyflakes</a></li><li><a href="https://pypi.org/project/pycodestyle/">pycodestyle</a></li><li><a href="https://github.com/PyCQA/mccabe">mccabe</a></li><li><a href="https://github.com/PyCQA/pyflakes/blob/master/pyflakes/messages.py">pyflakes/messages.py</a></li><li><a href="https://flake8.pycqa.org/en/latest/user/error-codes.html">flake8 Error / Violation Codes</a></li><li><a href="https://pypi.org/project/wemake-python-styleguide/">wemake-python-styleguide</a></li><li><a href="https://github.com/asottile/flake8-typing-imports">flake8-typing-imports</a></li><li><a href="https://tox.readthedocs.io/en/latest/">tox automation project</a></li><li><a href="https://nox.thea.codes/en/stable/">Nox</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, linting, flake8, pycodestyle, pyflakes, McCabe</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://twitch.tv/anthonywritescode">Anthony Sottile</podcast:person>
    </item>
    <item>
      <title>155: Four Questions to Ask Frequently During Software Projects - Tim Ottinger</title>
      <itunes:episode>155</itunes:episode>
      <podcast:episode>155</podcast:episode>
      <itunes:title>155: Four Questions to Ask Frequently During Software Projects - Tim Ottinger</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">480cc1ed-a219-46d9-9a9f-82b27b638006</guid>
      <link>https://pythontest.com/testandcode/episodes/155-four-questions-to-ask-frequently-during-software-projects-tim-ottinger</link>
      <description>
        <![CDATA[<p>Tim Ottinger has four questions that work great in many situations, from doing homework, to cooking, to writing code, to entire software projects.</p><p>They are actually awesome questions to ask during a software project.</p><p>We discuss the questions, where they came from, and look at some uses in software.</p><p>The questions:</p><ol><li>What is it that needs to be done?</li><li>What do we need in order to do it?</li><li>Where can we get what we need?</li><li>How can we tell if we’re doing it right?</li></ol><p>Bonus question that can be swapped out for #1:</p><ol><li>What's the most important thing that it doesn't do yet?</li></ol><p>Links:</p><ul><li><a href="https://www.industriallogic.com/blog/the-four-questions/">The Four Questions</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Tim Ottinger has four questions that work great in many situations, from doing homework, to cooking, to writing code, to entire software projects.</p><p>They are actually awesome questions to ask during a software project.</p><p>We discuss the questions, where they came from, and look at some uses in software.</p><p>The questions:</p><ol><li>What is it that needs to be done?</li><li>What do we need in order to do it?</li><li>Where can we get what we need?</li><li>How can we tell if we’re doing it right?</li></ol><p>Bonus question that can be swapped out for #1:</p><ol><li>What's the most important thing that it doesn't do yet?</li></ol><p>Links:</p><ul><li><a href="https://www.industriallogic.com/blog/the-four-questions/">The Four Questions</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 28 May 2021 15:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/155.mp3" length="15148520" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1261</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Tim Ottinger has four questions that work great in many situations, from doing homework, to cooking, to writing code, to entire software projects.</p><p>They are actually awesome questions to ask during a software project.</p><p>We discuss the questions, where they came from, and look at some uses in software.</p><p>The questions:</p><ol><li>What is it that needs to be done?</li><li>What do we need in order to do it?</li><li>Where can we get what we need?</li><li>How can we tell if we’re doing it right?</li></ol><p>Bonus question that can be swapped out for #1:</p><ol><li>What's the most important thing that it doesn't do yet?</li></ol><p>Links:</p><ul><li><a href="https://www.industriallogic.com/blog/the-four-questions/">The Four Questions</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software development, strategy, planning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>154: Don't Mock your Database - Jeff Triplett</title>
      <itunes:episode>154</itunes:episode>
      <podcast:episode>154</podcast:episode>
      <itunes:title>154: Don't Mock your Database - Jeff Triplett</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">44a8bf63-4afd-4773-b871-7a0b95df0780</guid>
      <link>https://pythontest.com/testandcode/episodes/154-dont-mock-your-database-jeff-triplett</link>
      <description>
        <![CDATA[<p>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.</p><p>In this episode, we talk with Jeff about testing web applications, specifically Django apps, and of course talk about the downsides of database mocking.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/webology/status/1363898407388119049?s=20">"🤔 In ~12 years, I have never seen a case where mocking a database was a good idea. ..." </a></li><li><a href="https://django-news.com/">Django News</a></li><li><a href="http://docs.getmoto.org/en/latest/docs/getting_started.html">Moto</a></li><li><a href="https://pythontest.com/testandcode/103">Test &amp; Code 103: Django - Lacey Williams Henschel</a></li><li><a href="https://model-bakery.readthedocs.io/en/latest/">Model Bakery: Smart fixtures for better tests </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>In this episode, we talk with Jeff about testing web applications, specifically Django apps, and of course talk about the downsides of database mocking.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/webology/status/1363898407388119049?s=20">"🤔 In ~12 years, I have never seen a case where mocking a database was a good idea. ..." </a></li><li><a href="https://django-news.com/">Django News</a></li><li><a href="http://docs.getmoto.org/en/latest/docs/getting_started.html">Moto</a></li><li><a href="https://pythontest.com/testandcode/103">Test &amp; Code 103: Django - Lacey Williams Henschel</a></li><li><a href="https://model-bakery.readthedocs.io/en/latest/">Model Bakery: Smart fixtures for better tests </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 21 May 2021 13:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/154.mp3" length="21545144" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1794</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>In this episode, we talk with Jeff about testing web applications, specifically Django apps, and of course talk about the downsides of database mocking.</p><p><br></p><p>Links:</p><ul><li><a href="https://twitter.com/webology/status/1363898407388119049?s=20">"🤔 In ~12 years, I have never seen a case where mocking a database was a good idea. ..." </a></li><li><a href="https://django-news.com/">Django News</a></li><li><a href="http://docs.getmoto.org/en/latest/docs/getting_started.html">Moto</a></li><li><a href="https://pythontest.com/testandcode/103">Test &amp; Code 103: Django - Lacey Williams Henschel</a></li><li><a href="https://model-bakery.readthedocs.io/en/latest/">Model Bakery: Smart fixtures for better tests </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Django, pytest, Python, software testing, mocking, databases</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://webology.dev">Jeff Triplett</podcast:person>
    </item>
    <item>
      <title>153: Playwright for Python: end to end testing of web apps - Ryan Howard</title>
      <itunes:episode>153</itunes:episode>
      <podcast:episode>153</podcast:episode>
      <itunes:title>153: Playwright for Python: end to end testing of web apps - Ryan Howard</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6a2f6452-d5a8-4fbc-bb68-d3931736eb88</guid>
      <link>https://pythontest.com/testandcode/episodes/153-playwright-for-python-end-to-end-testing-of-web-apps-ryan-howard</link>
      <description>
        <![CDATA[<p>Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin.</p><p><br></p><p>Links:</p><ul><li><a href="https://playwright.dev/python/">Playwright for Python</a></li><li><a href="https://playwright.dev/python/docs/why-playwright/">Why Playwright?</a></li><li><a href="https://github.com/microsoft/playwright-pytest">playwright-pytest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin.</p><p><br></p><p>Links:</p><ul><li><a href="https://playwright.dev/python/">Playwright for Python</a></li><li><a href="https://playwright.dev/python/docs/why-playwright/">Why Playwright?</a></li><li><a href="https://github.com/microsoft/playwright-pytest">playwright-pytest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 13 May 2021 22:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/153.mp3" length="22353608" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1861</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Playwright is an end to end automated testing framework for web apps with Python support and even a pytest plugin.</p><p><br></p><p>Links:</p><ul><li><a href="https://playwright.dev/python/">Playwright for Python</a></li><li><a href="https://playwright.dev/python/docs/why-playwright/">Why Playwright?</a></li><li><a href="https://github.com/microsoft/playwright-pytest">playwright-pytest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, end to end, web app</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>152: Python Packaging - Brett Cannon</title>
      <itunes:episode>152</itunes:episode>
      <podcast:episode>152</podcast:episode>
      <itunes:title>152: Python Packaging - Brett Cannon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4ba20940-0792-47af-bb2b-f9c8a771e235</guid>
      <link>https://pythontest.com/testandcode/episodes/152-python-packaging-brett-cannon</link>
      <description>
        <![CDATA[<p>I always learn a lot when I talk to Brett, and this episode is no exception.<br> We talk about the packaging workflow, tools, changes, pyproject.toml, flit, setuptools, and so much more.<br> I hope you learn as much as I did in this great discussion.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-srcpaths/">pytest-srcpaths</a></li><li><a href="https://packaging.python.org/">Python Packaging User Guide</a></li><li><a href="https://github.com/pypa/packaging">pypa/packaging: Core utilities for Python packages</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html#metadata-section">flit and requires-python</a></li><li><a href="https://docs.python.org/3/extending/index.html">Extending and Embedding the Python Interpreter — Python 3.9.2 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit</a></li><li><a href="https://setuptools.readthedocs.io/en/latest/build_meta.html">setuptools</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install">Flit editable installs with --symlink or --pth-file</a></li><li><a href="https://www.python.org/dev/peps/pep-0440/">PEP 440 -- Version Identification and Dependency Specification | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/flit_ini.html?highlight=requires-python#metadata-section">Specifying requires-python with flit</a></li><li><a href="https://wheel.readthedocs.io/en/stable/">wheel</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary">Universal 1 binary</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary#Universal_2">Universal 2 binary</a></li><li><a href="https://cython.org/">Cython: C-Extensions for Python</a></li><li><a href="https://cffi.readthedocs.io/en/latest/">CFFI</a></li><li><a href="https://github.com/pybind/pybind11">pybind11: Seamless operability between C++11 and Python</a></li><li><a href="https://conda.io/projects/conda/en/latest/index.html">Conda</a></li><li><a href="https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html">conda environments</a></li><li><a href="https://conda-forge.org/">conda-forge</a></li><li><a href="https://wiki.python.org/moin/VaultsOfParnassus">VaultsOfParnassus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I always learn a lot when I talk to Brett, and this episode is no exception.<br> We talk about the packaging workflow, tools, changes, pyproject.toml, flit, setuptools, and so much more.<br> I hope you learn as much as I did in this great discussion.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-srcpaths/">pytest-srcpaths</a></li><li><a href="https://packaging.python.org/">Python Packaging User Guide</a></li><li><a href="https://github.com/pypa/packaging">pypa/packaging: Core utilities for Python packages</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html#metadata-section">flit and requires-python</a></li><li><a href="https://docs.python.org/3/extending/index.html">Extending and Embedding the Python Interpreter — Python 3.9.2 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit</a></li><li><a href="https://setuptools.readthedocs.io/en/latest/build_meta.html">setuptools</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install">Flit editable installs with --symlink or --pth-file</a></li><li><a href="https://www.python.org/dev/peps/pep-0440/">PEP 440 -- Version Identification and Dependency Specification | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/flit_ini.html?highlight=requires-python#metadata-section">Specifying requires-python with flit</a></li><li><a href="https://wheel.readthedocs.io/en/stable/">wheel</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary">Universal 1 binary</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary#Universal_2">Universal 2 binary</a></li><li><a href="https://cython.org/">Cython: C-Extensions for Python</a></li><li><a href="https://cffi.readthedocs.io/en/latest/">CFFI</a></li><li><a href="https://github.com/pybind/pybind11">pybind11: Seamless operability between C++11 and Python</a></li><li><a href="https://conda.io/projects/conda/en/latest/index.html">Conda</a></li><li><a href="https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html">conda environments</a></li><li><a href="https://conda-forge.org/">conda-forge</a></li><li><a href="https://wiki.python.org/moin/VaultsOfParnassus">VaultsOfParnassus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 06 May 2021 22:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/152.mp3" length="35295783" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2939</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I always learn a lot when I talk to Brett, and this episode is no exception.<br> We talk about the packaging workflow, tools, changes, pyproject.toml, flit, setuptools, and so much more.<br> I hope you learn as much as I did in this great discussion.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/pytest-srcpaths/">pytest-srcpaths</a></li><li><a href="https://packaging.python.org/">Python Packaging User Guide</a></li><li><a href="https://github.com/pypa/packaging">pypa/packaging: Core utilities for Python packages</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html#metadata-section">flit and requires-python</a></li><li><a href="https://docs.python.org/3/extending/index.html">Extending and Embedding the Python Interpreter — Python 3.9.2 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit</a></li><li><a href="https://setuptools.readthedocs.io/en/latest/build_meta.html">setuptools</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install">Flit editable installs with --symlink or --pth-file</a></li><li><a href="https://www.python.org/dev/peps/pep-0440/">PEP 440 -- Version Identification and Dependency Specification | Python.org</a></li><li><a href="https://flit.readthedocs.io/en/latest/flit_ini.html?highlight=requires-python#metadata-section">Specifying requires-python with flit</a></li><li><a href="https://wheel.readthedocs.io/en/stable/">wheel</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary">Universal 1 binary</a></li><li><a href="https://en.wikipedia.org/wiki/Universal_binary#Universal_2">Universal 2 binary</a></li><li><a href="https://cython.org/">Cython: C-Extensions for Python</a></li><li><a href="https://cffi.readthedocs.io/en/latest/">CFFI</a></li><li><a href="https://github.com/pybind/pybind11">pybind11: Seamless operability between C++11 and Python</a></li><li><a href="https://conda.io/projects/conda/en/latest/index.html">Conda</a></li><li><a href="https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html">conda environments</a></li><li><a href="https://conda-forge.org/">conda-forge</a></li><li><a href="https://wiki.python.org/moin/VaultsOfParnassus">VaultsOfParnassus</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://snarky.ca">Brett Cannon (@brettcannon@fosstodon.org)</podcast:person>
    </item>
    <item>
      <title>151: Python Adventure - Brandon Rhodes</title>
      <itunes:episode>151</itunes:episode>
      <podcast:episode>151</podcast:episode>
      <itunes:title>151: Python Adventure - Brandon Rhodes</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9aafaef7-e8ac-468b-a5b6-6e75f0cd367c</guid>
      <link>https://pythontest.com/testandcode/episodes/151-python-adventure-brandon-rhodes</link>
      <description>
        <![CDATA[<p>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.</p>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.

&gt;&gt;&gt; east

A bit later...

IT IS NOW PITCH DARK.  IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT.

&gt;&gt;&gt; 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 ...
<br><p>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 treasure and gold, ...</p><p>In this episode, we talk with Brandon Rhodes about this marvelous game.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/adventure/">adventure · PyPI</a></li><li><a href="https://github.com/brandon-rhodes/python-adventure">python-adventure: Original Colossal Caves adventure game, but in Python 3</a></li><li><a href="https://rhodesmill.org/brandon/">Brandon Rhodes Personal Site</a></li><li><a href="https://python-patterns.guide/">Python Design Patterns</a></li><li><a href="https://github.com/brandon-rhodes/pyephem">pyephem: Scientific-grade astronomy routines for Python</a></li><li><a href="https://github.com/skyfielders/python-skyfield">python-skyfield: Elegant astronomy for Python</a></li><li><a href="https://rhodesmill.org/brandon/2012/adventure/">Adventure in Python 3 - announcement blog post from 2012</a></li><li><a href="https://en.wikipedia.org/wiki/NetHack">NetHack</a></li><li><a href="https://en.wikipedia.org/wiki/FTL:_Faster_Than_Light">FTL: Faster Than Light</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p>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.

&gt;&gt;&gt; east

A bit later...

IT IS NOW PITCH DARK.  IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT.

&gt;&gt;&gt; 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 ...
<br><p>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 treasure and gold, ...</p><p>In this episode, we talk with Brandon Rhodes about this marvelous game.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/adventure/">adventure · PyPI</a></li><li><a href="https://github.com/brandon-rhodes/python-adventure">python-adventure: Original Colossal Caves adventure game, but in Python 3</a></li><li><a href="https://rhodesmill.org/brandon/">Brandon Rhodes Personal Site</a></li><li><a href="https://python-patterns.guide/">Python Design Patterns</a></li><li><a href="https://github.com/brandon-rhodes/pyephem">pyephem: Scientific-grade astronomy routines for Python</a></li><li><a href="https://github.com/skyfielders/python-skyfield">python-skyfield: Elegant astronomy for Python</a></li><li><a href="https://rhodesmill.org/brandon/2012/adventure/">Adventure in Python 3 - announcement blog post from 2012</a></li><li><a href="https://en.wikipedia.org/wiki/NetHack">NetHack</a></li><li><a href="https://en.wikipedia.org/wiki/FTL:_Faster_Than_Light">FTL: Faster Than Light</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 27 Apr 2021 19:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/151.mp3" length="40140768" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3343</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p>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.

&gt;&gt;&gt; east

A bit later...

IT IS NOW PITCH DARK.  IF YOU PROCEED YOU WILL LIKELY FALL INTO A PIT.

&gt;&gt;&gt; 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 ...
<br><p>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 treasure and gold, ...</p><p>In this episode, we talk with Brandon Rhodes about this marvelous game.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/adventure/">adventure · PyPI</a></li><li><a href="https://github.com/brandon-rhodes/python-adventure">python-adventure: Original Colossal Caves adventure game, but in Python 3</a></li><li><a href="https://rhodesmill.org/brandon/">Brandon Rhodes Personal Site</a></li><li><a href="https://python-patterns.guide/">Python Design Patterns</a></li><li><a href="https://github.com/brandon-rhodes/pyephem">pyephem: Scientific-grade astronomy routines for Python</a></li><li><a href="https://github.com/skyfielders/python-skyfield">python-skyfield: Elegant astronomy for Python</a></li><li><a href="https://rhodesmill.org/brandon/2012/adventure/">Adventure in Python 3 - announcement blog post from 2012</a></li><li><a href="https://en.wikipedia.org/wiki/NetHack">NetHack</a></li><li><a href="https://en.wikipedia.org/wiki/FTL:_Faster_Than_Light">FTL: Faster Than Light</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees | Python.org</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, fortran, adventure, gaming</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://rhodesmill.org/brandon">Brandon Rhodes</podcast:person>
    </item>
    <item>
      <title>150: A Practical Testing Strategy</title>
      <itunes:episode>150</itunes:episode>
      <podcast:episode>150</podcast:episode>
      <itunes:title>150: A Practical Testing Strategy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d45dc60f-b77b-4b82-9ec2-80dbf2ec8cbd</guid>
      <link>https://pythontest.com/testandcode/episodes/150-a-practical-testing-strategy</link>
      <description>
        <![CDATA[<p>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.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 15 Apr 2021 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/150.mp3" length="7240583" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>602</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, testing strategy</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>149: I don't test my code, "crappy Python" is all I write - Corey Quinn</title>
      <itunes:episode>149</itunes:episode>
      <podcast:episode>149</podcast:episode>
      <itunes:title>149: I don't test my code, "crappy Python" is all I write - Corey Quinn</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4d5ef520-02a8-485c-a46c-f9ee6375c2f7</guid>
      <link>https://pythontest.com/testandcode/episodes/149-i-dont-test-my-code-crappy-python-is-all-i-write-corey-quinn</link>
      <description>
        <![CDATA[<p>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.</p><p>Reason for the interview. Rough summary of a twitter conversation:</p><ul><li>Corey: What podcasts should I try to get an invite onto?</li><li>ToonArmyCaptain: Python Bytes, Test &amp; Code, Talk Python</li><li>Corey: 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. <a href="https://twitter.com/QuinnyPig/status/1354093298890141697?s=20">link</a></li><li>So here we are. </li></ul><p>This diagram is referenced in the show, the <a href="https://files.fireside.fm/file/fireside-uploads/images/b/bc7f1faf-8aad-4135-bb12-83a8af679756/FXJsYzOQ.jpg">Last Week In AWS Newsletter Production Pipeline</a>.</p><p><br></p><p>Special Guest: Corey Quinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.lastweekinaws.com/">Last Week in AWS</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Reason for the interview. Rough summary of a twitter conversation:</p><ul><li>Corey: What podcasts should I try to get an invite onto?</li><li>ToonArmyCaptain: Python Bytes, Test &amp; Code, Talk Python</li><li>Corey: 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. <a href="https://twitter.com/QuinnyPig/status/1354093298890141697?s=20">link</a></li><li>So here we are. </li></ul><p>This diagram is referenced in the show, the <a href="https://files.fireside.fm/file/fireside-uploads/images/b/bc7f1faf-8aad-4135-bb12-83a8af679756/FXJsYzOQ.jpg">Last Week In AWS Newsletter Production Pipeline</a>.</p><p><br></p><p>Special Guest: Corey Quinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.lastweekinaws.com/">Last Week in AWS</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 30 Mar 2021 20:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/149.mp3" length="35298326" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2940</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Reason for the interview. Rough summary of a twitter conversation:</p><ul><li>Corey: What podcasts should I try to get an invite onto?</li><li>ToonArmyCaptain: Python Bytes, Test &amp; Code, Talk Python</li><li>Corey: 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. <a href="https://twitter.com/QuinnyPig/status/1354093298890141697?s=20">link</a></li><li>So here we are. </li></ul><p>This diagram is referenced in the show, the <a href="https://files.fireside.fm/file/fireside-uploads/images/b/bc7f1faf-8aad-4135-bb12-83a8af679756/FXJsYzOQ.jpg">Last Week In AWS Newsletter Production Pipeline</a>.</p><p><br></p><p>Special Guest: Corey Quinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.lastweekinaws.com/">Last Week in AWS</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>148: Coverage.py and testing packages</title>
      <itunes:episode>148</itunes:episode>
      <podcast:episode>148</podcast:episode>
      <itunes:title>148: Coverage.py and testing packages</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ed711105-4ae3-4a94-97b5-17ee39def2c3</guid>
      <link>https://pythontest.com/testandcode/episodes/148-coverage-py-and-testing-packages</link>
      <description>
        <![CDATA[<p>How do you test installed packages using coverage.py? </p><p>Also, a couple followups from last week's episode on using coverage for single file applications. </p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/147">episode 147: Testing Single File Python Applications/Scripts with pytest and coverage</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.5/source.html">Specifying source files — Coverage.py documentation</a></li><li><a href="https://hynek.me/articles/testing-packaging/">Testing &amp; Packaging - Hynek</a></li><li><a href="https://beyondgrep.com/">ack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How do you test installed packages using coverage.py? </p><p>Also, a couple followups from last week's episode on using coverage for single file applications. </p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/147">episode 147: Testing Single File Python Applications/Scripts with pytest and coverage</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.5/source.html">Specifying source files — Coverage.py documentation</a></li><li><a href="https://hynek.me/articles/testing-packaging/">Testing &amp; Packaging - Hynek</a></li><li><a href="https://beyondgrep.com/">ack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 12 Mar 2021 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/148.mp3" length="9569978" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>796</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How do you test installed packages using coverage.py? </p><p>Also, a couple followups from last week's episode on using coverage for single file applications. </p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/147">episode 147: Testing Single File Python Applications/Scripts with pytest and coverage</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.5/source.html">Specifying source files — Coverage.py documentation</a></li><li><a href="https://hynek.me/articles/testing-packaging/">Testing &amp; Packaging - Hynek</a></li><li><a href="https://beyondgrep.com/">ack</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>coverage, pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>147: Testing Single File Python Applications/Scripts with pytest and coverage</title>
      <itunes:episode>147</itunes:episode>
      <podcast:episode>147</podcast:episode>
      <itunes:title>147: Testing Single File Python Applications/Scripts with pytest and coverage</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">361a353c-b43d-4cf6-a6b5-c2b3d746297b</guid>
      <link>https://pythontest.com/testandcode/episodes/147-testing-single-file-python-applications-scripts-with-pytest-and-coverage</link>
      <description>
        <![CDATA[<p>Have you ever written a single file Python application or script?<br> Have you written tests for it?<br> Do you check code coverage?</p><p>This is the topic of this weeks episode, spurred on by a listener question.</p><p>The questions:</p><ul><li>For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?</li><li>If I can, can I use code coverage on it?</li></ul><p>The example code discussed in the episode: script.py</p>def 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"
<br><p>Suggestion by <a href="https://twitter.com/cfbolz/status/1368196960302358528?s=20">@cfbolz</a> if you need to import pytest:</p>if __name__ == '__main__': # pragma: no cover
    main()
else:
   import pytest
<br><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Have you ever written a single file Python application or script?<br> Have you written tests for it?<br> Do you check code coverage?</p><p>This is the topic of this weeks episode, spurred on by a listener question.</p><p>The questions:</p><ul><li>For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?</li><li>If I can, can I use code coverage on it?</li></ul><p>The example code discussed in the episode: script.py</p>def 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"
<br><p>Suggestion by <a href="https://twitter.com/cfbolz/status/1368196960302358528?s=20">@cfbolz</a> if you need to import pytest:</p>if __name__ == '__main__': # pragma: no cover
    main()
else:
   import pytest
<br><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 05 Mar 2021 19:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/147.mp3" length="7979475" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>663</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Have you ever written a single file Python application or script?<br> Have you written tests for it?<br> Do you check code coverage?</p><p>This is the topic of this weeks episode, spurred on by a listener question.</p><p>The questions:</p><ul><li>For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?</li><li>If I can, can I use code coverage on it?</li></ul><p>The example code discussed in the episode: script.py</p>def 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"
<br><p>Suggestion by <a href="https://twitter.com/cfbolz/status/1368196960302358528?s=20">@cfbolz</a> if you need to import pytest:</p>if __name__ == '__main__': # pragma: no cover
    main()
else:
   import pytest
<br><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, script, single file application</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>146: Automation Tools for Web App and API Development and Maintenance - Michael Kennedy</title>
      <itunes:episode>146</itunes:episode>
      <podcast:episode>146</podcast:episode>
      <itunes:title>146: Automation Tools for Web App and API Development and Maintenance - Michael Kennedy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6e32b93f-8a06-4c7d-9998-f573e5f59b74</guid>
      <link>https://pythontest.com/testandcode/episodes/146-automation-tools-for-web-app-and-api-development-and-maintenance-michael-kennedy</link>
      <description>
        <![CDATA[<p>Building any software, including web apps and APIs requires testing.<br> There's automated testing, and there's manual testing.</p><p> In between that is exploratory testing aided by automation tools. </p><p>Michael Kennedy joins the show this week to share some of the tools he uses during development and maintenance.</p><p>We talk about tools used for semi-automated exploratory testing. <br> 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. </p><p>We talk about:</p><ul><li>Postman</li><li>ngrok</li><li>sitemap link testing</li><li>scripts for manual processes</li><li>using failover servers during maintenance, redeployments, etc</li><li>gitHub webhooks and scripts to between fail over servers and production during deployments automatically</li><li>floating IP addresses </li><li>services to monitor your site: StatusCake, BetterUptime</li><li>the affect of monitoring on analytics</li><li>crash reporting: Rollbar, Sentry</li><li>response times</li><li>load testing: Locus</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li><li><a href="https://talkpython.fm/">Talk Python To Me Podcast</a></li><li><a href="https://training.talkpython.fm/">Talk Python Training</a></li><li><a href="https://www.postman.com/">Postman</a></li><li><a href="https://ngrok.com/">ngrok</a></li><li><a href="https://www.statuscake.com/">StatusCake</a></li><li><a href="https://betteruptime.com/">Better Uptime</a></li><li><a href="https://rollbar.com/free-trial/?obility_id=104442591522&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=Brand&amp;utm_term=rollbar&amp;utm_content=442667882877&amp;hsa_acc=8602228161&amp;hsa_cam=10324648206&amp;hsa_grp=104442591522&amp;hsa_ad=442667882877&amp;hsa_src=g&amp;hsa_tgt=kwd-780380991&amp;hsa_kw=rollbar&amp;hsa_mt=e&amp;hsa_net=adwords&amp;hsa_ver=3&amp;gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB4WfJXsrUh4i3hrFD6JX5I96uIJSn55kDXDV3cujqnUoquHBwyqRcYaAhgOEALw_wcB">Rollbar</a></li><li><a href="https://sentry.io">Sentry</a></li><li><a href="https://locust.io/">Locust</a></li><li><a href="https://suade.org/dev/12-requests-per-second-with-python/">12 requests per second in Python</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Building any software, including web apps and APIs requires testing.<br> There's automated testing, and there's manual testing.</p><p> In between that is exploratory testing aided by automation tools. </p><p>Michael Kennedy joins the show this week to share some of the tools he uses during development and maintenance.</p><p>We talk about tools used for semi-automated exploratory testing. <br> 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. </p><p>We talk about:</p><ul><li>Postman</li><li>ngrok</li><li>sitemap link testing</li><li>scripts for manual processes</li><li>using failover servers during maintenance, redeployments, etc</li><li>gitHub webhooks and scripts to between fail over servers and production during deployments automatically</li><li>floating IP addresses </li><li>services to monitor your site: StatusCake, BetterUptime</li><li>the affect of monitoring on analytics</li><li>crash reporting: Rollbar, Sentry</li><li>response times</li><li>load testing: Locus</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li><li><a href="https://talkpython.fm/">Talk Python To Me Podcast</a></li><li><a href="https://training.talkpython.fm/">Talk Python Training</a></li><li><a href="https://www.postman.com/">Postman</a></li><li><a href="https://ngrok.com/">ngrok</a></li><li><a href="https://www.statuscake.com/">StatusCake</a></li><li><a href="https://betteruptime.com/">Better Uptime</a></li><li><a href="https://rollbar.com/free-trial/?obility_id=104442591522&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=Brand&amp;utm_term=rollbar&amp;utm_content=442667882877&amp;hsa_acc=8602228161&amp;hsa_cam=10324648206&amp;hsa_grp=104442591522&amp;hsa_ad=442667882877&amp;hsa_src=g&amp;hsa_tgt=kwd-780380991&amp;hsa_kw=rollbar&amp;hsa_mt=e&amp;hsa_net=adwords&amp;hsa_ver=3&amp;gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB4WfJXsrUh4i3hrFD6JX5I96uIJSn55kDXDV3cujqnUoquHBwyqRcYaAhgOEALw_wcB">Rollbar</a></li><li><a href="https://sentry.io">Sentry</a></li><li><a href="https://locust.io/">Locust</a></li><li><a href="https://suade.org/dev/12-requests-per-second-with-python/">12 requests per second in Python</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 28 Feb 2021 16:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/146.mp3" length="34394923" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2864</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Building any software, including web apps and APIs requires testing.<br> There's automated testing, and there's manual testing.</p><p> In between that is exploratory testing aided by automation tools. </p><p>Michael Kennedy joins the show this week to share some of the tools he uses during development and maintenance.</p><p>We talk about tools used for semi-automated exploratory testing. <br> 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. </p><p>We talk about:</p><ul><li>Postman</li><li>ngrok</li><li>sitemap link testing</li><li>scripts for manual processes</li><li>using failover servers during maintenance, redeployments, etc</li><li>gitHub webhooks and scripts to between fail over servers and production during deployments automatically</li><li>floating IP addresses </li><li>services to monitor your site: StatusCake, BetterUptime</li><li>the affect of monitoring on analytics</li><li>crash reporting: Rollbar, Sentry</li><li>response times</li><li>load testing: Locus</li></ul><p><br></p><p>Links:</p><ul><li><a href="https://pythonbytes.fm/">Python Bytes Podcast</a></li><li><a href="https://talkpython.fm/">Talk Python To Me Podcast</a></li><li><a href="https://training.talkpython.fm/">Talk Python Training</a></li><li><a href="https://www.postman.com/">Postman</a></li><li><a href="https://ngrok.com/">ngrok</a></li><li><a href="https://www.statuscake.com/">StatusCake</a></li><li><a href="https://betteruptime.com/">Better Uptime</a></li><li><a href="https://rollbar.com/free-trial/?obility_id=104442591522&amp;utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=Brand&amp;utm_term=rollbar&amp;utm_content=442667882877&amp;hsa_acc=8602228161&amp;hsa_cam=10324648206&amp;hsa_grp=104442591522&amp;hsa_ad=442667882877&amp;hsa_src=g&amp;hsa_tgt=kwd-780380991&amp;hsa_kw=rollbar&amp;hsa_mt=e&amp;hsa_net=adwords&amp;hsa_ver=3&amp;gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB4WfJXsrUh4i3hrFD6JX5I96uIJSn55kDXDV3cujqnUoquHBwyqRcYaAhgOEALw_wcB">Rollbar</a></li><li><a href="https://sentry.io">Sentry</a></li><li><a href="https://locust.io/">Locust</a></li><li><a href="https://suade.org/dev/12-requests-per-second-with-python/">12 requests per second in Python</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>web applications, web APIs, maintenance, automation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Kennedy</podcast:person>
    </item>
    <item>
      <title>145: For Those About to Mock - Michael Foord</title>
      <itunes:episode>145</itunes:episode>
      <podcast:episode>145</podcast:episode>
      <itunes:title>145: For Those About to Mock - Michael Foord</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e35d00b3-4fa6-4506-a423-fbed7bb38856</guid>
      <link>https://pythontest.com/testandcode/episodes/145-for-those-about-to-mock-michael-foord</link>
      <description>
        <![CDATA[<p>A discussion about mocking in Python with the original contributor of unittest.mock, Michael Foord.</p><p>Of course we discuss mocking and unittest.mock. </p><p>We also discuss:</p><ul><li>testing philosophy</li><li>unit testing and what a unit is</li><li>TDD</li><li>where Michael's towel is, and what color</li></ul><p>Micheal 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.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock - Python docs</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://pypi.org/project/pytest-mock/">pytest-mock</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch">mock.patch</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="http://wiki.c2.com/?ArrangeActAssert">Arrange Act Assert</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">testing-in-python mailing list</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting">Classical and Mockist Testing</a> — Classical and Mockist Testing </li><li><a href="https://pythontesting.net/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://pythontest.com/testandcode/102">episode 102: Cosmic Python, TDD, testing and external dependencies - Harry Percival</a></li><li><a href="https://pythontest.com/testandcode/132">episode 132: mocking in Python - Anna-Lena Popkes</a></li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">pytest</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest - Python docs</a></li><li><a href="https://docs.pytest.org/en/stable/assert.html">pytest assert usage</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing | Opensource.com</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A discussion about mocking in Python with the original contributor of unittest.mock, Michael Foord.</p><p>Of course we discuss mocking and unittest.mock. </p><p>We also discuss:</p><ul><li>testing philosophy</li><li>unit testing and what a unit is</li><li>TDD</li><li>where Michael's towel is, and what color</li></ul><p>Micheal 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.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock - Python docs</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://pypi.org/project/pytest-mock/">pytest-mock</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch">mock.patch</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="http://wiki.c2.com/?ArrangeActAssert">Arrange Act Assert</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">testing-in-python mailing list</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting">Classical and Mockist Testing</a> — Classical and Mockist Testing </li><li><a href="https://pythontesting.net/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://pythontest.com/testandcode/102">episode 102: Cosmic Python, TDD, testing and external dependencies - Harry Percival</a></li><li><a href="https://pythontest.com/testandcode/132">episode 132: mocking in Python - Anna-Lena Popkes</a></li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">pytest</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest - Python docs</a></li><li><a href="https://docs.pytest.org/en/stable/assert.html">pytest assert usage</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing | Opensource.com</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 18 Feb 2021 01:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/145.mp3" length="34595187" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2881</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A discussion about mocking in Python with the original contributor of unittest.mock, Michael Foord.</p><p>Of course we discuss mocking and unittest.mock. </p><p>We also discuss:</p><ul><li>testing philosophy</li><li>unit testing and what a unit is</li><li>TDD</li><li>where Michael's towel is, and what color</li></ul><p>Micheal 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.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock - Python docs</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html">Mocks Aren't Stubs - Martin Fowler</a></li><li><a href="https://pypi.org/project/pytest-mock/">pytest-mock</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.patch">mock.patch</a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="http://wiki.c2.com/?ArrangeActAssert">Arrange Act Assert</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">testing-in-python mailing list</a></li><li><a href="https://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting">Classical and Mockist Testing</a> — Classical and Mockist Testing </li><li><a href="https://pythontesting.net/agile/test-first-programming/">Test First Programming / Test First Development</a></li><li><a href="https://pythontest.com/testandcode/102">episode 102: Cosmic Python, TDD, testing and external dependencies - Harry Percival</a></li><li><a href="https://pythontest.com/testandcode/132">episode 132: mocking in Python - Anna-Lena Popkes</a></li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">pytest</a></li><li><a href="https://docs.python.org/3/library/unittest.html">unittest - Python docs</a></li><li><a href="https://docs.pytest.org/en/stable/assert.html">pytest assert usage</a></li><li><a href="https://opensource.com/article/17/5/30-best-practices-software-development-and-testing">30 best practices for software development and testing | Opensource.com</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>unittest, Python, mock, mocking, TDD</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Foord</podcast:person>
    </item>
    <item>
      <title>144: TDD in Science - Martin Héroux</title>
      <itunes:episode>144</itunes:episode>
      <podcast:episode>144</podcast:episode>
      <itunes:title>144: TDD in Science - Martin Héroux</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">08e801c2-6a93-4813-a59f-2e340fdb2312</guid>
      <link>https://pythontest.com/testandcode/episodes/144-tdd-in-science-martin-heroux</link>
      <description>
        <![CDATA[<p>Test Driven Development, TDD, is not easy to incorporate in your daily development. </p><p>Martin and Brian discuss TDD and testing and Martin's experience with testing, TDD, and using it for code involved with scientific research. </p><p>We discuss lots of topics around this, including:</p><ul><li>What is TDD?</li><li>Should research software be tested in order to be trusted?</li><li>Time pressure and the struggle to get code done quickly. How do you make time for tests also?</li><li>Is testing worth it for code that will not be reused?</li><li>Sometimes it's hard to know how to test something.</li><li>Maybe people should learn to test alongside learning how to code.</li><li>A desire for a resource of testing concepts for non-CS people.</li><li>Are the testing needs and testing information needs different in different disciplines? <ul><li>Biology, Physics, Astrophysics, etc. Do they have different testing needs?</li><li>Do we need a "how to test" resource for each?</li></ul></li></ul><p><br></p><p>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Unknown_Pleasures">Joy Division Album Cover</a></li><li><a href="https://pythontest.com/testandcode/140">episode 140: Testing in Scientific Research and Academia - Martin Héroux</a> — Martin's previous episode.</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Test Driven Development, TDD, is not easy to incorporate in your daily development. </p><p>Martin and Brian discuss TDD and testing and Martin's experience with testing, TDD, and using it for code involved with scientific research. </p><p>We discuss lots of topics around this, including:</p><ul><li>What is TDD?</li><li>Should research software be tested in order to be trusted?</li><li>Time pressure and the struggle to get code done quickly. How do you make time for tests also?</li><li>Is testing worth it for code that will not be reused?</li><li>Sometimes it's hard to know how to test something.</li><li>Maybe people should learn to test alongside learning how to code.</li><li>A desire for a resource of testing concepts for non-CS people.</li><li>Are the testing needs and testing information needs different in different disciplines? <ul><li>Biology, Physics, Astrophysics, etc. Do they have different testing needs?</li><li>Do we need a "how to test" resource for each?</li></ul></li></ul><p><br></p><p>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Unknown_Pleasures">Joy Division Album Cover</a></li><li><a href="https://pythontest.com/testandcode/140">episode 140: Testing in Scientific Research and Academia - Martin Héroux</a> — Martin's previous episode.</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 12 Feb 2021 23:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/144.mp3" length="37969676" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3162</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Test Driven Development, TDD, is not easy to incorporate in your daily development. </p><p>Martin and Brian discuss TDD and testing and Martin's experience with testing, TDD, and using it for code involved with scientific research. </p><p>We discuss lots of topics around this, including:</p><ul><li>What is TDD?</li><li>Should research software be tested in order to be trusted?</li><li>Time pressure and the struggle to get code done quickly. How do you make time for tests also?</li><li>Is testing worth it for code that will not be reused?</li><li>Sometimes it's hard to know how to test something.</li><li>Maybe people should learn to test alongside learning how to code.</li><li>A desire for a resource of testing concepts for non-CS people.</li><li>Are the testing needs and testing information needs different in different disciplines? <ul><li>Biology, Physics, Astrophysics, etc. Do they have different testing needs?</li><li>Do we need a "how to test" resource for each?</li></ul></li></ul><p><br></p><p>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Unknown_Pleasures">Joy Division Album Cover</a></li><li><a href="https://pythontest.com/testandcode/140">episode 140: Testing in Scientific Research and Academia - Martin Héroux</a> — Martin's previous episode.</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>TDD, Test Driven Development, Scientific Research</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>143: pytest markers - Anthony Sottile</title>
      <itunes:episode>143</itunes:episode>
      <podcast:episode>143</podcast:episode>
      <itunes:title>143: pytest markers - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7e7b49a3-0537-49ea-b051-3400b6d3db49</guid>
      <link>https://pythontest.com/testandcode/episodes/143-pytest-markers-anthony-sottile</link>
      <description>
        <![CDATA[<p>Completely nerding out about pytest markers with Anthony Sottile.</p><p>Some of what we talk about:</p><ul><li>Running a subset of tests with markers.</li><li>Using marker expressions with and, or, not, and parentheses.</li><li>Keyword expressions also can use and, or, not, and parentheses.</li><li>Markers and pytest functionality that use mark, such as parametrize, skipif, etc.</li><li>Accessing markers with itermarkers and get_closest_marker through item.</li><li>Passing values, metadata through markers to fixtures or hook functions.</li></ul><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/example/markers.html#registering-markers">Registering markers</a></li><li><a href="https://docs.pytest.org/en/stable/example/simple.html?highlight=slow#control-skipping-of-tests-according-to-command-line-option">slow marker example in pytest documentation</a> — Control skipping of tests according to command line option</li><li><a href="https://pypi.org/project/pytest-repeat/">pytest-repeat · PyPI</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat/blob/master/pytest_repeat.py">source code for pytest-repeat</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html">Working with custom markers — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html#using-k-expr-to-select-tests-based-on-their-name">Using -k expr to select tests based on their name</a></li><li><a href="https://docs.pytest.org/en/stable/historical-notes.html#marker-revamp">Marker revamp and iteration, Historical Notes — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Completely nerding out about pytest markers with Anthony Sottile.</p><p>Some of what we talk about:</p><ul><li>Running a subset of tests with markers.</li><li>Using marker expressions with and, or, not, and parentheses.</li><li>Keyword expressions also can use and, or, not, and parentheses.</li><li>Markers and pytest functionality that use mark, such as parametrize, skipif, etc.</li><li>Accessing markers with itermarkers and get_closest_marker through item.</li><li>Passing values, metadata through markers to fixtures or hook functions.</li></ul><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/example/markers.html#registering-markers">Registering markers</a></li><li><a href="https://docs.pytest.org/en/stable/example/simple.html?highlight=slow#control-skipping-of-tests-according-to-command-line-option">slow marker example in pytest documentation</a> — Control skipping of tests according to command line option</li><li><a href="https://pypi.org/project/pytest-repeat/">pytest-repeat · PyPI</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat/blob/master/pytest_repeat.py">source code for pytest-repeat</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html">Working with custom markers — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html#using-k-expr-to-select-tests-based-on-their-name">Using -k expr to select tests based on their name</a></li><li><a href="https://docs.pytest.org/en/stable/historical-notes.html#marker-revamp">Marker revamp and iteration, Historical Notes — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 07 Feb 2021 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/143.mp3" length="28336137" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2359</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Completely nerding out about pytest markers with Anthony Sottile.</p><p>Some of what we talk about:</p><ul><li>Running a subset of tests with markers.</li><li>Using marker expressions with and, or, not, and parentheses.</li><li>Keyword expressions also can use and, or, not, and parentheses.</li><li>Markers and pytest functionality that use mark, such as parametrize, skipif, etc.</li><li>Accessing markers with itermarkers and get_closest_marker through item.</li><li>Passing values, metadata through markers to fixtures or hook functions.</li></ul><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/example/markers.html#registering-markers">Registering markers</a></li><li><a href="https://docs.pytest.org/en/stable/example/simple.html?highlight=slow#control-skipping-of-tests-according-to-command-line-option">slow marker example in pytest documentation</a> — Control skipping of tests according to command line option</li><li><a href="https://pypi.org/project/pytest-repeat/">pytest-repeat · PyPI</a></li><li><a href="https://github.com/pytest-dev/pytest-repeat/blob/master/pytest_repeat.py">source code for pytest-repeat</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html">Working with custom markers — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/stable/example/markers.html#using-k-expr-to-select-tests-based-on-their-name">Using -k expr to select tests based on their name</a></li><li><a href="https://docs.pytest.org/en/stable/historical-notes.html#marker-revamp">Marker revamp and iteration, Historical Notes — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, pytest, markers, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>142: MongoDB - Mark Smith</title>
      <itunes:episode>142</itunes:episode>
      <podcast:episode>142</podcast:episode>
      <itunes:title>142: MongoDB - Mark Smith</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5cd3dbba-c27d-421e-ae90-8fa52d547381</guid>
      <link>https://pythontest.com/testandcode/episodes/142-mongodb-mark-smith</link>
      <description>
        <![CDATA[<p>MongoDB is possibly the most recognizable NoSQL document database.<br> Mark Smith, a developer advocate for MongoDB, answers my many questions about MongoDB.<br> We cover some basics, but also discuss some advanced features that I never knew about before this conversation.</p><p><br></p><p>Special Guest: Mark Smith.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mongodb.com/">MongoDB</a></li><li><a href="https://developer.mongodb.com/article/everything-you-know-is-wrong">Everything You Know About MongoDB is Wrong!</a></li><li><a href="https://blog.insiderattack.net/implementing-event-sourcing-and-cqrs-pattern-with-mongodb-66991e7b72be">Implementing Event Sourcing and CQRS pattern with MongoDB</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>MongoDB is possibly the most recognizable NoSQL document database.<br> Mark Smith, a developer advocate for MongoDB, answers my many questions about MongoDB.<br> We cover some basics, but also discuss some advanced features that I never knew about before this conversation.</p><p><br></p><p>Special Guest: Mark Smith.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mongodb.com/">MongoDB</a></li><li><a href="https://developer.mongodb.com/article/everything-you-know-is-wrong">Everything You Know About MongoDB is Wrong!</a></li><li><a href="https://blog.insiderattack.net/implementing-event-sourcing-and-cqrs-pattern-with-mongodb-66991e7b72be">Implementing Event Sourcing and CQRS pattern with MongoDB</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 25 Jan 2021 10:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/142.mp3" length="24814610" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2066</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>MongoDB is possibly the most recognizable NoSQL document database.<br> Mark Smith, a developer advocate for MongoDB, answers my many questions about MongoDB.<br> We cover some basics, but also discuss some advanced features that I never knew about before this conversation.</p><p><br></p><p>Special Guest: Mark Smith.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mongodb.com/">MongoDB</a></li><li><a href="https://developer.mongodb.com/article/everything-you-know-is-wrong">Everything You Know About MongoDB is Wrong!</a></li><li><a href="https://blog.insiderattack.net/implementing-event-sourcing-and-cqrs-pattern-with-mongodb-66991e7b72be">Implementing Event Sourcing and CQRS pattern with MongoDB</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>MongoDB, document database</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>141: Visual Testing - Angie Jones</title>
      <itunes:episode>141</itunes:episode>
      <podcast:episode>141</podcast:episode>
      <itunes:title>141: Visual Testing - Angie Jones</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">dbab7bb7-5b94-4e2d-acaf-16b259039b48</guid>
      <link>https://pythontest.com/testandcode/episodes/141-visual-testing-angie-jones</link>
      <description>
        <![CDATA[<p>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. </p><p>Some of the discussion:</p><ul><li>Classes of visual testing: <ul><li>problems with pixel to pixel testing</li><li>DOM comparisons, css, html, etc.</li><li>AI driven picture level testing, where failures look into the DOM to help describe the problem. </li></ul></li><li>Where visual testing fits into a test strategy.</li><li>Combining "does this look right" visual testing with other test workflows.</li><li>"A picture is worth a thousand assertions" - functional assertions built into visual testing.</li><li>Baselining pictures in the test workflow.</li></ul><p>Also discussed:</p><ul><li>automation engineer</li><li>Test Automation University</li></ul><p>Links:</p><ul><li><a href="https://testautomationu.applitools.com/">Test Automation University</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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. </p><p>Some of the discussion:</p><ul><li>Classes of visual testing: <ul><li>problems with pixel to pixel testing</li><li>DOM comparisons, css, html, etc.</li><li>AI driven picture level testing, where failures look into the DOM to help describe the problem. </li></ul></li><li>Where visual testing fits into a test strategy.</li><li>Combining "does this look right" visual testing with other test workflows.</li><li>"A picture is worth a thousand assertions" - functional assertions built into visual testing.</li><li>Baselining pictures in the test workflow.</li></ul><p>Also discussed:</p><ul><li>automation engineer</li><li>Test Automation University</li></ul><p>Links:</p><ul><li><a href="https://testautomationu.applitools.com/">Test Automation University</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 30 Dec 2020 12:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/141.mp3" length="21813462" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1816</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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. </p><p>Some of the discussion:</p><ul><li>Classes of visual testing: <ul><li>problems with pixel to pixel testing</li><li>DOM comparisons, css, html, etc.</li><li>AI driven picture level testing, where failures look into the DOM to help describe the problem. </li></ul></li><li>Where visual testing fits into a test strategy.</li><li>Combining "does this look right" visual testing with other test workflows.</li><li>"A picture is worth a thousand assertions" - functional assertions built into visual testing.</li><li>Baselining pictures in the test workflow.</li></ul><p>Also discussed:</p><ul><li>automation engineer</li><li>Test Automation University</li></ul><p>Links:</p><ul><li><a href="https://testautomationu.applitools.com/">Test Automation University</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>visual testing, web testing, browser testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://angiejones.tech">Angie Jones @ #WeAreDevs</podcast:person>
    </item>
    <item>
      <title>140: Testing in Scientific Research and Academia - Martin Héroux</title>
      <itunes:episode>140</itunes:episode>
      <podcast:episode>140</podcast:episode>
      <itunes:title>140: Testing in Scientific Research and Academia - Martin Héroux</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">fe3b9ebe-5615-40d8-b230-e1d73033b027</guid>
      <link>https://pythontest.com/testandcode/episodes/140-testing-in-scientific-research-and-academia-martin-heroux</link>
      <description>
        <![CDATA[<p>Scientists learn programming as they need it.<br> Some of them learn it in college, but even if they do, that's not their focus.<br> It's not surprising that sharing the software used for scientific research and papers is spotty, at best.<br> And what about testing?<br> We'd hope that the software behind scientific research is tested.<br> But why would we expect that?<br> We're lucky if CS students get a class or two that even mentions automated tests.<br> Why would we expect other scientists to just know how to test their code?</p><p>Martin works in research and this discussion is about software and testing in scientific research and academia.</p><p><br>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest: Simple, Rapid, Effective, and Scalable</a></li><li><a href="http://www.amazon.com/exec/obidos/ASIN/0321146530/python04-20">Test Driven Development: By Example</a></li><li><a href="https://pythontesting.net/agile/is-tdd-dead/">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://github.com/MartinHeroux/pliffy">MartinHeroux/pliffy: Plotting differences with Python</a></li><li><a href="https://codechalleng.es/">PyBites Code Challenges</a></li><li><a href="https://www.pythonmorsels.com/">Python Morsels</a></li><li><a href="https://twitter.com/martin_heroux">Martin Héroux (@martin_heroux) / Twitter</a></li><li><a href="https://scientificallysound.org/">Scientifically Sound</a></li><li><a href="https://scholar.google.com.au/citations?user=rW2rVqMAAAAJ&amp;hl=en&amp;oi=ao">‪Martin Héroux‬ - ‪Google Scholar‬</a></li><li><a href="https://pypi.org/project/spike2py/">spike2py · PyPI</a></li><li><a href="https://pypi.org/project/pytest-mpl/">pytest-mpl · PyPI</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Scientists learn programming as they need it.<br> Some of them learn it in college, but even if they do, that's not their focus.<br> It's not surprising that sharing the software used for scientific research and papers is spotty, at best.<br> And what about testing?<br> We'd hope that the software behind scientific research is tested.<br> But why would we expect that?<br> We're lucky if CS students get a class or two that even mentions automated tests.<br> Why would we expect other scientists to just know how to test their code?</p><p>Martin works in research and this discussion is about software and testing in scientific research and academia.</p><p><br>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest: Simple, Rapid, Effective, and Scalable</a></li><li><a href="http://www.amazon.com/exec/obidos/ASIN/0321146530/python04-20">Test Driven Development: By Example</a></li><li><a href="https://pythontesting.net/agile/is-tdd-dead/">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://github.com/MartinHeroux/pliffy">MartinHeroux/pliffy: Plotting differences with Python</a></li><li><a href="https://codechalleng.es/">PyBites Code Challenges</a></li><li><a href="https://www.pythonmorsels.com/">Python Morsels</a></li><li><a href="https://twitter.com/martin_heroux">Martin Héroux (@martin_heroux) / Twitter</a></li><li><a href="https://scientificallysound.org/">Scientifically Sound</a></li><li><a href="https://scholar.google.com.au/citations?user=rW2rVqMAAAAJ&amp;hl=en&amp;oi=ao">‪Martin Héroux‬ - ‪Google Scholar‬</a></li><li><a href="https://pypi.org/project/spike2py/">spike2py · PyPI</a></li><li><a href="https://pypi.org/project/pytest-mpl/">pytest-mpl · PyPI</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 18 Dec 2020 12:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/140.mp3" length="33898051" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2823</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Scientists learn programming as they need it.<br> Some of them learn it in college, but even if they do, that's not their focus.<br> It's not surprising that sharing the software used for scientific research and papers is spotty, at best.<br> And what about testing?<br> We'd hope that the software behind scientific research is tested.<br> But why would we expect that?<br> We're lucky if CS students get a class or two that even mentions automated tests.<br> Why would we expect other scientists to just know how to test their code?</p><p>Martin works in research and this discussion is about software and testing in scientific research and academia.</p><p><br>Special Guest: Martin Héroux.</p><p><br></p><p>Links:</p><ul><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest: Simple, Rapid, Effective, and Scalable</a></li><li><a href="http://www.amazon.com/exec/obidos/ASIN/0321146530/python04-20">Test Driven Development: By Example</a></li><li><a href="https://pythontesting.net/agile/is-tdd-dead/">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://github.com/MartinHeroux/pliffy">MartinHeroux/pliffy: Plotting differences with Python</a></li><li><a href="https://codechalleng.es/">PyBites Code Challenges</a></li><li><a href="https://www.pythonmorsels.com/">Python Morsels</a></li><li><a href="https://twitter.com/martin_heroux">Martin Héroux (@martin_heroux) / Twitter</a></li><li><a href="https://scientificallysound.org/">Scientifically Sound</a></li><li><a href="https://scholar.google.com.au/citations?user=rW2rVqMAAAAJ&amp;hl=en&amp;oi=ao">‪Martin Héroux‬ - ‪Google Scholar‬</a></li><li><a href="https://pypi.org/project/spike2py/">spike2py · PyPI</a></li><li><a href="https://pypi.org/project/pytest-mpl/">pytest-mpl · PyPI</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, open software, scientific research</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>139: Test Automation: Shifting Testing Throughout the Software Lifecycle - Nalin Parbhu</title>
      <itunes:episode>139</itunes:episode>
      <podcast:episode>139</podcast:episode>
      <itunes:title>139: Test Automation: Shifting Testing Throughout the Software Lifecycle - Nalin Parbhu</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">989aa051-e54d-4931-80c8-b6a09b40a2aa</guid>
      <link>https://pythontest.com/testandcode/episodes/139-test-automation-shifting-testing-throughout-the-software-lifecycle-nalin-parbhu</link>
      <description>
        <![CDATA[<p>Talking with Nalin Parbhu about the software evolution towards more test automation and the creation of Infuse and useMango.</p><p>We talk a software development and "shift left" where automated tests and quality checks have moved earlier into the software lifecycle.</p><ul><li>Software approaches and where quality fits in</li><li>Shift left</li><li>Test automation</li><li>Roles of software developers, SDETs (software development engineer in test), testers, QA, etc.</li><li>Developers doing testing and devops</li><li>Automated testing vs manual testing</li><li>Regression testing, UI testing, black bock testing</li><li>Unit testing, white box, API, end to end testing</li><li>User acceptance testing (UAT)</li><li>Mullet Methodology (Agile at the front, Waterfall at the back)</li><li>Waterwheel Methodology (Requirements -&gt; iterative development -&gt; QA)</li><li>What's an agile team?</li><li>Developer resistance to testing</li><li>Manifesto for agile software development</li><li>Iterative development</li><li>Adapting to change</li><li>Agility: being able to change course quickly</li></ul><p>Special Guests: Nalin Parbhu and Ola Omiyale.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Talking with Nalin Parbhu about the software evolution towards more test automation and the creation of Infuse and useMango.</p><p>We talk a software development and "shift left" where automated tests and quality checks have moved earlier into the software lifecycle.</p><ul><li>Software approaches and where quality fits in</li><li>Shift left</li><li>Test automation</li><li>Roles of software developers, SDETs (software development engineer in test), testers, QA, etc.</li><li>Developers doing testing and devops</li><li>Automated testing vs manual testing</li><li>Regression testing, UI testing, black bock testing</li><li>Unit testing, white box, API, end to end testing</li><li>User acceptance testing (UAT)</li><li>Mullet Methodology (Agile at the front, Waterfall at the back)</li><li>Waterwheel Methodology (Requirements -&gt; iterative development -&gt; QA)</li><li>What's an agile team?</li><li>Developer resistance to testing</li><li>Manifesto for agile software development</li><li>Iterative development</li><li>Adapting to change</li><li>Agility: being able to change course quickly</li></ul><p>Special Guests: Nalin Parbhu and Ola Omiyale.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 04 Dec 2020 13:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/139.mp3" length="25865108" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2154</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Talking with Nalin Parbhu about the software evolution towards more test automation and the creation of Infuse and useMango.</p><p>We talk a software development and "shift left" where automated tests and quality checks have moved earlier into the software lifecycle.</p><ul><li>Software approaches and where quality fits in</li><li>Shift left</li><li>Test automation</li><li>Roles of software developers, SDETs (software development engineer in test), testers, QA, etc.</li><li>Developers doing testing and devops</li><li>Automated testing vs manual testing</li><li>Regression testing, UI testing, black bock testing</li><li>Unit testing, white box, API, end to end testing</li><li>User acceptance testing (UAT)</li><li>Mullet Methodology (Agile at the front, Waterfall at the back)</li><li>Waterwheel Methodology (Requirements -&gt; iterative development -&gt; QA)</li><li>What's an agile team?</li><li>Developer resistance to testing</li><li>Manifesto for agile software development</li><li>Iterative development</li><li>Adapting to change</li><li>Agility: being able to change course quickly</li></ul><p>Special Guests: Nalin Parbhu and Ola Omiyale.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>test automation, agile software development</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>138: Mutation Testing in Python with mutmut - Anders Hovmöller</title>
      <itunes:episode>138</itunes:episode>
      <podcast:episode>138</podcast:episode>
      <itunes:title>138: Mutation Testing in Python with mutmut - Anders Hovmöller</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4ec9ede1-378e-485b-a2a6-0e1901ad151a</guid>
      <link>https://pythontest.com/testandcode/episodes/138-mutation-testing-in-python-with-mutmut-anders-hovmoller</link>
      <description>
        <![CDATA[<p>Your test suite tells you about the quality of your code under test.</p><p> Mutation testing is a way to tell you about the quality of your test suite.</p><p> Anders Hovmöller wrote <a href="https://mutmut.readthedocs.io/">mutmut</a> for mutation testing in Python, and can be used with pytest, unittest, and others.</p><p> In this episode, Anders explains mutation testing, how mutation testing with mutmut works, and good workflows.</p><p><br>Special Guest: Anders Hovmöller.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/mutmut/">mutmut · PyPI</a></li><li><a href="https://pypi.org/project/cosmic-ray/">cosmic-ray · PyPI</a></li><li><a href="https://pypi.org/project/MutPy/">MutPy · PyPI</a></li><li><a href="https://pypi.org/project/parso/">parso · PyPI</a></li><li><a href="https://mutmut.readthedocs.io/en/latest/">mutmut documentation</a></li><li><a href="https://nedbatchelder.com/blog/201903/mutmut.html">Ned Batchelder article on mutmut</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Your test suite tells you about the quality of your code under test.</p><p> Mutation testing is a way to tell you about the quality of your test suite.</p><p> Anders Hovmöller wrote <a href="https://mutmut.readthedocs.io/">mutmut</a> for mutation testing in Python, and can be used with pytest, unittest, and others.</p><p> In this episode, Anders explains mutation testing, how mutation testing with mutmut works, and good workflows.</p><p><br>Special Guest: Anders Hovmöller.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/mutmut/">mutmut · PyPI</a></li><li><a href="https://pypi.org/project/cosmic-ray/">cosmic-ray · PyPI</a></li><li><a href="https://pypi.org/project/MutPy/">MutPy · PyPI</a></li><li><a href="https://pypi.org/project/parso/">parso · PyPI</a></li><li><a href="https://mutmut.readthedocs.io/en/latest/">mutmut documentation</a></li><li><a href="https://nedbatchelder.com/blog/201903/mutmut.html">Ned Batchelder article on mutmut</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 19 Nov 2020 14:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/138.mp3" length="20641115" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1718</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Your test suite tells you about the quality of your code under test.</p><p> Mutation testing is a way to tell you about the quality of your test suite.</p><p> Anders Hovmöller wrote <a href="https://mutmut.readthedocs.io/">mutmut</a> for mutation testing in Python, and can be used with pytest, unittest, and others.</p><p> In this episode, Anders explains mutation testing, how mutation testing with mutmut works, and good workflows.</p><p><br>Special Guest: Anders Hovmöller.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypi.org/project/mutmut/">mutmut · PyPI</a></li><li><a href="https://pypi.org/project/cosmic-ray/">cosmic-ray · PyPI</a></li><li><a href="https://pypi.org/project/MutPy/">MutPy · PyPI</a></li><li><a href="https://pypi.org/project/parso/">parso · PyPI</a></li><li><a href="https://mutmut.readthedocs.io/en/latest/">mutmut documentation</a></li><li><a href="https://nedbatchelder.com/blog/201903/mutmut.html">Ned Batchelder article on mutmut</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, mutation testing, mutmut</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>137: Become an Author - Matt Harrison interviews Brian Okken</title>
      <itunes:episode>137</itunes:episode>
      <podcast:episode>137</podcast:episode>
      <itunes:title>137: Become an Author - Matt Harrison interviews Brian Okken</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">87f6041a-43a4-4328-af8a-2346c498e1bd</guid>
      <link>https://pythontest.com/testandcode/episodes/137-become-an-author-matt-harrison-interviews-brian-okken</link>
      <description>
        <![CDATA[<p>Matt Harrison, author of many Python books, is putting together a course, Effective Book Authoring, to help other people write and publish books.<br> As part of this course, he's including interviews with people who have already written books, including me. This is that interview.</p><p>We discuss:</p><ul><li>Why I wrote "Python Testing with pytest"</li><li>Self publishing vs working with a publisher</li><li>The writing, editing, and publishing process</li><li>Writing format</li><li>Book promotion</li><li>Advice to other writers</li></ul><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://mattharrison.podia.com/effective-authoring">Effective Book Authoring</a> — Matt's course</li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest - Simple, Rapid, Effective, and Scalable</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Matt Harrison, author of many Python books, is putting together a course, Effective Book Authoring, to help other people write and publish books.<br> As part of this course, he's including interviews with people who have already written books, including me. This is that interview.</p><p>We discuss:</p><ul><li>Why I wrote "Python Testing with pytest"</li><li>Self publishing vs working with a publisher</li><li>The writing, editing, and publishing process</li><li>Writing format</li><li>Book promotion</li><li>Advice to other writers</li></ul><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://mattharrison.podia.com/effective-authoring">Effective Book Authoring</a> — Matt's course</li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest - Simple, Rapid, Effective, and Scalable</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 05 Nov 2020 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/137.mp3" length="28926109" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2409</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Matt Harrison, author of many Python books, is putting together a course, Effective Book Authoring, to help other people write and publish books.<br> As part of this course, he's including interviews with people who have already written books, including me. This is that interview.</p><p>We discuss:</p><ul><li>Why I wrote "Python Testing with pytest"</li><li>Self publishing vs working with a publisher</li><li>The writing, editing, and publishing process</li><li>Writing format</li><li>Book promotion</li><li>Advice to other writers</li></ul><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://mattharrison.podia.com/effective-authoring">Effective Book Authoring</a> — Matt's course</li><li><a href="https://pragprog.com/titles/bopytest/python-testing-with-pytest/">Python Testing with pytest - Simple, Rapid, Effective, and Scalable</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>writing, publishing, technical books</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>136: Wearable Technology - Sophy Wong</title>
      <itunes:episode>136</itunes:episode>
      <podcast:episode>136</podcast:episode>
      <itunes:title>136: Wearable Technology - Sophy Wong</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1e335e2b-9e78-4177-a60f-1a4b94c1ca07</guid>
      <link>https://pythontest.com/testandcode/episodes/136-wearable-technology-sophy-wong</link>
      <description>
        <![CDATA[<p>Wearable technology is not just smart consumer devices like watches and activity trackers. </p><p>Wearable tech also includes one off projects by designers, makers, and hackers and there are more and more people producing tutorials on how to get started. Wearable tech is also a great way to get both kids and adults excited about coding, electronics, and in general, engineering skills. </p><p>Sophy Wong is a designer who makes really cool stuff using code, technology, costuming, soldering, and even jewelry techniques to get tech onto the human body. </p><p>Sophy joins the show to answer my many questions about getting started safely with wearable tech.</p><p>Some of the questions and topics:</p><ul><li>Can I wash my clothing if I've added tech to it?</li><li>Is there any danger in wearing technology or building wearable tech?</li><li>Are there actual wires and cables conductive thread in the fabric and textiles of some wearable tech projects?</li><li>What's a good starter project? Especially if I want to do a wearable tech project with my kids?</li><li>Dealing with stretch with clothing and non-bendy electronics.</li><li>Some questions around the Sophy Wong and HackSpace "Wearable Tech Projects" book.</li><li>How did you get into wearable tech?</li><li>Do you have a favorite project?</li><li>Can I get into wearable tech if I don't know how to code or solder?</li><li>Are these projects accessible to people with limited budgets?</li><li>Making projects so you can reuse the expensive bits on multiple projects.</li></ul><p>Special Guest: Sophy Wong.</p><p><br></p><p>Links:</p><ul><li><a href="https://sophywong.com/">sophywong.com</a></li><li><a href="https://hackspace.raspberrypi.org/articles/wearable-tech-projects">Wearable Tech Projects book</a> — The wearable technology book</li><li><a href="https://sophywong.com/costumes">costumes</a> — The dress is on this page, as well as the Ghostbuster pack and costume.</li><li><a href="https://sophywong.com/spacesuit">spacesuit</a></li><li><a href="https://www.youtube.com/watch?v=T3iNIylOZF0&amp;t=4s">Music video with Sophy's space suit</a></li><li><a href="https://www.kobakant.at/DIY/">Kobakant tutorials</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Wearable technology is not just smart consumer devices like watches and activity trackers. </p><p>Wearable tech also includes one off projects by designers, makers, and hackers and there are more and more people producing tutorials on how to get started. Wearable tech is also a great way to get both kids and adults excited about coding, electronics, and in general, engineering skills. </p><p>Sophy Wong is a designer who makes really cool stuff using code, technology, costuming, soldering, and even jewelry techniques to get tech onto the human body. </p><p>Sophy joins the show to answer my many questions about getting started safely with wearable tech.</p><p>Some of the questions and topics:</p><ul><li>Can I wash my clothing if I've added tech to it?</li><li>Is there any danger in wearing technology or building wearable tech?</li><li>Are there actual wires and cables conductive thread in the fabric and textiles of some wearable tech projects?</li><li>What's a good starter project? Especially if I want to do a wearable tech project with my kids?</li><li>Dealing with stretch with clothing and non-bendy electronics.</li><li>Some questions around the Sophy Wong and HackSpace "Wearable Tech Projects" book.</li><li>How did you get into wearable tech?</li><li>Do you have a favorite project?</li><li>Can I get into wearable tech if I don't know how to code or solder?</li><li>Are these projects accessible to people with limited budgets?</li><li>Making projects so you can reuse the expensive bits on multiple projects.</li></ul><p>Special Guest: Sophy Wong.</p><p><br></p><p>Links:</p><ul><li><a href="https://sophywong.com/">sophywong.com</a></li><li><a href="https://hackspace.raspberrypi.org/articles/wearable-tech-projects">Wearable Tech Projects book</a> — The wearable technology book</li><li><a href="https://sophywong.com/costumes">costumes</a> — The dress is on this page, as well as the Ghostbuster pack and costume.</li><li><a href="https://sophywong.com/spacesuit">spacesuit</a></li><li><a href="https://www.youtube.com/watch?v=T3iNIylOZF0&amp;t=4s">Music video with Sophy's space suit</a></li><li><a href="https://www.kobakant.at/DIY/">Kobakant tutorials</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 26 Oct 2020 07:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/136.mp3" length="21378057" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1780</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Wearable technology is not just smart consumer devices like watches and activity trackers. </p><p>Wearable tech also includes one off projects by designers, makers, and hackers and there are more and more people producing tutorials on how to get started. Wearable tech is also a great way to get both kids and adults excited about coding, electronics, and in general, engineering skills. </p><p>Sophy Wong is a designer who makes really cool stuff using code, technology, costuming, soldering, and even jewelry techniques to get tech onto the human body. </p><p>Sophy joins the show to answer my many questions about getting started safely with wearable tech.</p><p>Some of the questions and topics:</p><ul><li>Can I wash my clothing if I've added tech to it?</li><li>Is there any danger in wearing technology or building wearable tech?</li><li>Are there actual wires and cables conductive thread in the fabric and textiles of some wearable tech projects?</li><li>What's a good starter project? Especially if I want to do a wearable tech project with my kids?</li><li>Dealing with stretch with clothing and non-bendy electronics.</li><li>Some questions around the Sophy Wong and HackSpace "Wearable Tech Projects" book.</li><li>How did you get into wearable tech?</li><li>Do you have a favorite project?</li><li>Can I get into wearable tech if I don't know how to code or solder?</li><li>Are these projects accessible to people with limited budgets?</li><li>Making projects so you can reuse the expensive bits on multiple projects.</li></ul><p>Special Guest: Sophy Wong.</p><p><br></p><p>Links:</p><ul><li><a href="https://sophywong.com/">sophywong.com</a></li><li><a href="https://hackspace.raspberrypi.org/articles/wearable-tech-projects">Wearable Tech Projects book</a> — The wearable technology book</li><li><a href="https://sophywong.com/costumes">costumes</a> — The dress is on this page, as well as the Ghostbuster pack and costume.</li><li><a href="https://sophywong.com/spacesuit">spacesuit</a></li><li><a href="https://www.youtube.com/watch?v=T3iNIylOZF0&amp;t=4s">Music video with Sophy's space suit</a></li><li><a href="https://www.kobakant.at/DIY/">Kobakant tutorials</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>wearable tech</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>135: Speeding up Django Test Suites - Adam Johnson</title>
      <itunes:episode>135</itunes:episode>
      <podcast:episode>135</podcast:episode>
      <itunes:title>135: Speeding up Django Test Suites - Adam Johnson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">98b4eae8-b9af-44c1-a9f4-a654e7c6f1bc</guid>
      <link>https://pythontest.com/testandcode/episodes/135-speeding-up-django-test-suites-adam-johnson</link>
      <description>
        <![CDATA[<p>All test suites start fast. But as you grow your set of tests, each test adds a little bit of time to the suite. <br> What can you do about it to keep test suites fast? <br> Some things, like parallelization, are applicable to many domains. <br> What about, for instance, Django applications?<br> Well, Adam Johnson has thought about it a lot, and is here to tell us how we can speed up our Django test suites. </p><p>Topics include:</p><ul><li>parallelizing tests</li><li>moving from disk to memory</li><li>using fake data and factory functions</li><li>targeted mocking</li></ul><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://gumroad.com/l/suydt">Speed Up Your Django Tests</a> — the book by Adam Johnson</li><li><a href="https://en.wikipedia.org/wiki/Kukicha">Kukicha</a> — "or twig tea, ..., is a Japanese blend made of stems, stalks, and twigs."</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>All test suites start fast. But as you grow your set of tests, each test adds a little bit of time to the suite. <br> What can you do about it to keep test suites fast? <br> Some things, like parallelization, are applicable to many domains. <br> What about, for instance, Django applications?<br> Well, Adam Johnson has thought about it a lot, and is here to tell us how we can speed up our Django test suites. </p><p>Topics include:</p><ul><li>parallelizing tests</li><li>moving from disk to memory</li><li>using fake data and factory functions</li><li>targeted mocking</li></ul><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://gumroad.com/l/suydt">Speed Up Your Django Tests</a> — the book by Adam Johnson</li><li><a href="https://en.wikipedia.org/wiki/Kukicha">Kukicha</a> — "or twig tea, ..., is a Japanese blend made of stems, stalks, and twigs."</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Oct 2020 08:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/135.mp3" length="15642207" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1302</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>All test suites start fast. But as you grow your set of tests, each test adds a little bit of time to the suite. <br> What can you do about it to keep test suites fast? <br> Some things, like parallelization, are applicable to many domains. <br> What about, for instance, Django applications?<br> Well, Adam Johnson has thought about it a lot, and is here to tell us how we can speed up our Django test suites. </p><p>Topics include:</p><ul><li>parallelizing tests</li><li>moving from disk to memory</li><li>using fake data and factory functions</li><li>targeted mocking</li></ul><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://gumroad.com/l/suydt">Speed Up Your Django Tests</a> — the book by Adam Johnson</li><li><a href="https://en.wikipedia.org/wiki/Kukicha">Kukicha</a> — "or twig tea, ..., is a Japanese blend made of stems, stalks, and twigs."</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Django, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>134: Business Outcomes and Software Development - Benjamin Harding</title>
      <itunes:episode>134</itunes:episode>
      <podcast:episode>134</podcast:episode>
      <itunes:title>134: Business Outcomes and Software Development - Benjamin Harding</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ab6cdd4f-f27d-4d8d-898a-14e8cb8f77e1</guid>
      <link>https://pythontest.com/testandcode/episodes/134-business-outcomes-and-software-development-benjamin-harding</link>
      <description>
        <![CDATA[<p>Within software projects, there are lots of metrics we could measure. But which ones really matter. Instead of a list, Benjamin Harding shares with us a way of thinking about business outcomes that can help us with every day decision making. </p><p>We talk about:</p><ul><li>Business outcomes vs vanity metrics</li><li>As a developer, how do you keep business outcomes in mind</li><li>Thinking about customer value all the time</li><li>Communicating decisions and options in terms of costs and impact on business outcomes</li><li>Company culture and it's role in reinforcing a business outcome mindset</li><li>And even the role of team lead as impact multiplier </li></ul><p>I really enjoyed this conversation. But I admit that at first, I didn't realize how important this is on all software development. Metrics are front and center in a web app. But what about a service, or an embedded system with no telemetry. It still matters, maybe even more so. Little and big decisions developers face every day that have impact on costs and benefits with respect to customer value and business outcome, even if it's difficult to measure.</p><p>Special Guest: Benjamin Harding.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Within software projects, there are lots of metrics we could measure. But which ones really matter. Instead of a list, Benjamin Harding shares with us a way of thinking about business outcomes that can help us with every day decision making. </p><p>We talk about:</p><ul><li>Business outcomes vs vanity metrics</li><li>As a developer, how do you keep business outcomes in mind</li><li>Thinking about customer value all the time</li><li>Communicating decisions and options in terms of costs and impact on business outcomes</li><li>Company culture and it's role in reinforcing a business outcome mindset</li><li>And even the role of team lead as impact multiplier </li></ul><p>I really enjoyed this conversation. But I admit that at first, I didn't realize how important this is on all software development. Metrics are front and center in a web app. But what about a service, or an embedded system with no telemetry. It still matters, maybe even more so. Little and big decisions developers face every day that have impact on costs and benefits with respect to customer value and business outcome, even if it's difficult to measure.</p><p>Special Guest: Benjamin Harding.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 12 Oct 2020 09:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/134.mp3" length="21548300" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1794</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Within software projects, there are lots of metrics we could measure. But which ones really matter. Instead of a list, Benjamin Harding shares with us a way of thinking about business outcomes that can help us with every day decision making. </p><p>We talk about:</p><ul><li>Business outcomes vs vanity metrics</li><li>As a developer, how do you keep business outcomes in mind</li><li>Thinking about customer value all the time</li><li>Communicating decisions and options in terms of costs and impact on business outcomes</li><li>Company culture and it's role in reinforcing a business outcome mindset</li><li>And even the role of team lead as impact multiplier </li></ul><p>I really enjoyed this conversation. But I admit that at first, I didn't realize how important this is on all software development. Metrics are front and center in a web app. But what about a service, or an embedded system with no telemetry. It still matters, maybe even more so. Little and big decisions developers face every day that have impact on costs and benefits with respect to customer value and business outcome, even if it's difficult to measure.</p><p>Special Guest: Benjamin Harding.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software development, metrics, customer value</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>133: Major League Hacking - Jon Gottfried</title>
      <itunes:episode>133</itunes:episode>
      <podcast:episode>133</podcast:episode>
      <itunes:title>133: Major League Hacking - Jon Gottfried</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">71c7e7f6-6863-4164-a1de-35375e9e1f1e</guid>
      <link>https://pythontest.com/testandcode/episodes/133-major-league-hacking-jon-gottfried</link>
      <description>
        <![CDATA[<p>Hackathons have been spreading around the world; many at university campuses. Major League Hacking, MLH, has been encouraging and helping hackathons.</p><p>Hacking can be thought of as tinkering. Taking things apart and putting them back together as an interesting experience. There's always been some of this as part of software culture.</p><p>The people at Major League Hacking have taken this to a whole new level, bringing together Tech creators who enjoy playing around with and crating new technology, on campuses, and now in virtual spaces, all over the world.</p><p>Jonathon Gottfried, one of the cofounders of Major League Hacking, joins the show to talk about:</p><ul><li>hacker meetups and events</li><li>hackathons</li><li>what it's like to go to a hackathon</li><li>how to help out with hackathons as an experienced engineer, even virtually as a mentor</li><li>hackathons continuing virtually during the pandemic</li><li>internships and fellowships on open source projects to help students gain experience, even during the pandemic</li><li>MLH approach to internships, giving interns a support group, including peers, mentors, and project maintainers</li><li>and MLH itself</li></ul><p>Special Guest: Jon Gottfried.</p><p><br></p><p>Links:</p><ul><li><a href="https://mlh.io/">Major League Hacking</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Hackathons have been spreading around the world; many at university campuses. Major League Hacking, MLH, has been encouraging and helping hackathons.</p><p>Hacking can be thought of as tinkering. Taking things apart and putting them back together as an interesting experience. There's always been some of this as part of software culture.</p><p>The people at Major League Hacking have taken this to a whole new level, bringing together Tech creators who enjoy playing around with and crating new technology, on campuses, and now in virtual spaces, all over the world.</p><p>Jonathon Gottfried, one of the cofounders of Major League Hacking, joins the show to talk about:</p><ul><li>hacker meetups and events</li><li>hackathons</li><li>what it's like to go to a hackathon</li><li>how to help out with hackathons as an experienced engineer, even virtually as a mentor</li><li>hackathons continuing virtually during the pandemic</li><li>internships and fellowships on open source projects to help students gain experience, even during the pandemic</li><li>MLH approach to internships, giving interns a support group, including peers, mentors, and project maintainers</li><li>and MLH itself</li></ul><p>Special Guest: Jon Gottfried.</p><p><br></p><p>Links:</p><ul><li><a href="https://mlh.io/">Major League Hacking</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 05 Oct 2020 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/133.mp3" length="19443641" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1618</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Hackathons have been spreading around the world; many at university campuses. Major League Hacking, MLH, has been encouraging and helping hackathons.</p><p>Hacking can be thought of as tinkering. Taking things apart and putting them back together as an interesting experience. There's always been some of this as part of software culture.</p><p>The people at Major League Hacking have taken this to a whole new level, bringing together Tech creators who enjoy playing around with and crating new technology, on campuses, and now in virtual spaces, all over the world.</p><p>Jonathon Gottfried, one of the cofounders of Major League Hacking, joins the show to talk about:</p><ul><li>hacker meetups and events</li><li>hackathons</li><li>what it's like to go to a hackathon</li><li>how to help out with hackathons as an experienced engineer, even virtually as a mentor</li><li>hackathons continuing virtually during the pandemic</li><li>internships and fellowships on open source projects to help students gain experience, even during the pandemic</li><li>MLH approach to internships, giving interns a support group, including peers, mentors, and project maintainers</li><li>and MLH itself</li></ul><p>Special Guest: Jon Gottfried.</p><p><br></p><p>Links:</p><ul><li><a href="https://mlh.io/">Major League Hacking</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>hacking, hackathon</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>132: mocking in Python - Anna-Lena Popkes</title>
      <itunes:episode>132</itunes:episode>
      <podcast:episode>132</podcast:episode>
      <itunes:title>132: mocking in Python - Anna-Lena Popkes</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">07126b2d-6146-4912-a3cb-091d6cc757cc</guid>
      <link>https://pythontest.com/testandcode/episodes/132-mocking-in-python-anna-lena-popkes</link>
      <description>
        <![CDATA[<p>Using mock objects during testing in Python.</p><p>Anna-Lena joins the podcast to teach us about mocks and using unittest.mock objects during testing. </p><p>We discuss:</p><ul><li>the different styles of using mocks</li><li>pros and cons of mocks</li><li>dependency injection</li><li>adapter pattern</li><li>mock hell</li><li>magical universe</li><li>and much more</li></ul><p>Special Guest: Anna-Lena Popkes.</p><p><br></p><p>Links:</p><ul><li><a href="http://alpopkes.com/">Personal webpage of Anna-Lena Popkes</a></li><li><a href="https://github.com/zotroneneis/magical_universe">Magical Universe</a> — Awesome Python features explained using the world of magic</li><li><a href="https://pythontest.com/testandcode/102">Test &amp; Code 102: Cosmic Python, TDD, testing and external dependencies </a>— The episode where Harry Percival discusses mocking.</li><li><a href="https://www.youtube.com/watch?v=rk-f3B-eMkI">Talk: Harry Percival - Stop Using Mocks (for a while) - YouTube</a> — Talk: Harry Percival - Stop Using Mocks (for a while)</li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock </a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="https://www.youtube.com/watch?v=Ldlz4V-UCFw">Mock Hell Talk (45 min version) Edwin Jung - PyCon 2019 </a></li><li><a href="https://www.youtube.com/watch?v=CdKaZ7boiZ4">Mock Hell Talk (30 min version) - Edwin Jung - PyConDE </a></li><li><a href="https://pycon.ee/">PyCon Estonia</a></li><li><a href="https://ki-macht-schule.de/">KI macht Schule!</a></li><li><a href="https://talkpython.fm/episodes/show/186/100-days-of-python-in-a-magical-universe">Talk Python #186 : 100 Days of Python in a Magical Universe</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Using mock objects during testing in Python.</p><p>Anna-Lena joins the podcast to teach us about mocks and using unittest.mock objects during testing. </p><p>We discuss:</p><ul><li>the different styles of using mocks</li><li>pros and cons of mocks</li><li>dependency injection</li><li>adapter pattern</li><li>mock hell</li><li>magical universe</li><li>and much more</li></ul><p>Special Guest: Anna-Lena Popkes.</p><p><br></p><p>Links:</p><ul><li><a href="http://alpopkes.com/">Personal webpage of Anna-Lena Popkes</a></li><li><a href="https://github.com/zotroneneis/magical_universe">Magical Universe</a> — Awesome Python features explained using the world of magic</li><li><a href="https://pythontest.com/testandcode/102">Test &amp; Code 102: Cosmic Python, TDD, testing and external dependencies </a>— The episode where Harry Percival discusses mocking.</li><li><a href="https://www.youtube.com/watch?v=rk-f3B-eMkI">Talk: Harry Percival - Stop Using Mocks (for a while) - YouTube</a> — Talk: Harry Percival - Stop Using Mocks (for a while)</li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock </a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="https://www.youtube.com/watch?v=Ldlz4V-UCFw">Mock Hell Talk (45 min version) Edwin Jung - PyCon 2019 </a></li><li><a href="https://www.youtube.com/watch?v=CdKaZ7boiZ4">Mock Hell Talk (30 min version) - Edwin Jung - PyConDE </a></li><li><a href="https://pycon.ee/">PyCon Estonia</a></li><li><a href="https://ki-macht-schule.de/">KI macht Schule!</a></li><li><a href="https://talkpython.fm/episodes/show/186/100-days-of-python-in-a-magical-universe">Talk Python #186 : 100 Days of Python in a Magical Universe</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 28 Sep 2020 07:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/132.mp3" length="27488206" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2289</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Using mock objects during testing in Python.</p><p>Anna-Lena joins the podcast to teach us about mocks and using unittest.mock objects during testing. </p><p>We discuss:</p><ul><li>the different styles of using mocks</li><li>pros and cons of mocks</li><li>dependency injection</li><li>adapter pattern</li><li>mock hell</li><li>magical universe</li><li>and much more</li></ul><p>Special Guest: Anna-Lena Popkes.</p><p><br></p><p>Links:</p><ul><li><a href="http://alpopkes.com/">Personal webpage of Anna-Lena Popkes</a></li><li><a href="https://github.com/zotroneneis/magical_universe">Magical Universe</a> — Awesome Python features explained using the world of magic</li><li><a href="https://pythontest.com/testandcode/102">Test &amp; Code 102: Cosmic Python, TDD, testing and external dependencies </a>— The episode where Harry Percival discusses mocking.</li><li><a href="https://www.youtube.com/watch?v=rk-f3B-eMkI">Talk: Harry Percival - Stop Using Mocks (for a while) - YouTube</a> — Talk: Harry Percival - Stop Using Mocks (for a while)</li><li><a href="https://docs.python.org/3/library/unittest.mock.html">unittest.mock </a></li><li><a href="https://docs.python.org/3/library/unittest.mock.html#auto-speccing">Autospeccing</a></li><li><a href="https://www.youtube.com/watch?v=Ldlz4V-UCFw">Mock Hell Talk (45 min version) Edwin Jung - PyCon 2019 </a></li><li><a href="https://www.youtube.com/watch?v=CdKaZ7boiZ4">Mock Hell Talk (30 min version) - Edwin Jung - PyConDE </a></li><li><a href="https://pycon.ee/">PyCon Estonia</a></li><li><a href="https://ki-macht-schule.de/">KI macht Schule!</a></li><li><a href="https://talkpython.fm/episodes/show/186/100-days-of-python-in-a-magical-universe">Talk Python #186 : 100 Days of Python in a Magical Universe</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, mock</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>131: Test Smarter, Not Harder</title>
      <itunes:episode>131</itunes:episode>
      <podcast:episode>131</podcast:episode>
      <itunes:title>131: Test Smarter, Not Harder</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ed88dd00-d46f-40e1-8c4c-2b673ebd811d</guid>
      <link>https://pythontest.com/testandcode/episodes/131-test-smarter-not-harder</link>
      <description>
        <![CDATA[<p>Some people avoid writing tests. Some drudge through it painfully.<br> There is a better way.<br> In this episode, I'm going to share some advice from Luke Plant on how to <a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">"Test Smarter, Not Harder"</a>.</p><p><br></p><p>Links:</p><ul><li><a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">Test smarter, not harder - lukeplant.me.uk</a> — The original article by Luke</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Some people avoid writing tests. Some drudge through it painfully.<br> There is a better way.<br> In this episode, I'm going to share some advice from Luke Plant on how to <a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">"Test Smarter, Not Harder"</a>.</p><p><br></p><p>Links:</p><ul><li><a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">Test smarter, not harder - lukeplant.me.uk</a> — The original article by Luke</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 21 Sep 2020 05:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/131.mp3" length="5416814" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>450</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Some people avoid writing tests. Some drudge through it painfully.<br> There is a better way.<br> In this episode, I'm going to share some advice from Luke Plant on how to <a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">"Test Smarter, Not Harder"</a>.</p><p><br></p><p>Links:</p><ul><li><a href="https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/">Test smarter, not harder - lukeplant.me.uk</a> — The original article by Luke</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>130: virtualenv activation prompt consistency across shells - an open source dev and test adventure - Brian Skinn</title>
      <itunes:episode>130</itunes:episode>
      <podcast:episode>130</podcast:episode>
      <itunes:title>130: virtualenv activation prompt consistency across shells - an open source dev and test adventure - Brian Skinn</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5e440586-2878-4066-bcc4-d2a1cace2184</guid>
      <link>https://pythontest.com/testandcode/episodes/130-virtualenv-activation-prompt-consistency-across-shells-an-open-source-dev-and-test-adventure-brian-skinn</link>
      <description>
        <![CDATA[<p>virtualenv supports six shells: bash, csh, fish, xonsh, cmd, posh. Each handles prompts slightly differently. Although the virtualenv custom prompt behavior should be the same across shells, Brian Skinn noticed inconsistencies. He set out to fix those inconsistencies. That was the start of an adventure in open source collaboration, shell prompt internals, difficult test problems, and continuous integration quirks. </p><p>Brian Skinn initially noticed that on Windows cmd, a space was added between a prefix defined by --prompt and the rest of the prompt, whereas on bash no space was added.</p><p>For reference, there were/are three nominal virtualenv prompt modification behaviors, all of which apply to the prompt changes that are made at the time of virtualenv activation:</p><ol><li>If the environment variable VIRTUAL_ENV_DISABLE_PROMPT is defined and non-empty at activation time, do not modify the prompt at all. Otherwise:</li><li> If the --prompt argument was supplied at creation time, use that argument as the prefix to apply to the prompt; or,</li><li>If the --prompt argument was not supplied at creation time, use the default prefix of "() " as the prefix (the environment folder name surrounded by parentheses, and with a trailing space after the last paren.</li></ol><p>Special Guest: Brian Skinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://virtualenv.pypa.io/en/latest/">virtualenv</a></li><li><a href="https://github.com/pypa/virtualenv/issues/1168">Initial issue that started the adventure</a></li><li><a href="https://github.com/pypa/virtualenv/pull/1330">final PR</a></li><li><a href="https://github.com/bskinn/pent">pent: pent Extracts Numerical Text -- Mini-language driven parser for structured numerical data</a></li><li><a href="https://www.youtube.com/watch?v=sRwHWPDJBnk&amp;t=1050">Lightening talk on pent</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>virtualenv supports six shells: bash, csh, fish, xonsh, cmd, posh. Each handles prompts slightly differently. Although the virtualenv custom prompt behavior should be the same across shells, Brian Skinn noticed inconsistencies. He set out to fix those inconsistencies. That was the start of an adventure in open source collaboration, shell prompt internals, difficult test problems, and continuous integration quirks. </p><p>Brian Skinn initially noticed that on Windows cmd, a space was added between a prefix defined by --prompt and the rest of the prompt, whereas on bash no space was added.</p><p>For reference, there were/are three nominal virtualenv prompt modification behaviors, all of which apply to the prompt changes that are made at the time of virtualenv activation:</p><ol><li>If the environment variable VIRTUAL_ENV_DISABLE_PROMPT is defined and non-empty at activation time, do not modify the prompt at all. Otherwise:</li><li> If the --prompt argument was supplied at creation time, use that argument as the prefix to apply to the prompt; or,</li><li>If the --prompt argument was not supplied at creation time, use the default prefix of "() " as the prefix (the environment folder name surrounded by parentheses, and with a trailing space after the last paren.</li></ol><p>Special Guest: Brian Skinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://virtualenv.pypa.io/en/latest/">virtualenv</a></li><li><a href="https://github.com/pypa/virtualenv/issues/1168">Initial issue that started the adventure</a></li><li><a href="https://github.com/pypa/virtualenv/pull/1330">final PR</a></li><li><a href="https://github.com/bskinn/pent">pent: pent Extracts Numerical Text -- Mini-language driven parser for structured numerical data</a></li><li><a href="https://www.youtube.com/watch?v=sRwHWPDJBnk&amp;t=1050">Lightening talk on pent</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 13 Sep 2020 09:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/130.mp3" length="24183370" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2013</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>virtualenv supports six shells: bash, csh, fish, xonsh, cmd, posh. Each handles prompts slightly differently. Although the virtualenv custom prompt behavior should be the same across shells, Brian Skinn noticed inconsistencies. He set out to fix those inconsistencies. That was the start of an adventure in open source collaboration, shell prompt internals, difficult test problems, and continuous integration quirks. </p><p>Brian Skinn initially noticed that on Windows cmd, a space was added between a prefix defined by --prompt and the rest of the prompt, whereas on bash no space was added.</p><p>For reference, there were/are three nominal virtualenv prompt modification behaviors, all of which apply to the prompt changes that are made at the time of virtualenv activation:</p><ol><li>If the environment variable VIRTUAL_ENV_DISABLE_PROMPT is defined and non-empty at activation time, do not modify the prompt at all. Otherwise:</li><li> If the --prompt argument was supplied at creation time, use that argument as the prefix to apply to the prompt; or,</li><li>If the --prompt argument was not supplied at creation time, use the default prefix of "() " as the prefix (the environment folder name surrounded by parentheses, and with a trailing space after the last paren.</li></ol><p>Special Guest: Brian Skinn.</p><p><br></p><p>Links:</p><ul><li><a href="https://virtualenv.pypa.io/en/latest/">virtualenv</a></li><li><a href="https://github.com/pypa/virtualenv/issues/1168">Initial issue that started the adventure</a></li><li><a href="https://github.com/pypa/virtualenv/pull/1330">final PR</a></li><li><a href="https://github.com/bskinn/pent">pent: pent Extracts Numerical Text -- Mini-language driven parser for structured numerical data</a></li><li><a href="https://www.youtube.com/watch?v=sRwHWPDJBnk&amp;t=1050">Lightening talk on pent</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>virtualenv, pytest, software testing, Python, continuous integration, open source</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>129: How to Test Anything - David Lord</title>
      <itunes:episode>129</itunes:episode>
      <podcast:episode>129</podcast:episode>
      <itunes:title>129: How to Test Anything - David Lord</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">23da8ab1-8636-48b6-8dde-30fee07ee8a1</guid>
      <link>https://pythontest.com/testandcode/episodes/129-how-to-test-anything-david-lord</link>
      <description>
        <![CDATA[<p>I asked people on twitter to fill in "How do I test _____?" to find out what people want to know how to test.<br> Lots of responses. David Lord agreed to answer them with me.<br> In the process, we come up with lots of great general advice on how to test just about anything.</p><p>Specific Questions people asked:</p><ul><li>What makes a good test?</li><li>How do you test web app performance?</li><li>How do you test cookie cutter templates?</li><li>How do I test my test framework? </li><li>How do I test permission management?</li><li>How do I test SQLAlchemy models and pydantic schemas in a FastAPI app?</li><li>How do I test warehouse ETL code?</li><li>How do I test and mock GPIO pins on hardware for code running MicroPython on a device?</li><li>How do I test PyQt apps?</li><li>How do I test web scrapers?</li><li>Is it the best practice to put static html in your test directory or just snippets stored in string variables?</li><li>What's the best way to to test server client API contracts?</li><li>How do I test a monitoring tool?</li></ul><p>We also talk about:</p><ul><li>What is the Flask testing philosophy?</li><li>What do Flask tests look like?</li><li>Flask and Pallets using pytest</li><li>Code coverage </li></ul><p>Some of the resulting testing strategies:</p><ul><li>Set up some preconditions. Run the function. Get the result.</li><li>Don't test external services.</li><li>Do test external service failures.</li><li>Don't test the frameworks you are using.</li><li>Do test your use of a framework.</li><li>Use open source projects to learn how something similar to your project tests things.</li><li>Focus on your code.</li><li>Focus on testing your new code. </li><li>Try to architect your application such that actual GUI testing is minimal.</li><li>Split up a large problem into smaller parts that are easier to test.</li><li>Nail down as many parts as you can.</li></ul><p>Special Guest: David Lord.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I asked people on twitter to fill in "How do I test _____?" to find out what people want to know how to test.<br> Lots of responses. David Lord agreed to answer them with me.<br> In the process, we come up with lots of great general advice on how to test just about anything.</p><p>Specific Questions people asked:</p><ul><li>What makes a good test?</li><li>How do you test web app performance?</li><li>How do you test cookie cutter templates?</li><li>How do I test my test framework? </li><li>How do I test permission management?</li><li>How do I test SQLAlchemy models and pydantic schemas in a FastAPI app?</li><li>How do I test warehouse ETL code?</li><li>How do I test and mock GPIO pins on hardware for code running MicroPython on a device?</li><li>How do I test PyQt apps?</li><li>How do I test web scrapers?</li><li>Is it the best practice to put static html in your test directory or just snippets stored in string variables?</li><li>What's the best way to to test server client API contracts?</li><li>How do I test a monitoring tool?</li></ul><p>We also talk about:</p><ul><li>What is the Flask testing philosophy?</li><li>What do Flask tests look like?</li><li>Flask and Pallets using pytest</li><li>Code coverage </li></ul><p>Some of the resulting testing strategies:</p><ul><li>Set up some preconditions. Run the function. Get the result.</li><li>Don't test external services.</li><li>Do test external service failures.</li><li>Don't test the frameworks you are using.</li><li>Do test your use of a framework.</li><li>Use open source projects to learn how something similar to your project tests things.</li><li>Focus on your code.</li><li>Focus on testing your new code. </li><li>Try to architect your application such that actual GUI testing is minimal.</li><li>Split up a large problem into smaller parts that are easier to test.</li><li>Nail down as many parts as you can.</li></ul><p>Special Guest: David Lord.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 07 Sep 2020 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/129.mp3" length="29493153" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2456</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I asked people on twitter to fill in "How do I test _____?" to find out what people want to know how to test.<br> Lots of responses. David Lord agreed to answer them with me.<br> In the process, we come up with lots of great general advice on how to test just about anything.</p><p>Specific Questions people asked:</p><ul><li>What makes a good test?</li><li>How do you test web app performance?</li><li>How do you test cookie cutter templates?</li><li>How do I test my test framework? </li><li>How do I test permission management?</li><li>How do I test SQLAlchemy models and pydantic schemas in a FastAPI app?</li><li>How do I test warehouse ETL code?</li><li>How do I test and mock GPIO pins on hardware for code running MicroPython on a device?</li><li>How do I test PyQt apps?</li><li>How do I test web scrapers?</li><li>Is it the best practice to put static html in your test directory or just snippets stored in string variables?</li><li>What's the best way to to test server client API contracts?</li><li>How do I test a monitoring tool?</li></ul><p>We also talk about:</p><ul><li>What is the Flask testing philosophy?</li><li>What do Flask tests look like?</li><li>Flask and Pallets using pytest</li><li>Code coverage </li></ul><p>Some of the resulting testing strategies:</p><ul><li>Set up some preconditions. Run the function. Get the result.</li><li>Don't test external services.</li><li>Do test external service failures.</li><li>Don't test the frameworks you are using.</li><li>Do test your use of a framework.</li><li>Use open source projects to learn how something similar to your project tests things.</li><li>Focus on your code.</li><li>Focus on testing your new code. </li><li>Try to architect your application such that actual GUI testing is minimal.</li><li>Split up a large problem into smaller parts that are easier to test.</li><li>Nail down as many parts as you can.</li></ul><p>Special Guest: David Lord.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>128: pytest-randomly - Adam Johnson</title>
      <itunes:episode>128</itunes:episode>
      <podcast:episode>128</podcast:episode>
      <itunes:title>128: pytest-randomly - Adam Johnson</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">90ce0ac9-d5be-4d47-8942-0ac272d2f00b</guid>
      <link>https://pythontest.com/testandcode/episodes/128-pytest-randomly-adam-johnson</link>
      <description>
        <![CDATA[<p>Software tests should be order independent. That means you should be able to run them in any order or run them in isolation and get the same result.</p><p>However, system state often gets in the way and order dependence can creep into a test suite.<br> One way to fight against order dependence is to randomize test order, and with pytest, we recommend the plugin pytest-randomly to do that for you.</p><p>The developer that started pytest-randomly and continues to support it is Adam Johnson, who joins us today to discuss pytest-randomly and another plugin he also wrote, called pytest-reverse.</p><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly: pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/adamchainz/pytest-reverse">pytest-reverse: pytest plugin to reverse test order.</a></li><li><a href="https://dl.acm.org/doi/10.1145/2610384.2610404">Empirically revisiting the test independence assumption</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li><li><a href="https://numpy.org/">NumPy</a></li><li><a href="https://www.hyrumslaw.com/">Hyrum's Law</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Software tests should be order independent. That means you should be able to run them in any order or run them in isolation and get the same result.</p><p>However, system state often gets in the way and order dependence can creep into a test suite.<br> One way to fight against order dependence is to randomize test order, and with pytest, we recommend the plugin pytest-randomly to do that for you.</p><p>The developer that started pytest-randomly and continues to support it is Adam Johnson, who joins us today to discuss pytest-randomly and another plugin he also wrote, called pytest-reverse.</p><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly: pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/adamchainz/pytest-reverse">pytest-reverse: pytest plugin to reverse test order.</a></li><li><a href="https://dl.acm.org/doi/10.1145/2610384.2610404">Empirically revisiting the test independence assumption</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li><li><a href="https://numpy.org/">NumPy</a></li><li><a href="https://www.hyrumslaw.com/">Hyrum's Law</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 28 Aug 2020 10:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/128.mp3" length="11017891" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>916</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Software tests should be order independent. That means you should be able to run them in any order or run them in isolation and get the same result.</p><p>However, system state often gets in the way and order dependence can creep into a test suite.<br> One way to fight against order dependence is to randomize test order, and with pytest, we recommend the plugin pytest-randomly to do that for you.</p><p>The developer that started pytest-randomly and continues to support it is Adam Johnson, who joins us today to discuss pytest-randomly and another plugin he also wrote, called pytest-reverse.</p><p>Special Guest: Adam Johnson.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly: pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/adamchainz/pytest-reverse">pytest-reverse: pytest plugin to reverse test order.</a></li><li><a href="https://dl.acm.org/doi/10.1145/2610384.2610404">Empirically revisiting the test independence assumption</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy </a></li><li><a href="https://faker.readthedocs.io/en/master/">Faker</a></li><li><a href="https://numpy.org/">NumPy</a></li><li><a href="https://www.hyrumslaw.com/">Hyrum's Law</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, Python, pytest-randomly, pytest plugins</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>127: WFH, WTF? - Tips and Tricks for Working From Home - Reuven Lerner &amp; Julian Sequeira</title>
      <itunes:episode>127</itunes:episode>
      <podcast:episode>127</podcast:episode>
      <itunes:title>127: WFH, WTF? - Tips and Tricks for Working From Home - Reuven Lerner &amp; Julian Sequeira</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">60591fb2-1f53-4cf9-bb8e-471917ba9358</guid>
      <link>https://pythontest.com/testandcode/episodes/127-wfh-wtf-tips-and-tricks-for-working-from-home-reuven-lerner-julian-sequeira</link>
      <description>
        <![CDATA[<p>Many people have been working from home now that are not used to working from home.<br> Or at least are working from home more than they ever did before. That's definitely true for me.<br> Even though I've been working from home since March, I wanted some tips from people who have been doing it longer.</p><p>Julian Sequeira, of PyBites fame, has been working from home for about a year.<br> Reuven Lerner, an amazing Python trainer, has been working from home for much longer.</p><p>We originally had a big list of WFH topics. But we had so much fun with the tips and tricks part, that that's pretty much the whole episode.</p><p>But there's lots of great tips and tricks, so I'm glad we focused on that.</p><p>Special Guests: Julian Sequeira and Reuven Lerner.</p><p><br></p><p>Links:</p><ul><li><a href="https://pybit.es/">PyBites</a> — Julian's site for teaching Python</li><li><a href="https://lerner.co.il/">Teaching Python and data science around the world — Reuven Lerner</a></li><li><a href="https://en.wikipedia.org/wiki/Bonbon">Bonbon - Wikipedia</a></li><li><a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54">Test &amp; Code Mailing List</a> — Join for your chance to win a free course from Talk Python Training. One course given away every week for 6 weeks.</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Many people have been working from home now that are not used to working from home.<br> Or at least are working from home more than they ever did before. That's definitely true for me.<br> Even though I've been working from home since March, I wanted some tips from people who have been doing it longer.</p><p>Julian Sequeira, of PyBites fame, has been working from home for about a year.<br> Reuven Lerner, an amazing Python trainer, has been working from home for much longer.</p><p>We originally had a big list of WFH topics. But we had so much fun with the tips and tricks part, that that's pretty much the whole episode.</p><p>But there's lots of great tips and tricks, so I'm glad we focused on that.</p><p>Special Guests: Julian Sequeira and Reuven Lerner.</p><p><br></p><p>Links:</p><ul><li><a href="https://pybit.es/">PyBites</a> — Julian's site for teaching Python</li><li><a href="https://lerner.co.il/">Teaching Python and data science around the world — Reuven Lerner</a></li><li><a href="https://en.wikipedia.org/wiki/Bonbon">Bonbon - Wikipedia</a></li><li><a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54">Test &amp; Code Mailing List</a> — Join for your chance to win a free course from Talk Python Training. One course given away every week for 6 weeks.</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 24 Aug 2020 00:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/127.mp3" length="28992906" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2414</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Many people have been working from home now that are not used to working from home.<br> Or at least are working from home more than they ever did before. That's definitely true for me.<br> Even though I've been working from home since March, I wanted some tips from people who have been doing it longer.</p><p>Julian Sequeira, of PyBites fame, has been working from home for about a year.<br> Reuven Lerner, an amazing Python trainer, has been working from home for much longer.</p><p>We originally had a big list of WFH topics. But we had so much fun with the tips and tricks part, that that's pretty much the whole episode.</p><p>But there's lots of great tips and tricks, so I'm glad we focused on that.</p><p>Special Guests: Julian Sequeira and Reuven Lerner.</p><p><br></p><p>Links:</p><ul><li><a href="https://pybit.es/">PyBites</a> — Julian's site for teaching Python</li><li><a href="https://lerner.co.il/">Teaching Python and data science around the world — Reuven Lerner</a></li><li><a href="https://en.wikipedia.org/wiki/Bonbon">Bonbon - Wikipedia</a></li><li><a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54">Test &amp; Code Mailing List</a> — Join for your chance to win a free course from Talk Python Training. One course given away every week for 6 weeks.</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>WFH, working from home</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>126: Data Science and Software Engineering Practices ( and Fizz Buzz ) - Joel Grus</title>
      <itunes:episode>126</itunes:episode>
      <podcast:episode>126</podcast:episode>
      <itunes:title>126: Data Science and Software Engineering Practices ( and Fizz Buzz ) - Joel Grus</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0e98ad32-c653-43cf-ac01-8fe916775515</guid>
      <link>https://pythontest.com/testandcode/episodes/126-data-science-and-software-engineering-practices-and-fizz-buzz-joel-grus</link>
      <description>
        <![CDATA[<p>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.</p><p>Joel joins the show this week to talk about data science, software engineering, and even Fizz Buzz.</p><p>Topics include:</p><ul><li>Software Engineering practices and data science</li><li>Difficulties with Jupyter notebooks</li><li>Code reviews on experiment code</li><li>Unit tests on experiment code</li><li>Finding bugs before doing experiments</li><li>Tests for data pipelines</li><li>Tests for deep learning models </li><li>Showing researchers the value of tests by showing the bugs found that wouldn't have been found without them.</li><li>"Data Science from Scratch" book <ul><li>Showing testing during teaching Data Science</li></ul></li><li>"Ten Essays on Fizz Buzz" book <ul><li>Meditations on Python, mathematics, science, engineerign and design</li><li>Testing Fizz Buzz</li><li>Different algorithms and solutions to an age old interview question.</li></ul></li><li>If not Fizz Buzz, what makes a decent coding interview question.</li><li>pytest</li><li>hypothesis</li><li>Math requirements for data science</li></ul><p>Special Guest: Joel Grus.</p><p><br></p><p>Links:</p><ul><li><a href="https://leanpub.com/fizzbuzz/c/test-and-code">Ten Essays on Fizz Buzz (with discount) by Joel Grus</a></li><li><a href="https://www.youtube.com/watch?v=7jiPeIFXb6U">I don't like notebooks. (presentation)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p><p>Joel joins the show this week to talk about data science, software engineering, and even Fizz Buzz.</p><p>Topics include:</p><ul><li>Software Engineering practices and data science</li><li>Difficulties with Jupyter notebooks</li><li>Code reviews on experiment code</li><li>Unit tests on experiment code</li><li>Finding bugs before doing experiments</li><li>Tests for data pipelines</li><li>Tests for deep learning models </li><li>Showing researchers the value of tests by showing the bugs found that wouldn't have been found without them.</li><li>"Data Science from Scratch" book <ul><li>Showing testing during teaching Data Science</li></ul></li><li>"Ten Essays on Fizz Buzz" book <ul><li>Meditations on Python, mathematics, science, engineerign and design</li><li>Testing Fizz Buzz</li><li>Different algorithms and solutions to an age old interview question.</li></ul></li><li>If not Fizz Buzz, what makes a decent coding interview question.</li><li>pytest</li><li>hypothesis</li><li>Math requirements for data science</li></ul><p>Special Guest: Joel Grus.</p><p><br></p><p>Links:</p><ul><li><a href="https://leanpub.com/fizzbuzz/c/test-and-code">Ten Essays on Fizz Buzz (with discount) by Joel Grus</a></li><li><a href="https://www.youtube.com/watch?v=7jiPeIFXb6U">I don't like notebooks. (presentation)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 16 Aug 2020 17:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/126.mp3" length="22702196" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1890</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p><p>Joel joins the show this week to talk about data science, software engineering, and even Fizz Buzz.</p><p>Topics include:</p><ul><li>Software Engineering practices and data science</li><li>Difficulties with Jupyter notebooks</li><li>Code reviews on experiment code</li><li>Unit tests on experiment code</li><li>Finding bugs before doing experiments</li><li>Tests for data pipelines</li><li>Tests for deep learning models </li><li>Showing researchers the value of tests by showing the bugs found that wouldn't have been found without them.</li><li>"Data Science from Scratch" book <ul><li>Showing testing during teaching Data Science</li></ul></li><li>"Ten Essays on Fizz Buzz" book <ul><li>Meditations on Python, mathematics, science, engineerign and design</li><li>Testing Fizz Buzz</li><li>Different algorithms and solutions to an age old interview question.</li></ul></li><li>If not Fizz Buzz, what makes a decent coding interview question.</li><li>pytest</li><li>hypothesis</li><li>Math requirements for data science</li></ul><p>Special Guest: Joel Grus.</p><p><br></p><p>Links:</p><ul><li><a href="https://leanpub.com/fizzbuzz/c/test-and-code">Ten Essays on Fizz Buzz (with discount) by Joel Grus</a></li><li><a href="https://www.youtube.com/watch?v=7jiPeIFXb6U">I don't like notebooks. (presentation)</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>data science, fizz buzz, software engineering, Python, software testing, pytest, hypothesis</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>125: pytest 6 - Anthony Sottile</title>
      <itunes:episode>125</itunes:episode>
      <podcast:episode>125</podcast:episode>
      <itunes:title>125: pytest 6 - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ee8479a8-0da9-4679-94c6-27674beeeb35</guid>
      <link>https://pythontest.com/testandcode/episodes/125-pytest-6-anthony-sottile</link>
      <description>
        <![CDATA[<p>pytest 6 is out. Specifically, 6.0.1, as of July 31.</p><p> And there's lots to be excited about.<br> Anthony Sottile joins the show to discuss features, improvements, documentation updates and more.</p><p><a href="https://docs.pytest.org/en/stable/changelog.html">Full release notes / changelog</a></p><p>Some of what we talk about:</p><ul><li>How to update (at least, how I do it) <ul><li>Run your test suites with 5.4.3 or whatever the last version you were using</li><li>Update to 6</li><li>Run again. Same output? Probably good.</li><li>If there are any warnings, maybe fix those.</li><li>You can also run with pytest -W error to turn warnings into errors.</li><li>Then find out all the cool stuff you can do now</li></ul></li><li>New Features <ul><li>pytest now supports pyproject.toml files for configuration. <ul><li>but remember, toml syntax is different than ini files. mostly quotes are needed </li></ul></li><li>pytest now includes inline type annotations and exposes them to user programs. <ul><li>Most of the user-facing API is covered, as well as internal code.</li></ul></li><li>New command-line flags --no-header and --no-summary</li><li>A warning is now shown when an unknown key is read from a config INI file. <ul><li>The --strict-config flag has been added to treat these warnings as errors.</li></ul></li><li>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.</li></ul></li><li>Improvements <ul><li>You can now pass output to things like less and head that close the pipe passed to them. <ul><li>thank you!!!</li></ul></li><li>Improved precision of test durations measurement. <ul><li>use --durations=10 -vv to capture and show durations</li></ul></li><li>Rich comparison for dataclasses and attrs-classes is now recursive.</li><li>pytest --version now displays just the pytest version, <ul><li>while pytest --version --version displays more verbose information including plugins. </li></ul></li><li>--junitxml now includes the exception cause in the message XML attribute for failures during setup and teardown.</li></ul></li><li>Improved Documentation <ul><li>Add a note about --strict and --strict-markers and the preference for the latter one.</li><li>Explain indirect parametrization and markers for fixtures.</li></ul></li><li>Bug Fixes</li><li>Deprecations</li><li>Trivial/Internal Changes</li><li>Breaking Changes you might need to care about before upgrading <ul><li>PytestDeprecationWarning are now errors by default. <ul><li>Check the <a href="https://docs.pytest.org/en/latest/deprecations.html">deprecations and removals</a> page if you are curious.</li></ul></li><li>-k and -m internals were rewritten to stop using eval(), this results in a few <em>slight</em> changes but overall makes them much more consistent</li><li>testdir.run().parseoutcomes() now always returns the parsed nouns in plural form. <ul><li>I'd say that's an improvement</li></ul></li></ul></li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/changelog.html">pytest Changelog / Release Notes</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html">Deprecations and Removals — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest 6 is out. Specifically, 6.0.1, as of July 31.</p><p> And there's lots to be excited about.<br> Anthony Sottile joins the show to discuss features, improvements, documentation updates and more.</p><p><a href="https://docs.pytest.org/en/stable/changelog.html">Full release notes / changelog</a></p><p>Some of what we talk about:</p><ul><li>How to update (at least, how I do it) <ul><li>Run your test suites with 5.4.3 or whatever the last version you were using</li><li>Update to 6</li><li>Run again. Same output? Probably good.</li><li>If there are any warnings, maybe fix those.</li><li>You can also run with pytest -W error to turn warnings into errors.</li><li>Then find out all the cool stuff you can do now</li></ul></li><li>New Features <ul><li>pytest now supports pyproject.toml files for configuration. <ul><li>but remember, toml syntax is different than ini files. mostly quotes are needed </li></ul></li><li>pytest now includes inline type annotations and exposes them to user programs. <ul><li>Most of the user-facing API is covered, as well as internal code.</li></ul></li><li>New command-line flags --no-header and --no-summary</li><li>A warning is now shown when an unknown key is read from a config INI file. <ul><li>The --strict-config flag has been added to treat these warnings as errors.</li></ul></li><li>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.</li></ul></li><li>Improvements <ul><li>You can now pass output to things like less and head that close the pipe passed to them. <ul><li>thank you!!!</li></ul></li><li>Improved precision of test durations measurement. <ul><li>use --durations=10 -vv to capture and show durations</li></ul></li><li>Rich comparison for dataclasses and attrs-classes is now recursive.</li><li>pytest --version now displays just the pytest version, <ul><li>while pytest --version --version displays more verbose information including plugins. </li></ul></li><li>--junitxml now includes the exception cause in the message XML attribute for failures during setup and teardown.</li></ul></li><li>Improved Documentation <ul><li>Add a note about --strict and --strict-markers and the preference for the latter one.</li><li>Explain indirect parametrization and markers for fixtures.</li></ul></li><li>Bug Fixes</li><li>Deprecations</li><li>Trivial/Internal Changes</li><li>Breaking Changes you might need to care about before upgrading <ul><li>PytestDeprecationWarning are now errors by default. <ul><li>Check the <a href="https://docs.pytest.org/en/latest/deprecations.html">deprecations and removals</a> page if you are curious.</li></ul></li><li>-k and -m internals were rewritten to stop using eval(), this results in a few <em>slight</em> changes but overall makes them much more consistent</li><li>testdir.run().parseoutcomes() now always returns the parsed nouns in plural form. <ul><li>I'd say that's an improvement</li></ul></li></ul></li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/changelog.html">pytest Changelog / Release Notes</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html">Deprecations and Removals — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 07 Aug 2020 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/125.mp3" length="42695223" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3556</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest 6 is out. Specifically, 6.0.1, as of July 31.</p><p> And there's lots to be excited about.<br> Anthony Sottile joins the show to discuss features, improvements, documentation updates and more.</p><p><a href="https://docs.pytest.org/en/stable/changelog.html">Full release notes / changelog</a></p><p>Some of what we talk about:</p><ul><li>How to update (at least, how I do it) <ul><li>Run your test suites with 5.4.3 or whatever the last version you were using</li><li>Update to 6</li><li>Run again. Same output? Probably good.</li><li>If there are any warnings, maybe fix those.</li><li>You can also run with pytest -W error to turn warnings into errors.</li><li>Then find out all the cool stuff you can do now</li></ul></li><li>New Features <ul><li>pytest now supports pyproject.toml files for configuration. <ul><li>but remember, toml syntax is different than ini files. mostly quotes are needed </li></ul></li><li>pytest now includes inline type annotations and exposes them to user programs. <ul><li>Most of the user-facing API is covered, as well as internal code.</li></ul></li><li>New command-line flags --no-header and --no-summary</li><li>A warning is now shown when an unknown key is read from a config INI file. <ul><li>The --strict-config flag has been added to treat these warnings as errors.</li></ul></li><li>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.</li></ul></li><li>Improvements <ul><li>You can now pass output to things like less and head that close the pipe passed to them. <ul><li>thank you!!!</li></ul></li><li>Improved precision of test durations measurement. <ul><li>use --durations=10 -vv to capture and show durations</li></ul></li><li>Rich comparison for dataclasses and attrs-classes is now recursive.</li><li>pytest --version now displays just the pytest version, <ul><li>while pytest --version --version displays more verbose information including plugins. </li></ul></li><li>--junitxml now includes the exception cause in the message XML attribute for failures during setup and teardown.</li></ul></li><li>Improved Documentation <ul><li>Add a note about --strict and --strict-markers and the preference for the latter one.</li><li>Explain indirect parametrization and markers for fixtures.</li></ul></li><li>Bug Fixes</li><li>Deprecations</li><li>Trivial/Internal Changes</li><li>Breaking Changes you might need to care about before upgrading <ul><li>PytestDeprecationWarning are now errors by default. <ul><li>Check the <a href="https://docs.pytest.org/en/latest/deprecations.html">deprecations and removals</a> page if you are curious.</li></ul></li><li>-k and -m internals were rewritten to stop using eval(), this results in a few <em>slight</em> changes but overall makes them much more consistent</li><li>testdir.run().parseoutcomes() now always returns the parsed nouns in plural form. <ul><li>I'd say that's an improvement</li></ul></li></ul></li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.pytest.org/en/stable/changelog.html">pytest Changelog / Release Notes</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html">Deprecations and Removals — pytest documentation</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>124: pip dependency resolver changes</title>
      <itunes:episode>124</itunes:episode>
      <podcast:episode>124</podcast:episode>
      <itunes:title>124: pip dependency resolver changes</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7ed45b09-239b-4eff-9147-a9a550bff99a</guid>
      <link>https://pythontest.com/testandcode/episodes/124-pip-dependency-resolver-changes</link>
      <description>
        <![CDATA[<p>pip is the package installer for Python. </p><p>Often, when you run pip, especially the first time in a new virtual environment, you will see something like:</p>WARNING: You are using pip version 20.1.1; however, version 20.2 is available.<p> You should consider upgrading via the 'python -m pip install --upgrade pip' command.</p><p>And you should. Because 20.2 has a new dependency resolver.</p><p>Get in the habit, until October, of replacing pip install with pip install --use-feature=2020-resolver.</p><p> This flag is new in the 20.2 release.</p><p>This new pip dependency resolver is the result of a lot of work.</p><p> 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. </p><p>We talk about: </p><ul><li>pip dependency resolver changes</li><li>user experience research and testing</li><li>crafting good error messages</li><li>efforts to improve the test suite</li><li>testing pip with pytest</li><li>some of the difficulties with testing pip</li><li>working with a team on a large project</li><li>working with a large code base</li><li>bringing new developers into a large project</li></ul><p>Special Guests: Bernard Tyers, Nicole Harris, Paul Moore, Pradyun Gedam, and Tzu-ping Chung.</p><p><br></p><p>Links:</p><ul><li><a href="https://pip.pypa.io/en/stable/news/">Changelog — pip 20.2 documentation</a> — Including --use-feature=2020-resolver</li><li><a href="https://github.com/pypa/pip">pypa/pip: The Python package installer</a> — github repo</li><li><a href="https://pip.pypa.io/en/stable/development/getting-started/#running-tests">testing pip - documentation</a></li><li><a href="https://pip.pypa.io/en/stable/">pip - The Python Package Installer — pip 20.2 documentation</a></li><li><a href="https://pip.pypa.io/en/stable/user_guide/#resolver-changes-2020">Changes to the pip dependency resolver in 20.2</a> — Changes to the pip dependency resolver in 20.2</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pip is the package installer for Python. </p><p>Often, when you run pip, especially the first time in a new virtual environment, you will see something like:</p>WARNING: You are using pip version 20.1.1; however, version 20.2 is available.<p> You should consider upgrading via the 'python -m pip install --upgrade pip' command.</p><p>And you should. Because 20.2 has a new dependency resolver.</p><p>Get in the habit, until October, of replacing pip install with pip install --use-feature=2020-resolver.</p><p> This flag is new in the 20.2 release.</p><p>This new pip dependency resolver is the result of a lot of work.</p><p> 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. </p><p>We talk about: </p><ul><li>pip dependency resolver changes</li><li>user experience research and testing</li><li>crafting good error messages</li><li>efforts to improve the test suite</li><li>testing pip with pytest</li><li>some of the difficulties with testing pip</li><li>working with a team on a large project</li><li>working with a large code base</li><li>bringing new developers into a large project</li></ul><p>Special Guests: Bernard Tyers, Nicole Harris, Paul Moore, Pradyun Gedam, and Tzu-ping Chung.</p><p><br></p><p>Links:</p><ul><li><a href="https://pip.pypa.io/en/stable/news/">Changelog — pip 20.2 documentation</a> — Including --use-feature=2020-resolver</li><li><a href="https://github.com/pypa/pip">pypa/pip: The Python package installer</a> — github repo</li><li><a href="https://pip.pypa.io/en/stable/development/getting-started/#running-tests">testing pip - documentation</a></li><li><a href="https://pip.pypa.io/en/stable/">pip - The Python Package Installer — pip 20.2 documentation</a></li><li><a href="https://pip.pypa.io/en/stable/user_guide/#resolver-changes-2020">Changes to the pip dependency resolver in 20.2</a> — Changes to the pip dependency resolver in 20.2</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 03 Aug 2020 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/124.mp3" length="30532616" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2543</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pip is the package installer for Python. </p><p>Often, when you run pip, especially the first time in a new virtual environment, you will see something like:</p>WARNING: You are using pip version 20.1.1; however, version 20.2 is available.<p> You should consider upgrading via the 'python -m pip install --upgrade pip' command.</p><p>And you should. Because 20.2 has a new dependency resolver.</p><p>Get in the habit, until October, of replacing pip install with pip install --use-feature=2020-resolver.</p><p> This flag is new in the 20.2 release.</p><p>This new pip dependency resolver is the result of a lot of work.</p><p> 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. </p><p>We talk about: </p><ul><li>pip dependency resolver changes</li><li>user experience research and testing</li><li>crafting good error messages</li><li>efforts to improve the test suite</li><li>testing pip with pytest</li><li>some of the difficulties with testing pip</li><li>working with a team on a large project</li><li>working with a large code base</li><li>bringing new developers into a large project</li></ul><p>Special Guests: Bernard Tyers, Nicole Harris, Paul Moore, Pradyun Gedam, and Tzu-ping Chung.</p><p><br></p><p>Links:</p><ul><li><a href="https://pip.pypa.io/en/stable/news/">Changelog — pip 20.2 documentation</a> — Including --use-feature=2020-resolver</li><li><a href="https://github.com/pypa/pip">pypa/pip: The Python package installer</a> — github repo</li><li><a href="https://pip.pypa.io/en/stable/development/getting-started/#running-tests">testing pip - documentation</a></li><li><a href="https://pip.pypa.io/en/stable/">pip - The Python Package Installer — pip 20.2 documentation</a></li><li><a href="https://pip.pypa.io/en/stable/user_guide/#resolver-changes-2020">Changes to the pip dependency resolver in 20.2</a> — Changes to the pip dependency resolver in 20.2</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, pip, dependency resolver</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>123: GitHub Actions - Tania Allard</title>
      <itunes:episode>123</itunes:episode>
      <podcast:episode>123</podcast:episode>
      <itunes:title>123: GitHub Actions - Tania Allard</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">69e07d40-ba97-4b07-ac27-4b02a99ec80b</guid>
      <link>https://pythontest.com/testandcode/episodes/123-github-actions-tania-allard</link>
      <description>
        <![CDATA[<p>Lots of Python projects are starting to use GitHub Actions for Continous Integration &amp; Deployment (CI/CD), as well as other workflows.</p><p>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.</p><p>Some of the topics covered:</p><ul><li>How to get started with GitHub Actions for a Python project?</li><li>What are workflow files?</li><li>Does it matter what the file name is called?</li><li>Can I have / Should I have more than one workflow?</li></ul><p>Special Guest: Tania Allard.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions">Using Python with GitHub Actions - GitHub Docs</a></li><li><a href="https://github.com/sdras/awesome-actions">awesome-actions</a> — A curated list of awesome actions to use on GitHub</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Lots of Python projects are starting to use GitHub Actions for Continous Integration &amp; Deployment (CI/CD), as well as other workflows.</p><p>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.</p><p>Some of the topics covered:</p><ul><li>How to get started with GitHub Actions for a Python project?</li><li>What are workflow files?</li><li>Does it matter what the file name is called?</li><li>Can I have / Should I have more than one workflow?</li></ul><p>Special Guest: Tania Allard.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions">Using Python with GitHub Actions - GitHub Docs</a></li><li><a href="https://github.com/sdras/awesome-actions">awesome-actions</a> — A curated list of awesome actions to use on GitHub</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 24 Jul 2020 13:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/123.mp3" length="15886697" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1322</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Lots of Python projects are starting to use GitHub Actions for Continous Integration &amp; Deployment (CI/CD), as well as other workflows.</p><p>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.</p><p>Some of the topics covered:</p><ul><li>How to get started with GitHub Actions for a Python project?</li><li>What are workflow files?</li><li>Does it matter what the file name is called?</li><li>Can I have / Should I have more than one workflow?</li></ul><p>Special Guest: Tania Allard.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions">Using Python with GitHub Actions - GitHub Docs</a></li><li><a href="https://github.com/sdras/awesome-actions">awesome-actions</a> — A curated list of awesome actions to use on GitHub</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>CI/CD, Continuous Integration, Continuous Deployment, GitHub Actions</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>122: Better Resumes for Software Engineers - Randall Kanna</title>
      <itunes:episode>122</itunes:episode>
      <podcast:episode>122</podcast:episode>
      <itunes:title>122: Better Resumes for Software Engineers - Randall Kanna</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">3878c840-b5bd-4a64-bc0e-eddb6ee38468</guid>
      <link>https://pythontest.com/testandcode/episodes/122-better-resumes-for-software-engineers-randall-kanna</link>
      <description>
        <![CDATA[<p>A great resume is key to landing a great software job.<br> There's no surprise there.<br> But so many people make mistakes on their resume that can very easily be fixed.</p><p>Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.</p><p>Special Guest: Randall Kanna.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/standout">The Standout Developer</a> — link includes discount</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A great resume is key to landing a great software job.<br> There's no surprise there.<br> But so many people make mistakes on their resume that can very easily be fixed.</p><p>Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.</p><p>Special Guest: Randall Kanna.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/standout">The Standout Developer</a> — link includes discount</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 16 Jul 2020 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/122.mp3" length="25256321" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2103</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A great resume is key to landing a great software job.<br> There's no surprise there.<br> But so many people make mistakes on their resume that can very easily be fixed.</p><p>Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.</p><p>Special Guest: Randall Kanna.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/standout">The Standout Developer</a> — link includes discount</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>resume, career</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>121: Industrial 3D Printing &amp; Python, Finite State Machines, and Simulating Hardware - Len Wanger</title>
      <itunes:episode>121</itunes:episode>
      <podcast:episode>121</podcast:episode>
      <itunes:title>121: Industrial 3D Printing &amp; Python, Finite State Machines, and Simulating Hardware - Len Wanger</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6df0b888-32ee-4a7a-9a54-b9145390fe39</guid>
      <link>https://pythontest.com/testandcode/episodes/121-industrial-3d-printing-python-finite-state-machines-and-simulating-hardware-len-wanger</link>
      <description>
        <![CDATA[<p>Len Wanger works on industrial 3D printers. And I was pleased to find out that<br> there's a bunch of Python in those printers as well. </p><p>In this episode we talk about:</p><ul><li>3D printers</li><li>What are the different types of 3D printers?</li><li>Where are 3D printed industrial parts being used?</li><li>Why use one type of additive manufacturing over another?</li><li>Python in 3D printing hardware.</li><li>What are Finite State Machines, FSMs?</li><li>Benefits of FSMs for testing, logging, and breaking a complex behavior into small testable parts.</li><li>Benefits of simulation in writing and testing software to control hardware.</li></ul><p>Special Guest: Len Wanger.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/lwanger/pystate">pystate</a> — Python package for co-routine base state machines</li><li><a href="https://www.impossible-objects.com/?gclid=EAIaIQobChMIpNyP2ovC6gIV0RZ9Ch355gcfEAAYASAAEgJPJfD_BwE">Impossible Objects</a> — Composite 3D Printing</li><li><a href="https://en.wikipedia.org/wiki/Finite-state_machine">Finite-state machine, FSM</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Len Wanger works on industrial 3D printers. And I was pleased to find out that<br> there's a bunch of Python in those printers as well. </p><p>In this episode we talk about:</p><ul><li>3D printers</li><li>What are the different types of 3D printers?</li><li>Where are 3D printed industrial parts being used?</li><li>Why use one type of additive manufacturing over another?</li><li>Python in 3D printing hardware.</li><li>What are Finite State Machines, FSMs?</li><li>Benefits of FSMs for testing, logging, and breaking a complex behavior into small testable parts.</li><li>Benefits of simulation in writing and testing software to control hardware.</li></ul><p>Special Guest: Len Wanger.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/lwanger/pystate">pystate</a> — Python package for co-routine base state machines</li><li><a href="https://www.impossible-objects.com/?gclid=EAIaIQobChMIpNyP2ovC6gIV0RZ9Ch355gcfEAAYASAAEgJPJfD_BwE">Impossible Objects</a> — Composite 3D Printing</li><li><a href="https://en.wikipedia.org/wiki/Finite-state_machine">Finite-state machine, FSM</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 09 Jul 2020 22:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/121.mp3" length="33825986" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2817</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Len Wanger works on industrial 3D printers. And I was pleased to find out that<br> there's a bunch of Python in those printers as well. </p><p>In this episode we talk about:</p><ul><li>3D printers</li><li>What are the different types of 3D printers?</li><li>Where are 3D printed industrial parts being used?</li><li>Why use one type of additive manufacturing over another?</li><li>Python in 3D printing hardware.</li><li>What are Finite State Machines, FSMs?</li><li>Benefits of FSMs for testing, logging, and breaking a complex behavior into small testable parts.</li><li>Benefits of simulation in writing and testing software to control hardware.</li></ul><p>Special Guest: Len Wanger.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/lwanger/pystate">pystate</a> — Python package for co-routine base state machines</li><li><a href="https://www.impossible-objects.com/?gclid=EAIaIQobChMIpNyP2ovC6gIV0RZ9Ch355gcfEAAYASAAEgJPJfD_BwE">Impossible Objects</a> — Composite 3D Printing</li><li><a href="https://en.wikipedia.org/wiki/Finite-state_machine">Finite-state machine, FSM</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>3D printing, finite state machine, FSM, hardware</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>120: FastAPI &amp; Typer - Sebastián Ramírez</title>
      <itunes:episode>120</itunes:episode>
      <podcast:episode>120</podcast:episode>
      <itunes:title>120: FastAPI &amp; Typer - Sebastián Ramírez</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1b78c67c-8d3b-4ac4-82c4-6e15084750f5</guid>
      <link>https://pythontest.com/testandcode/episodes/120-fastapi-typer-sebastian-ramirez</link>
      <description>
        <![CDATA[<p>FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.<br> Typer is a library for building CLI applications, also based on Python type hints.<br> Type hints and many other details are intended to make it easier to develop, test, and debug applications using FastAPI and Typer.</p><p>The person behind FastAPI and Typer is Sebastián Ramírez.</p><p>Sebastián is on the show today, and we discuss:</p><ul><li>FastAPI</li><li>Rest APIs</li><li>Swagger UI</li><li>Future features of FastAPI</li><li>Starlette</li><li>Typer</li><li>Click</li><li>Testing with Typer and Click</li><li>Typer autocompletion</li><li>Typer CLI</li></ul><p>Special Guest: Sebastián Ramírez.</p><p><br></p><p>Links:</p><ul><li><a href="https://explosion.ai/">Explosion</a></li><li><a href="https://fastapi.tiangolo.com/">FastAPI</a></li><li><a href="https://typer.tiangolo.com/">Typer</a></li><li><a href="https://swagger.io/specification/">OpenAPI Specification </a></li><li><a href="https://json-schema.org/">JSON Schema</a></li><li><a href="https://oauth.net/2/">OAuth 2.0</a></li><li><a href="https://www.starlette.io/">Starlette</a></li><li><a href="https://pydantic-docs.helpmanual.io/">pydantic</a></li><li><a href="https://swagger.io/tools/swagger-ui/">Swagger UI</a> — REST API Documentation Tool</li><li><a href="https://typer.tiangolo.com/tutorial/testing/">Testing - Typer</a></li><li><a href="https://click.palletsprojects.com/en/7.x/">Click</a></li><li><a href="https://click.palletsprojects.com/en/7.x/testing/">Testing Click Applications</a></li><li><a href="https://typer.tiangolo.com/tutorial/options/autocompletion/">CLI Option autocompletion - Typer</a></li><li><a href="https://typer.tiangolo.com/typer-cli/">Typer CLI - completion for small scripts</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.<br> Typer is a library for building CLI applications, also based on Python type hints.<br> Type hints and many other details are intended to make it easier to develop, test, and debug applications using FastAPI and Typer.</p><p>The person behind FastAPI and Typer is Sebastián Ramírez.</p><p>Sebastián is on the show today, and we discuss:</p><ul><li>FastAPI</li><li>Rest APIs</li><li>Swagger UI</li><li>Future features of FastAPI</li><li>Starlette</li><li>Typer</li><li>Click</li><li>Testing with Typer and Click</li><li>Typer autocompletion</li><li>Typer CLI</li></ul><p>Special Guest: Sebastián Ramírez.</p><p><br></p><p>Links:</p><ul><li><a href="https://explosion.ai/">Explosion</a></li><li><a href="https://fastapi.tiangolo.com/">FastAPI</a></li><li><a href="https://typer.tiangolo.com/">Typer</a></li><li><a href="https://swagger.io/specification/">OpenAPI Specification </a></li><li><a href="https://json-schema.org/">JSON Schema</a></li><li><a href="https://oauth.net/2/">OAuth 2.0</a></li><li><a href="https://www.starlette.io/">Starlette</a></li><li><a href="https://pydantic-docs.helpmanual.io/">pydantic</a></li><li><a href="https://swagger.io/tools/swagger-ui/">Swagger UI</a> — REST API Documentation Tool</li><li><a href="https://typer.tiangolo.com/tutorial/testing/">Testing - Typer</a></li><li><a href="https://click.palletsprojects.com/en/7.x/">Click</a></li><li><a href="https://click.palletsprojects.com/en/7.x/testing/">Testing Click Applications</a></li><li><a href="https://typer.tiangolo.com/tutorial/options/autocompletion/">CLI Option autocompletion - Typer</a></li><li><a href="https://typer.tiangolo.com/typer-cli/">Typer CLI - completion for small scripts</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 03 Jul 2020 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/120.mp3" length="31067399" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2587</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.<br> Typer is a library for building CLI applications, also based on Python type hints.<br> Type hints and many other details are intended to make it easier to develop, test, and debug applications using FastAPI and Typer.</p><p>The person behind FastAPI and Typer is Sebastián Ramírez.</p><p>Sebastián is on the show today, and we discuss:</p><ul><li>FastAPI</li><li>Rest APIs</li><li>Swagger UI</li><li>Future features of FastAPI</li><li>Starlette</li><li>Typer</li><li>Click</li><li>Testing with Typer and Click</li><li>Typer autocompletion</li><li>Typer CLI</li></ul><p>Special Guest: Sebastián Ramírez.</p><p><br></p><p>Links:</p><ul><li><a href="https://explosion.ai/">Explosion</a></li><li><a href="https://fastapi.tiangolo.com/">FastAPI</a></li><li><a href="https://typer.tiangolo.com/">Typer</a></li><li><a href="https://swagger.io/specification/">OpenAPI Specification </a></li><li><a href="https://json-schema.org/">JSON Schema</a></li><li><a href="https://oauth.net/2/">OAuth 2.0</a></li><li><a href="https://www.starlette.io/">Starlette</a></li><li><a href="https://pydantic-docs.helpmanual.io/">pydantic</a></li><li><a href="https://swagger.io/tools/swagger-ui/">Swagger UI</a> — REST API Documentation Tool</li><li><a href="https://typer.tiangolo.com/tutorial/testing/">Testing - Typer</a></li><li><a href="https://click.palletsprojects.com/en/7.x/">Click</a></li><li><a href="https://click.palletsprojects.com/en/7.x/testing/">Testing Click Applications</a></li><li><a href="https://typer.tiangolo.com/tutorial/options/autocompletion/">CLI Option autocompletion - Typer</a></li><li><a href="https://typer.tiangolo.com/typer-cli/">Typer CLI - completion for small scripts</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>REST API, CLI</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://tiangolo.com/">Sebastián Ramírez</podcast:person>
    </item>
    <item>
      <title>119: Editable Python Installs, Packaging Standardization, and pyproject.toml - Brett Cannon</title>
      <itunes:episode>119</itunes:episode>
      <podcast:episode>119</podcast:episode>
      <itunes:title>119: Editable Python Installs, Packaging Standardization, and pyproject.toml - Brett Cannon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1555ba4d-39b0-406c-8023-23cc3814c357</guid>
      <link>https://pythontest.com/testandcode/episodes/119-editable-python-installs-packaging-standardization-and-pyproject-toml-brett-cannon</link>
      <description>
        <![CDATA[<p>There's stuff going on in Python packaging and pyproject.toml.</p><p>Brett and I talk about some upcoming work on Python packaging, such as:</p><ul><li>editable installs</li><li>the need for standardization</li><li>configuration of other tools in pyproject.toml</li></ul><p>And then get off on tangents and talk about:</p><ul><li>why it's good to have packages like pip, toml, setuptools, wheel, etc not part of the standard library</li><li>should we remove some stuff from the standard library</li><li>the standard library using unittest for testing the standard library <ul><li>why not hypothesis</li><li>I didn't bring up "why not pytest?" but you know I was thinking it.</li></ul></li><li>why CPython and not C++Python</li><li>and more</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/52">episode 52: pyproject.toml : the future of Python packaging - Brett Cannon</a></li><li><a href="https://www.pypa.io/en/latest/">Python Packaging Authority</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects</a></li><li><a href="https://snarky.ca/what-the-heck-is-pyproject-toml/">What the heck is pyproject.toml?</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit </a></li><li><a href="https://python-poetry.org/">Poetry</a></li><li><a href="https://pypi.org/project/enscons/">enscons</a></li><li><a href="https://pypi.org/project/toml/">toml</a></li><li><a href="https://pypi.org/project/setuptools/">setuptools</a></li><li><a href="https://docs.python.org/3/library/distutils.html">distutils</a></li><li><a href="https://pypi.org/project/pip/">pip</a></li><li><a href="https://www.python-httpx.org/">HTTPX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>There's stuff going on in Python packaging and pyproject.toml.</p><p>Brett and I talk about some upcoming work on Python packaging, such as:</p><ul><li>editable installs</li><li>the need for standardization</li><li>configuration of other tools in pyproject.toml</li></ul><p>And then get off on tangents and talk about:</p><ul><li>why it's good to have packages like pip, toml, setuptools, wheel, etc not part of the standard library</li><li>should we remove some stuff from the standard library</li><li>the standard library using unittest for testing the standard library <ul><li>why not hypothesis</li><li>I didn't bring up "why not pytest?" but you know I was thinking it.</li></ul></li><li>why CPython and not C++Python</li><li>and more</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/52">episode 52: pyproject.toml : the future of Python packaging - Brett Cannon</a></li><li><a href="https://www.pypa.io/en/latest/">Python Packaging Authority</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects</a></li><li><a href="https://snarky.ca/what-the-heck-is-pyproject-toml/">What the heck is pyproject.toml?</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit </a></li><li><a href="https://python-poetry.org/">Poetry</a></li><li><a href="https://pypi.org/project/enscons/">enscons</a></li><li><a href="https://pypi.org/project/toml/">toml</a></li><li><a href="https://pypi.org/project/setuptools/">setuptools</a></li><li><a href="https://docs.python.org/3/library/distutils.html">distutils</a></li><li><a href="https://pypi.org/project/pip/">pip</a></li><li><a href="https://www.python-httpx.org/">HTTPX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 26 Jun 2020 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/119.mp3" length="24824707" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2067</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>There's stuff going on in Python packaging and pyproject.toml.</p><p>Brett and I talk about some upcoming work on Python packaging, such as:</p><ul><li>editable installs</li><li>the need for standardization</li><li>configuration of other tools in pyproject.toml</li></ul><p>And then get off on tangents and talk about:</p><ul><li>why it's good to have packages like pip, toml, setuptools, wheel, etc not part of the standard library</li><li>should we remove some stuff from the standard library</li><li>the standard library using unittest for testing the standard library <ul><li>why not hypothesis</li><li>I didn't bring up "why not pytest?" but you know I was thinking it.</li></ul></li><li>why CPython and not C++Python</li><li>and more</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/52">episode 52: pyproject.toml : the future of Python packaging - Brett Cannon</a></li><li><a href="https://www.pypa.io/en/latest/">Python Packaging Authority</a></li><li><a href="https://www.python.org/dev/peps/pep-0517/">PEP 517 -- A build-system independent format for source trees</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects</a></li><li><a href="https://snarky.ca/what-the-heck-is-pyproject-toml/">What the heck is pyproject.toml?</a></li><li><a href="https://flit.readthedocs.io/en/latest/">Flit </a></li><li><a href="https://python-poetry.org/">Poetry</a></li><li><a href="https://pypi.org/project/enscons/">enscons</a></li><li><a href="https://pypi.org/project/toml/">toml</a></li><li><a href="https://pypi.org/project/setuptools/">setuptools</a></li><li><a href="https://docs.python.org/3/library/distutils.html">distutils</a></li><li><a href="https://pypi.org/project/pip/">pip</a></li><li><a href="https://www.python-httpx.org/">HTTPX</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, pip, flit, poetry, packaging, pyproject.toml, toml, black, CPython, standard library</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>118: Code Coverage and 100% Coverage</title>
      <itunes:episode>118</itunes:episode>
      <podcast:episode>118</podcast:episode>
      <itunes:title>118: Code Coverage and 100% Coverage</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9a07961d-d4c4-467f-807b-cd6daeb970ba</guid>
      <link>https://pythontest.com/testandcode/episodes/118-code-coverage-and-100-coverage</link>
      <description>
        <![CDATA[<p>Code Coverage or Test Coverage is a way to measure what lines of code and branches in your code that are utilized during testing. <br> Coverage tools are an important part of software engineering. </p><p>But there's also lots of different opinions about using it. </p><ul><li>Should you try for 100% coverage? </li><li>What code can and should you exclude? </li><li>What about targets?</li></ul><p>I've been asked many times what I think about code coverage or test coverage.<br> This episode is a train of thought brain dump on what I think about code coverage.</p><p>We'll talk about:</p><ul><li>how I use code coverage to help me write source code</li><li>line coverage and branch coverage</li><li>behavior coverage</li><li>using tests to ask and answer questions about the system under test</li><li>how to target coverage just to the code you care about</li><li>excluding code</li><li>good reasons and bad reasons to exclude code</li></ul><p>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.</p><p><br></p><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Code Coverage or Test Coverage is a way to measure what lines of code and branches in your code that are utilized during testing. <br> Coverage tools are an important part of software engineering. </p><p>But there's also lots of different opinions about using it. </p><ul><li>Should you try for 100% coverage? </li><li>What code can and should you exclude? </li><li>What about targets?</li></ul><p>I've been asked many times what I think about code coverage or test coverage.<br> This episode is a train of thought brain dump on what I think about code coverage.</p><p>We'll talk about:</p><ul><li>how I use code coverage to help me write source code</li><li>line coverage and branch coverage</li><li>behavior coverage</li><li>using tests to ask and answer questions about the system under test</li><li>how to target coverage just to the code you care about</li><li>excluding code</li><li>good reasons and bad reasons to exclude code</li></ul><p>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.</p><p><br></p><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 25 Jun 2020 17:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/118.mp3" length="30583711" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2547</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Code Coverage or Test Coverage is a way to measure what lines of code and branches in your code that are utilized during testing. <br> Coverage tools are an important part of software engineering. </p><p>But there's also lots of different opinions about using it. </p><ul><li>Should you try for 100% coverage? </li><li>What code can and should you exclude? </li><li>What about targets?</li></ul><p>I've been asked many times what I think about code coverage or test coverage.<br> This episode is a train of thought brain dump on what I think about code coverage.</p><p>We'll talk about:</p><ul><li>how I use code coverage to help me write source code</li><li>line coverage and branch coverage</li><li>behavior coverage</li><li>using tests to ask and answer questions about the system under test</li><li>how to target coverage just to the code you care about</li><li>excluding code</li><li>good reasons and bad reasons to exclude code</li></ul><p>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.</p><p><br></p><p>Links:</p><ul><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>117: Python extension for VS Code - Brett Cannon</title>
      <itunes:episode>117</itunes:episode>
      <podcast:episode>117</podcast:episode>
      <itunes:title>117: Python extension for VS Code - Brett Cannon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">00dbdd83-02bb-41d1-9156-816a6b0bd3f4</guid>
      <link>https://pythontest.com/testandcode/episodes/117-python-extension-for-vs-code-brett-cannon</link>
      <description>
        <![CDATA[<p>The Python extension for VS Code is most downloaded extension for VS Code. <br> Brett Cannon is the manager for the distributed development team of the Python extension for VS Code.</p><p>In this episode, Brett and I discuss the Python extension and VS Code, including:</p><ul><li>pytest support</li><li>virtual environment support</li><li>how settings work, including user and workspace settings</li><li>multi root projects</li><li>testing Python in VS Code</li><li>debugging and pydevd</li><li>jump to cursor feature</li><li>upcoming features</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://changelog.com/person/brettcannon">Brett Cannon on Changelog</a></li><li><a href="https://www.imdb.com/title/tt2911666/">John Wick</a></li><li><a href="https://www.newsweek.com/john-wick-spin-off-ballerina-keanu-reeves-anjelica-huston-len-wiseman-1463920">Ballerina</a></li><li><a href="http://pyfound.blogspot.com/2016/05/brett-cannon-wins-frank-willison-award.html">Frank Willison Award</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python extension for VS Code</a></li><li><a href="https://pythontest.com/testandcode/106">episode 117 : How IDEs can make software testing easier - Paul Everitt</a></li><li><a href="https://code.visualstudio.com/docs/getstarted/settings">User and Workspace Settings</a></li><li><a href="https://code.visualstudio.com/docs/python/environments">virtual environments</a></li><li><a href="https://code.visualstudio.com/docs/python/testing">Testing Python in VS Code</a></li><li><a href="https://github.com/fabioz/PyDev.Debugger/">pydevd</a></li><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-february-2020-release/">Jump to Cursor in Feb VS Code Python blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The Python extension for VS Code is most downloaded extension for VS Code. <br> Brett Cannon is the manager for the distributed development team of the Python extension for VS Code.</p><p>In this episode, Brett and I discuss the Python extension and VS Code, including:</p><ul><li>pytest support</li><li>virtual environment support</li><li>how settings work, including user and workspace settings</li><li>multi root projects</li><li>testing Python in VS Code</li><li>debugging and pydevd</li><li>jump to cursor feature</li><li>upcoming features</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://changelog.com/person/brettcannon">Brett Cannon on Changelog</a></li><li><a href="https://www.imdb.com/title/tt2911666/">John Wick</a></li><li><a href="https://www.newsweek.com/john-wick-spin-off-ballerina-keanu-reeves-anjelica-huston-len-wiseman-1463920">Ballerina</a></li><li><a href="http://pyfound.blogspot.com/2016/05/brett-cannon-wins-frank-willison-award.html">Frank Willison Award</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python extension for VS Code</a></li><li><a href="https://pythontest.com/testandcode/106">episode 117 : How IDEs can make software testing easier - Paul Everitt</a></li><li><a href="https://code.visualstudio.com/docs/getstarted/settings">User and Workspace Settings</a></li><li><a href="https://code.visualstudio.com/docs/python/environments">virtual environments</a></li><li><a href="https://code.visualstudio.com/docs/python/testing">Testing Python in VS Code</a></li><li><a href="https://github.com/fabioz/PyDev.Debugger/">pydevd</a></li><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-february-2020-release/">Jump to Cursor in Feb VS Code Python blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 18 Jun 2020 00:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/117.mp3" length="35558796" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2961</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The Python extension for VS Code is most downloaded extension for VS Code. <br> Brett Cannon is the manager for the distributed development team of the Python extension for VS Code.</p><p>In this episode, Brett and I discuss the Python extension and VS Code, including:</p><ul><li>pytest support</li><li>virtual environment support</li><li>how settings work, including user and workspace settings</li><li>multi root projects</li><li>testing Python in VS Code</li><li>debugging and pydevd</li><li>jump to cursor feature</li><li>upcoming features</li></ul><p>Special Guest: Brett Cannon.</p><p><br></p><p>Links:</p><ul><li><a href="https://changelog.com/person/brettcannon">Brett Cannon on Changelog</a></li><li><a href="https://www.imdb.com/title/tt2911666/">John Wick</a></li><li><a href="https://www.newsweek.com/john-wick-spin-off-ballerina-keanu-reeves-anjelica-huston-len-wiseman-1463920">Ballerina</a></li><li><a href="http://pyfound.blogspot.com/2016/05/brett-cannon-wins-frank-willison-award.html">Frank Willison Award</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python">Python extension for VS Code</a></li><li><a href="https://pythontest.com/testandcode/106">episode 117 : How IDEs can make software testing easier - Paul Everitt</a></li><li><a href="https://code.visualstudio.com/docs/getstarted/settings">User and Workspace Settings</a></li><li><a href="https://code.visualstudio.com/docs/python/environments">virtual environments</a></li><li><a href="https://code.visualstudio.com/docs/python/testing">Testing Python in VS Code</a></li><li><a href="https://github.com/fabioz/PyDev.Debugger/">pydevd</a></li><li><a href="https://devblogs.microsoft.com/python/python-in-visual-studio-code-february-2020-release/">Jump to Cursor in Feb VS Code Python blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>testing, pytest, VS Code, Python, IDEs</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>116: 15 amazing pytest plugins - Michael Kennedy</title>
      <itunes:episode>116</itunes:episode>
      <podcast:episode>116</podcast:episode>
      <itunes:title>116: 15 amazing pytest plugins - Michael Kennedy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2e3cd829-715c-4ffd-b681-29d90b27c7ca</guid>
      <link>https://pythontest.com/testandcode/episodes/116-15-amazing-pytest-plugins-michael-kennedy</link>
      <description>
        <![CDATA[<p>pytest plugins are an amazing way to supercharge your test suites, leveraging great solutions from people solving test problems all over the world. In this episode Michael and I discuss 15 favorite plugins that you should know about.</p><p>We also discuss fixtures and plugins and other testing tools that work great with pytest</p><ul><li>tox</li><li>GitHub Actions</li><li>Coverage.py</li><li>Selenium + splinter with pytest-splinter</li><li>Hypothesis</li></ul><p>And then our list of pytest plugins:</p><ol><li>pytest-sugar </li><li>pytest-cov </li><li>pytest-stress </li><li>pytest-repeat </li><li>pytest-instafail </li><li>pytest-metadata</li><li>pytest-randomly</li><li>pytest-xdist </li><li>pytest-flake8 </li><li>pytest-timeout </li><li>pytest-spec </li><li>pytest-picked </li><li>pytest-freezegun </li><li>pytest-check </li><li>fluentcheck</li></ol><p>That last one isn't a plugin, but we also talked about pytest-splinter at the beginning. So I think it still counts as 15.</p><p>Special Guest: Michael Kennedy.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Teemu/pytest-sugar">pytest-sugar</a> — changes the default look and feel of pyptest (e.g. progressbar, show tests that fail instantly)</li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a> — run coverage.py from pytest</li><li><a href="https://github.com/pytest-dev/pytest-stress">pytest-stress</a> — allows you to loop tests for a user defined amount of time.</li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a> — for repeating test execution</li><li><a href="https://pypi.org/project/pytest-instafail/">pytest-instafail</a> — shows failures and errors instantly instead of waiting until the end of test session.</li><li><a href="https://github.com/pytest-dev/pytest-metadata">pytest-metadata</a> — for accessing test session metadata</li><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly</a> — randomly order tests and control random.seed</li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a> — distributed testing</li><li><a href="https://github.com/tholo/pytest-flake8">pytest-flake8</a> — pytest plugin to run flake8</li><li><a href="https://pypi.org/project/pytest-timeout/">pytest-timeout</a> — terminate tests after a certain timeout</li><li><a href="https://github.com/pchomik/pytest-spec">pytest-spec</a> — display test execution output like a specification</li><li><a href="https://github.com/anapaulagomes/pytest-picked">pytest-picked</a> — run the tests related to the changed files (according to Git)</li><li><a href="https://github.com/ktosiek/pytest-freezegun">pytest-freezegun</a> — easily freeze time</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> — allows multiple failures per test</li><li><a href="https://github.com/csparpa/fluentcheck">fluentcheck</a> — fluent assertions</li><li><a href="https://pythontest.com/testandcode/104">episode 104</a> — Top 28 pytest plugins with Anthony Sottile</li><li><a href="https://pythontest.com/testandcode/pytestbook">Python Testing with pytest</a> — The easiest way to get up to speed with pytest fast. There's also a chapter dedicated to plugins that also teaches you how to write and test your own plugins.</li><li><a href="https://tox.readthedocs.io/en/latest/">tox</a></li><li><a href="https://help.github.com/en/actions">GitHub Actions</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-splinter/">pytest-splinter</a> — provides a set of fixtures to use splinter for browser testing</li><li><a href="https://splinter.readthedocs.io/en/latest/why.html">splinter</a> — makes it easy to write automated tests of web applications</li><li><a href="https://hypothesis.readthedocs.io/en/latest/">hypothesis</a> — property-based testing</li><li><a href="https://talkpython.fm/episodes/show/267/15-amazing-pytest-plugins">Talk Python Episode #267</a> — This episode is a cross post with Talk Python</li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest plugins are an amazing way to supercharge your test suites, leveraging great solutions from people solving test problems all over the world. In this episode Michael and I discuss 15 favorite plugins that you should know about.</p><p>We also discuss fixtures and plugins and other testing tools that work great with pytest</p><ul><li>tox</li><li>GitHub Actions</li><li>Coverage.py</li><li>Selenium + splinter with pytest-splinter</li><li>Hypothesis</li></ul><p>And then our list of pytest plugins:</p><ol><li>pytest-sugar </li><li>pytest-cov </li><li>pytest-stress </li><li>pytest-repeat </li><li>pytest-instafail </li><li>pytest-metadata</li><li>pytest-randomly</li><li>pytest-xdist </li><li>pytest-flake8 </li><li>pytest-timeout </li><li>pytest-spec </li><li>pytest-picked </li><li>pytest-freezegun </li><li>pytest-check </li><li>fluentcheck</li></ol><p>That last one isn't a plugin, but we also talked about pytest-splinter at the beginning. So I think it still counts as 15.</p><p>Special Guest: Michael Kennedy.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Teemu/pytest-sugar">pytest-sugar</a> — changes the default look and feel of pyptest (e.g. progressbar, show tests that fail instantly)</li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a> — run coverage.py from pytest</li><li><a href="https://github.com/pytest-dev/pytest-stress">pytest-stress</a> — allows you to loop tests for a user defined amount of time.</li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a> — for repeating test execution</li><li><a href="https://pypi.org/project/pytest-instafail/">pytest-instafail</a> — shows failures and errors instantly instead of waiting until the end of test session.</li><li><a href="https://github.com/pytest-dev/pytest-metadata">pytest-metadata</a> — for accessing test session metadata</li><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly</a> — randomly order tests and control random.seed</li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a> — distributed testing</li><li><a href="https://github.com/tholo/pytest-flake8">pytest-flake8</a> — pytest plugin to run flake8</li><li><a href="https://pypi.org/project/pytest-timeout/">pytest-timeout</a> — terminate tests after a certain timeout</li><li><a href="https://github.com/pchomik/pytest-spec">pytest-spec</a> — display test execution output like a specification</li><li><a href="https://github.com/anapaulagomes/pytest-picked">pytest-picked</a> — run the tests related to the changed files (according to Git)</li><li><a href="https://github.com/ktosiek/pytest-freezegun">pytest-freezegun</a> — easily freeze time</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> — allows multiple failures per test</li><li><a href="https://github.com/csparpa/fluentcheck">fluentcheck</a> — fluent assertions</li><li><a href="https://pythontest.com/testandcode/104">episode 104</a> — Top 28 pytest plugins with Anthony Sottile</li><li><a href="https://pythontest.com/testandcode/pytestbook">Python Testing with pytest</a> — The easiest way to get up to speed with pytest fast. There's also a chapter dedicated to plugins that also teaches you how to write and test your own plugins.</li><li><a href="https://tox.readthedocs.io/en/latest/">tox</a></li><li><a href="https://help.github.com/en/actions">GitHub Actions</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-splinter/">pytest-splinter</a> — provides a set of fixtures to use splinter for browser testing</li><li><a href="https://splinter.readthedocs.io/en/latest/why.html">splinter</a> — makes it easy to write automated tests of web applications</li><li><a href="https://hypothesis.readthedocs.io/en/latest/">hypothesis</a> — property-based testing</li><li><a href="https://talkpython.fm/episodes/show/267/15-amazing-pytest-plugins">Talk Python Episode #267</a> — This episode is a cross post with Talk Python</li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 07 Jun 2020 23:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/116.mp3" length="36308301" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3024</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest plugins are an amazing way to supercharge your test suites, leveraging great solutions from people solving test problems all over the world. In this episode Michael and I discuss 15 favorite plugins that you should know about.</p><p>We also discuss fixtures and plugins and other testing tools that work great with pytest</p><ul><li>tox</li><li>GitHub Actions</li><li>Coverage.py</li><li>Selenium + splinter with pytest-splinter</li><li>Hypothesis</li></ul><p>And then our list of pytest plugins:</p><ol><li>pytest-sugar </li><li>pytest-cov </li><li>pytest-stress </li><li>pytest-repeat </li><li>pytest-instafail </li><li>pytest-metadata</li><li>pytest-randomly</li><li>pytest-xdist </li><li>pytest-flake8 </li><li>pytest-timeout </li><li>pytest-spec </li><li>pytest-picked </li><li>pytest-freezegun </li><li>pytest-check </li><li>fluentcheck</li></ol><p>That last one isn't a plugin, but we also talked about pytest-splinter at the beginning. So I think it still counts as 15.</p><p>Special Guest: Michael Kennedy.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/Teemu/pytest-sugar">pytest-sugar</a> — changes the default look and feel of pyptest (e.g. progressbar, show tests that fail instantly)</li><li><a href="https://pypi.org/project/pytest-cov/">pytest-cov</a> — run coverage.py from pytest</li><li><a href="https://github.com/pytest-dev/pytest-stress">pytest-stress</a> — allows you to loop tests for a user defined amount of time.</li><li><a href="https://github.com/pytest-dev/pytest-repeat">pytest-repeat</a> — for repeating test execution</li><li><a href="https://pypi.org/project/pytest-instafail/">pytest-instafail</a> — shows failures and errors instantly instead of waiting until the end of test session.</li><li><a href="https://github.com/pytest-dev/pytest-metadata">pytest-metadata</a> — for accessing test session metadata</li><li><a href="https://github.com/pytest-dev/pytest-randomly">pytest-randomly</a> — randomly order tests and control random.seed</li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a> — distributed testing</li><li><a href="https://github.com/tholo/pytest-flake8">pytest-flake8</a> — pytest plugin to run flake8</li><li><a href="https://pypi.org/project/pytest-timeout/">pytest-timeout</a> — terminate tests after a certain timeout</li><li><a href="https://github.com/pchomik/pytest-spec">pytest-spec</a> — display test execution output like a specification</li><li><a href="https://github.com/anapaulagomes/pytest-picked">pytest-picked</a> — run the tests related to the changed files (according to Git)</li><li><a href="https://github.com/ktosiek/pytest-freezegun">pytest-freezegun</a> — easily freeze time</li><li><a href="https://github.com/okken/pytest-check">pytest-check</a> — allows multiple failures per test</li><li><a href="https://github.com/csparpa/fluentcheck">fluentcheck</a> — fluent assertions</li><li><a href="https://pythontest.com/testandcode/104">episode 104</a> — Top 28 pytest plugins with Anthony Sottile</li><li><a href="https://pythontest.com/testandcode/pytestbook">Python Testing with pytest</a> — The easiest way to get up to speed with pytest fast. There's also a chapter dedicated to plugins that also teaches you how to write and test your own plugins.</li><li><a href="https://tox.readthedocs.io/en/latest/">tox</a></li><li><a href="https://help.github.com/en/actions">GitHub Actions</a></li><li><a href="https://coverage.readthedocs.io/en/coverage-5.1/">Coverage.py</a></li><li><a href="https://pypi.org/project/pytest-splinter/">pytest-splinter</a> — provides a set of fixtures to use splinter for browser testing</li><li><a href="https://splinter.readthedocs.io/en/latest/why.html">splinter</a> — makes it easy to write automated tests of web applications</li><li><a href="https://hypothesis.readthedocs.io/en/latest/">hypothesis</a> — property-based testing</li><li><a href="https://talkpython.fm/episodes/show/267/15-amazing-pytest-plugins">Talk Python Episode #267</a> — This episode is a cross post with Talk Python</li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, pytest, plugins</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Kennedy</podcast:person>
    </item>
    <item>
      <title>115: Catching up with Nina Zakharenko</title>
      <itunes:episode>115</itunes:episode>
      <podcast:episode>115</podcast:episode>
      <itunes:title>115: Catching up with Nina Zakharenko</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">a68013e5-8049-4d2e-9292-3ec46970f558</guid>
      <link>https://pythontest.com/testandcode/episodes/115-catching-up-with-nina-zakharenko</link>
      <description>
        <![CDATA[<p>One of the great things about attending in person coding conferences, such as PyCon, is the hallway track, where you can catch up with people you haven't seen for possibly a year, or maybe even the first time you've met in person. </p><p>Nina is starting something like the hallway track, online, on twitch, and it's already going, so check out <a href="https://www.twitch.tv/videos/635831555">the first episode of Python Tea</a>.</p><p>Interesting coincidence is that this episode is kind of like a hallway track discussion between Nina and Brian.</p><p>We've had Nina on the show a couple times before, but it's been a while.</p><p> In 2018, we talked about <a href="https://pythontest.com/testandcode/44">Mentoring on episode 44</a>.<br> In 2019, we talked about <a href="https://pythontest.com/testandcode/71">giving Memorable Tech Talks in episode 71</a>.</p><p>In this episode, we catch up with Nina, find out what she's doing, and talk about a bunch of stuff, including:</p><ul><li>Live Coding</li><li>Online Conferences</li><li>Microsoft Python team</li><li>Python Tea, an online hallway track</li><li>Q&amp;A with Python for VS Code team</li><li>Python on hardware</li><li>Adafruit</li><li>Device Simulator Express</li><li>CircuitPython</li><li>Tricking out your command prompt</li><li>Zsh and Oh My Zsh</li><li>Emacs vs vi key bindings for shells </li><li>Working from home</li></ul><p>Special Guest: Nina Zakharenko.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.twitch.tv/nnjaio">nnjaio - Twitch</a></li><li><a href="https://twitter.com/nnja">Nina Zakharenko 💜🐍 (@nnja) / Twitter</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.devicesimulatorexpress&amp;WT.mc_id=pycon2020-podcast-ninaz">Device Simulator Express - Visual Studio Marketplace</a></li><li><a href="https://github.com/nnja/pycon_pybadge_2020">Initial code for Microsoft's PyBadge at PyCon 2020</a></li><li><a href="https://www.youtube.com/watch?v=5AYIe-3cD-s&amp;feature=youtu.be">Goodbye Print, Hello Debugger! - Nina Zakharenko - PyCon 2020 Talk </a></li><li><a href="https://dev.to/nnja">𝙽𝚒𝚗𝚊 𝚉𝚊𝚔𝚑𝚊𝚛𝚎𝚗𝚔𝚘 💜🐍 - DEV.to</a></li><li><a href="https://twitter.com/nnja/status/1265781800212652032?s=20">Python Tea Announcement</a></li><li><a href="https://conf.livecoders.dev/">The Live Coders Conference</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>One of the great things about attending in person coding conferences, such as PyCon, is the hallway track, where you can catch up with people you haven't seen for possibly a year, or maybe even the first time you've met in person. </p><p>Nina is starting something like the hallway track, online, on twitch, and it's already going, so check out <a href="https://www.twitch.tv/videos/635831555">the first episode of Python Tea</a>.</p><p>Interesting coincidence is that this episode is kind of like a hallway track discussion between Nina and Brian.</p><p>We've had Nina on the show a couple times before, but it's been a while.</p><p> In 2018, we talked about <a href="https://pythontest.com/testandcode/44">Mentoring on episode 44</a>.<br> In 2019, we talked about <a href="https://pythontest.com/testandcode/71">giving Memorable Tech Talks in episode 71</a>.</p><p>In this episode, we catch up with Nina, find out what she's doing, and talk about a bunch of stuff, including:</p><ul><li>Live Coding</li><li>Online Conferences</li><li>Microsoft Python team</li><li>Python Tea, an online hallway track</li><li>Q&amp;A with Python for VS Code team</li><li>Python on hardware</li><li>Adafruit</li><li>Device Simulator Express</li><li>CircuitPython</li><li>Tricking out your command prompt</li><li>Zsh and Oh My Zsh</li><li>Emacs vs vi key bindings for shells </li><li>Working from home</li></ul><p>Special Guest: Nina Zakharenko.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.twitch.tv/nnjaio">nnjaio - Twitch</a></li><li><a href="https://twitter.com/nnja">Nina Zakharenko 💜🐍 (@nnja) / Twitter</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.devicesimulatorexpress&amp;WT.mc_id=pycon2020-podcast-ninaz">Device Simulator Express - Visual Studio Marketplace</a></li><li><a href="https://github.com/nnja/pycon_pybadge_2020">Initial code for Microsoft's PyBadge at PyCon 2020</a></li><li><a href="https://www.youtube.com/watch?v=5AYIe-3cD-s&amp;feature=youtu.be">Goodbye Print, Hello Debugger! - Nina Zakharenko - PyCon 2020 Talk </a></li><li><a href="https://dev.to/nnja">𝙽𝚒𝚗𝚊 𝚉𝚊𝚔𝚑𝚊𝚛𝚎𝚗𝚔𝚘 💜🐍 - DEV.to</a></li><li><a href="https://twitter.com/nnja/status/1265781800212652032?s=20">Python Tea Announcement</a></li><li><a href="https://conf.livecoders.dev/">The Live Coders Conference</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 30 May 2020 16:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/115.mp3" length="28894112" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2406</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>One of the great things about attending in person coding conferences, such as PyCon, is the hallway track, where you can catch up with people you haven't seen for possibly a year, or maybe even the first time you've met in person. </p><p>Nina is starting something like the hallway track, online, on twitch, and it's already going, so check out <a href="https://www.twitch.tv/videos/635831555">the first episode of Python Tea</a>.</p><p>Interesting coincidence is that this episode is kind of like a hallway track discussion between Nina and Brian.</p><p>We've had Nina on the show a couple times before, but it's been a while.</p><p> In 2018, we talked about <a href="https://pythontest.com/testandcode/44">Mentoring on episode 44</a>.<br> In 2019, we talked about <a href="https://pythontest.com/testandcode/71">giving Memorable Tech Talks in episode 71</a>.</p><p>In this episode, we catch up with Nina, find out what she's doing, and talk about a bunch of stuff, including:</p><ul><li>Live Coding</li><li>Online Conferences</li><li>Microsoft Python team</li><li>Python Tea, an online hallway track</li><li>Q&amp;A with Python for VS Code team</li><li>Python on hardware</li><li>Adafruit</li><li>Device Simulator Express</li><li>CircuitPython</li><li>Tricking out your command prompt</li><li>Zsh and Oh My Zsh</li><li>Emacs vs vi key bindings for shells </li><li>Working from home</li></ul><p>Special Guest: Nina Zakharenko.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.twitch.tv/nnjaio">nnjaio - Twitch</a></li><li><a href="https://twitter.com/nnja">Nina Zakharenko 💜🐍 (@nnja) / Twitter</a></li><li><a href="https://marketplace.visualstudio.com/items?itemName=ms-python.devicesimulatorexpress&amp;WT.mc_id=pycon2020-podcast-ninaz">Device Simulator Express - Visual Studio Marketplace</a></li><li><a href="https://github.com/nnja/pycon_pybadge_2020">Initial code for Microsoft's PyBadge at PyCon 2020</a></li><li><a href="https://www.youtube.com/watch?v=5AYIe-3cD-s&amp;feature=youtu.be">Goodbye Print, Hello Debugger! - Nina Zakharenko - PyCon 2020 Talk </a></li><li><a href="https://dev.to/nnja">𝙽𝚒𝚗𝚊 𝚉𝚊𝚔𝚑𝚊𝚛𝚎𝚗𝚔𝚘 💜🐍 - DEV.to</a></li><li><a href="https://twitter.com/nnja/status/1265781800212652032?s=20">Python Tea Announcement</a></li><li><a href="https://conf.livecoders.dev/">The Live Coders Conference</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>twitch, Python, live coding, online conferences, adafruit, CircuitPython, WFH, Oh My Zsh</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>114: The Python Software Foundation (PSF) Board Elections - Ewa Jodlowska / Christopher Neugebauer</title>
      <itunes:episode>114</itunes:episode>
      <podcast:episode>114</podcast:episode>
      <itunes:title>114: The Python Software Foundation (PSF) Board Elections - Ewa Jodlowska / Christopher Neugebauer</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0741ba1f-e1be-41ff-8261-02be6d095cc7</guid>
      <link>https://pythontest.com/testandcode/episodes/114-the-python-software-foundation-psf-board-elections-ewa-jodlowska-christopher-neugebauer</link>
      <description>
        <![CDATA[<p>"The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers."</p><p>That's a lot of responsibility, and to that end, the PSF Board Directors help out quite a bit. </p><p>If you want to be a part of the board, you can. There's an election coming up right around the corner and you gotta get your nomination in by May 31. You can also join the PSF if you want to vote for who gets to be part of the board. </p><p>But what does it really mean to be on the Board, and what are some of the things the PSF does? </p><p>To help answer those questions, I've got Ewa Jodlowska, the PSF Executive Director, and Christopher Neugebauer, a current board member, on the show today. I've also got some great links in the show notes if we don't answer your questions and you want to find out more.</p><p>Special Guests: Christopher Neugebauer and Ewa Jodlowska.</p><p><br></p><p>Links:</p><ul><li><a href="https://bit.ly/psf-discuss">Latest PSF Board Elections Discussion</a></li><li><a href="https://www.python.org/psf/">Python Software Foundation</a></li><li><a href="https://bit.ly/psf-elect">Overview of Elections</a></li><li><a href="https://wiki.python.org/moin/PythonSoftwareFoundation/DutiesAndResponsibilitiesOfDirectors">Duties and Responsibilities of Directors</a></li><li><a href="https://www.youtube.com/watch?v=ZLKj6FaQA4M">Life as a Python Software Foundation Director - YouTube</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>"The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers."</p><p>That's a lot of responsibility, and to that end, the PSF Board Directors help out quite a bit. </p><p>If you want to be a part of the board, you can. There's an election coming up right around the corner and you gotta get your nomination in by May 31. You can also join the PSF if you want to vote for who gets to be part of the board. </p><p>But what does it really mean to be on the Board, and what are some of the things the PSF does? </p><p>To help answer those questions, I've got Ewa Jodlowska, the PSF Executive Director, and Christopher Neugebauer, a current board member, on the show today. I've also got some great links in the show notes if we don't answer your questions and you want to find out more.</p><p>Special Guests: Christopher Neugebauer and Ewa Jodlowska.</p><p><br></p><p>Links:</p><ul><li><a href="https://bit.ly/psf-discuss">Latest PSF Board Elections Discussion</a></li><li><a href="https://www.python.org/psf/">Python Software Foundation</a></li><li><a href="https://bit.ly/psf-elect">Overview of Elections</a></li><li><a href="https://wiki.python.org/moin/PythonSoftwareFoundation/DutiesAndResponsibilitiesOfDirectors">Duties and Responsibilities of Directors</a></li><li><a href="https://www.youtube.com/watch?v=ZLKj6FaQA4M">Life as a Python Software Foundation Director - YouTube</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sun, 24 May 2020 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/114.mp3" length="21391597" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1781</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>"The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers."</p><p>That's a lot of responsibility, and to that end, the PSF Board Directors help out quite a bit. </p><p>If you want to be a part of the board, you can. There's an election coming up right around the corner and you gotta get your nomination in by May 31. You can also join the PSF if you want to vote for who gets to be part of the board. </p><p>But what does it really mean to be on the Board, and what are some of the things the PSF does? </p><p>To help answer those questions, I've got Ewa Jodlowska, the PSF Executive Director, and Christopher Neugebauer, a current board member, on the show today. I've also got some great links in the show notes if we don't answer your questions and you want to find out more.</p><p>Special Guests: Christopher Neugebauer and Ewa Jodlowska.</p><p><br></p><p>Links:</p><ul><li><a href="https://bit.ly/psf-discuss">Latest PSF Board Elections Discussion</a></li><li><a href="https://www.python.org/psf/">Python Software Foundation</a></li><li><a href="https://bit.ly/psf-elect">Overview of Elections</a></li><li><a href="https://wiki.python.org/moin/PythonSoftwareFoundation/DutiesAndResponsibilitiesOfDirectors">Duties and Responsibilities of Directors</a></li><li><a href="https://www.youtube.com/watch?v=ZLKj6FaQA4M">Life as a Python Software Foundation Director - YouTube</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>PSF, Python Software Foundation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>113: Technical Debt - James Smith</title>
      <itunes:episode>113</itunes:episode>
      <podcast:episode>113</podcast:episode>
      <itunes:title>113: Technical Debt - James Smith</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">0dbe59ab-5d37-4089-9bc4-3d76bf144cc1</guid>
      <link>https://pythontest.com/testandcode/episodes/113-technical-debt-james-smith</link>
      <description>
        <![CDATA[<p>Technical debt has to be dealt with on a regular basis to have a healthy product and development team.</p><p>The impacts of technical debt include emotional drain on engineers and slowing down development and can adversely affect your hiring ability and retention.</p><p>But really, what is technical debt? Can we measure it? How do we reduce it, and when?</p><p>James Smith, the CEO of Bugsnag, joins the show to talk about technical debt and all of these questions.</p><p>Special Guest: James Smith.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Technical debt has to be dealt with on a regular basis to have a healthy product and development team.</p><p>The impacts of technical debt include emotional drain on engineers and slowing down development and can adversely affect your hiring ability and retention.</p><p>But really, what is technical debt? Can we measure it? How do we reduce it, and when?</p><p>James Smith, the CEO of Bugsnag, joins the show to talk about technical debt and all of these questions.</p><p>Special Guest: James Smith.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 15 May 2020 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/113.mp3" length="20229187" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1684</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Technical debt has to be dealt with on a regular basis to have a healthy product and development team.</p><p>The impacts of technical debt include emotional drain on engineers and slowing down development and can adversely affect your hiring ability and retention.</p><p>But really, what is technical debt? Can we measure it? How do we reduce it, and when?</p><p>James Smith, the CEO of Bugsnag, joins the show to talk about technical debt and all of these questions.</p><p>Special Guest: James Smith.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>technical debt</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>112: Six Principles of Readable Tests - David Seddon</title>
      <itunes:episode>112</itunes:episode>
      <podcast:episode>112</podcast:episode>
      <itunes:title>112: Six Principles of Readable Tests - David Seddon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d5e13fd7-2008-4509-b563-c1988cb0ca4c</guid>
      <link>https://pythontest.com/testandcode/episodes/112-six-principles-of-readable-tests-david-seddon</link>
      <description>
        <![CDATA[<p>"Code is read much more often than it is written." - Guido van Rossum<br> This is true for both production code and test code.</p><p>When you are trying to understand why a test is failing, you'll be very grateful to the test author if they've taken the care to make it readable.</p><p>David Seddon came up with 6 principles to help us write more readable tests.<br> We discuss these, as well as more benefits of readable tests.</p><p>David's 6 Principles of Readable Tests:</p><ol><li>Profit from the work of others</li><li>Put naming to work</li><li>Show only what matters</li><li>Don’t repeat yourself</li><li>Arrange, act, assert</li><li>Aim high</li></ol><p>Special Guest: David Seddon.</p><p><br></p><p>Links:</p><ul><li><a href="https://seddonym.me/talks/2019-09-13-readable-tests/">How to write readable tests (presentation) · David Seddon</a></li><li><a href="https://docs.google.com/presentation/d/1BDmUxl06DKkVqVvdzwb5XvNqpvjKxPbR_PkHt3N1exM/edit#slide=id.p">How to write readable tests (slides)</a></li><li><a href="https://docs.pytest.org/en/latest/">pytest</a></li><li><a href="https://docs.pylonsproject.org/projects/webtest/en/latest/">WebTest </a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy</a></li><li><a href="https://pypi.org/project/django-webtest/">django-webtest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>"Code is read much more often than it is written." - Guido van Rossum<br> This is true for both production code and test code.</p><p>When you are trying to understand why a test is failing, you'll be very grateful to the test author if they've taken the care to make it readable.</p><p>David Seddon came up with 6 principles to help us write more readable tests.<br> We discuss these, as well as more benefits of readable tests.</p><p>David's 6 Principles of Readable Tests:</p><ol><li>Profit from the work of others</li><li>Put naming to work</li><li>Show only what matters</li><li>Don’t repeat yourself</li><li>Arrange, act, assert</li><li>Aim high</li></ol><p>Special Guest: David Seddon.</p><p><br></p><p>Links:</p><ul><li><a href="https://seddonym.me/talks/2019-09-13-readable-tests/">How to write readable tests (presentation) · David Seddon</a></li><li><a href="https://docs.google.com/presentation/d/1BDmUxl06DKkVqVvdzwb5XvNqpvjKxPbR_PkHt3N1exM/edit#slide=id.p">How to write readable tests (slides)</a></li><li><a href="https://docs.pytest.org/en/latest/">pytest</a></li><li><a href="https://docs.pylonsproject.org/projects/webtest/en/latest/">WebTest </a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy</a></li><li><a href="https://pypi.org/project/django-webtest/">django-webtest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 08 May 2020 12:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/112.mp3" length="31835724" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2651</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>"Code is read much more often than it is written." - Guido van Rossum<br> This is true for both production code and test code.</p><p>When you are trying to understand why a test is failing, you'll be very grateful to the test author if they've taken the care to make it readable.</p><p>David Seddon came up with 6 principles to help us write more readable tests.<br> We discuss these, as well as more benefits of readable tests.</p><p>David's 6 Principles of Readable Tests:</p><ol><li>Profit from the work of others</li><li>Put naming to work</li><li>Show only what matters</li><li>Don’t repeat yourself</li><li>Arrange, act, assert</li><li>Aim high</li></ol><p>Special Guest: David Seddon.</p><p><br></p><p>Links:</p><ul><li><a href="https://seddonym.me/talks/2019-09-13-readable-tests/">How to write readable tests (presentation) · David Seddon</a></li><li><a href="https://docs.google.com/presentation/d/1BDmUxl06DKkVqVvdzwb5XvNqpvjKxPbR_PkHt3N1exM/edit#slide=id.p">How to write readable tests (slides)</a></li><li><a href="https://docs.pytest.org/en/latest/">pytest</a></li><li><a href="https://docs.pylonsproject.org/projects/webtest/en/latest/">WebTest </a></li><li><a href="https://factoryboy.readthedocs.io/en/latest/">factory_boy</a></li><li><a href="https://pypi.org/project/django-webtest/">django-webtest</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>111: Subtests in Python with unittest and pytest - Paul Ganssle</title>
      <itunes:episode>111</itunes:episode>
      <podcast:episode>111</podcast:episode>
      <itunes:title>111: Subtests in Python with unittest and pytest - Paul Ganssle</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">324689a1-dcf3-4685-8b34-3910f199758d</guid>
      <link>https://pythontest.com/testandcode/episodes/111-subtests-in-python-with-unittest-and-pytest-paul-ganssle</link>
      <description>
        <![CDATA[<p>In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test. </p><p>What if you want to keep going, and check more things?</p><p> There are a few ways. One of them is subtests.</p><p>Python's unittest introduced subtests in Python 3.4.</p><p> pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.<br> Subtests are still not really used that much.</p><p>But really, what are they? When could you use them?</p><p> And more importantly, what should you watch out for if you decide to use them?</p><p>That's what Paul Ganssle and I will be talking about today.</p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2020/04/subtests-in-python.html">Subtests in Python</a> — Paul's article on subtests</li><li><a href="https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests">subtests in unittest - Python docs </a></li><li><a href="https://github.com/pytest-dev/pytest-subtests">pytest-subtests: plugin to support subtests in pytest</a></li><li><a href="https://github.com/okken/pytest-check">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test. </p><p>What if you want to keep going, and check more things?</p><p> There are a few ways. One of them is subtests.</p><p>Python's unittest introduced subtests in Python 3.4.</p><p> pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.<br> Subtests are still not really used that much.</p><p>But really, what are they? When could you use them?</p><p> And more importantly, what should you watch out for if you decide to use them?</p><p>That's what Paul Ganssle and I will be talking about today.</p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2020/04/subtests-in-python.html">Subtests in Python</a> — Paul's article on subtests</li><li><a href="https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests">subtests in unittest - Python docs </a></li><li><a href="https://github.com/pytest-dev/pytest-subtests">pytest-subtests: plugin to support subtests in pytest</a></li><li><a href="https://github.com/okken/pytest-check">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 02 May 2020 08:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/111.mp3" length="33604643" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2799</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test. </p><p>What if you want to keep going, and check more things?</p><p> There are a few ways. One of them is subtests.</p><p>Python's unittest introduced subtests in Python 3.4.</p><p> pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.<br> Subtests are still not really used that much.</p><p>But really, what are they? When could you use them?</p><p> And more importantly, what should you watch out for if you decide to use them?</p><p>That's what Paul Ganssle and I will be talking about today.</p><p>Special Guest: Paul Ganssle.</p><p><br></p><p>Links:</p><ul><li><a href="https://blog.ganssle.io/articles/2020/04/subtests-in-python.html">Subtests in Python</a> — Paul's article on subtests</li><li><a href="https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests">subtests in unittest - Python docs </a></li><li><a href="https://github.com/pytest-dev/pytest-subtests">pytest-subtests: plugin to support subtests in pytest</a></li><li><a href="https://github.com/okken/pytest-check">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, unittest, subtest, Python, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>110: Testing Django - from unittest to pytest - Adam Parkin</title>
      <itunes:episode>110</itunes:episode>
      <podcast:episode>110</podcast:episode>
      <itunes:title>110: Testing Django - from unittest to pytest - Adam Parkin</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6f37a44e-06d4-4527-b0ac-6641979ce2f7</guid>
      <link>https://pythontest.com/testandcode/episodes/110-testing-django-from-unittest-to-pytest-adam-parkin</link>
      <description>
        <![CDATA[<p>Django supports testing out of the box with some cool extensions to unittest. However, many people are using pytest for their Django testing, mostly using the pytest-django plugin.</p><p>Adam Parkin, who is known online as <a href="https://twitter.com/codependentcodr">CodependentCodr</a>, joins us to talk about migrating an existing Django project from unittest to pytest. Adam tells us just how easy this is.</p><p>Special Guest: Adam Parkin.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.djangoproject.com/en/3.0/intro/tutorial05/">Django Tutorial, on testing</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/overview/#preserving-the-test-database">The Django docs on testing &amp; the test database</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/tools/#testcase">The Django docs on the TestCase class</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django docs</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Django supports testing out of the box with some cool extensions to unittest. However, many people are using pytest for their Django testing, mostly using the pytest-django plugin.</p><p>Adam Parkin, who is known online as <a href="https://twitter.com/codependentcodr">CodependentCodr</a>, joins us to talk about migrating an existing Django project from unittest to pytest. Adam tells us just how easy this is.</p><p>Special Guest: Adam Parkin.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.djangoproject.com/en/3.0/intro/tutorial05/">Django Tutorial, on testing</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/overview/#preserving-the-test-database">The Django docs on testing &amp; the test database</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/tools/#testcase">The Django docs on the TestCase class</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django docs</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 25 Apr 2020 16:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/110.mp3" length="17473504" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1454</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Django supports testing out of the box with some cool extensions to unittest. However, many people are using pytest for their Django testing, mostly using the pytest-django plugin.</p><p>Adam Parkin, who is known online as <a href="https://twitter.com/codependentcodr">CodependentCodr</a>, joins us to talk about migrating an existing Django project from unittest to pytest. Adam tells us just how easy this is.</p><p>Special Guest: Adam Parkin.</p><p><br></p><p>Links:</p><ul><li><a href="https://docs.djangoproject.com/en/3.0/intro/tutorial05/">Django Tutorial, on testing</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/overview/#preserving-the-test-database">The Django docs on testing &amp; the test database</a></li><li><a href="https://docs.djangoproject.com/en/3.0/topics/testing/tools/#testcase">The Django docs on the TestCase class</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django docs</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software testing, django, unittest, pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>109: Testing in Financial Services - Eric Bergemann</title>
      <itunes:episode>109</itunes:episode>
      <podcast:episode>109</podcast:episode>
      <itunes:title>109: Testing in Financial Services - Eric Bergemann</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e1023048-be48-4f30-ac15-0dc138b80329</guid>
      <link>https://pythontest.com/testandcode/episodes/109-testing-in-financial-services-eric-bergemann</link>
      <description>
        <![CDATA[<p>Financial services have their own unique testing development challenges. But they also have lots of the same challenges as many other software projects. </p><p>Eric Bergemann joins Brian Okken to discuss:</p><ul><li>Specific testing challenges in the financial services domain</li><li>CI/CD : Continuous Integration, Continuous Deployment</li><li>TDD : Test Driven Development</li><li>Confidence from testable applications</li><li>Testing strategies to add coverage to legacy systems</li><li>Testing the data and test cases themselves</li><li>DevOps</li><li>Continuous testing</li><li>Manual testing procedures</li><li>BDD &amp; Gherkin</li><li>Hiring in vs training industry knowledge</li></ul><p>Special Guest: Eric Bergemann.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.paragonedge.com/">Paragon</a></li><li><a href="https://amzn.to/2RDTsZB">The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Financial services have their own unique testing development challenges. But they also have lots of the same challenges as many other software projects. </p><p>Eric Bergemann joins Brian Okken to discuss:</p><ul><li>Specific testing challenges in the financial services domain</li><li>CI/CD : Continuous Integration, Continuous Deployment</li><li>TDD : Test Driven Development</li><li>Confidence from testable applications</li><li>Testing strategies to add coverage to legacy systems</li><li>Testing the data and test cases themselves</li><li>DevOps</li><li>Continuous testing</li><li>Manual testing procedures</li><li>BDD &amp; Gherkin</li><li>Hiring in vs training industry knowledge</li></ul><p>Special Guest: Eric Bergemann.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.paragonedge.com/">Paragon</a></li><li><a href="https://amzn.to/2RDTsZB">The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 14 Apr 2020 15:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/109.mp3" length="20750192" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1727</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Financial services have their own unique testing development challenges. But they also have lots of the same challenges as many other software projects. </p><p>Eric Bergemann joins Brian Okken to discuss:</p><ul><li>Specific testing challenges in the financial services domain</li><li>CI/CD : Continuous Integration, Continuous Deployment</li><li>TDD : Test Driven Development</li><li>Confidence from testable applications</li><li>Testing strategies to add coverage to legacy systems</li><li>Testing the data and test cases themselves</li><li>DevOps</li><li>Continuous testing</li><li>Manual testing procedures</li><li>BDD &amp; Gherkin</li><li>Hiring in vs training industry knowledge</li></ul><p>Special Guest: Eric Bergemann.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.paragonedge.com/">Paragon</a></li><li><a href="https://amzn.to/2RDTsZB">The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>financial services, testing, CI, CD, TDD, DevOps</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>108: PySpark - Jonathan Rioux</title>
      <itunes:episode>108</itunes:episode>
      <podcast:episode>108</podcast:episode>
      <itunes:title>108: PySpark - Jonathan Rioux</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e115d342-e20b-4f60-b7ae-e0fe4d2f1a5a</guid>
      <link>https://pythontest.com/testandcode/episodes/108-pyspark-jonathan-rioux</link>
      <description>
        <![CDATA[<p>Apache Spark is a unified analytics engine for large-scale data processing.<br> PySpark blends the powerful Spark big data processing engine with the Python programming language to provide a data analysis platform that can scale up for nearly any task.</p><p>Johnathan Rioux, author of "PySpark in Action", joins the show and gives us a great introduction of Spark and PySpark to help us decide how to get started and decide whether or not to decide if Spark and PySpark are right you.</p><p>Special Guest: Jonathan Rioux.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.manning.com/books/pyspark-in-action">PySpark in Action</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/index.html">Spark</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/pyspark.html">PySpark documentation</a></li><li><a href="https://www.youtube.com/watch?v=o64FV-ez6Gw">Joel Grus, livecoding</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Apache Spark is a unified analytics engine for large-scale data processing.<br> PySpark blends the powerful Spark big data processing engine with the Python programming language to provide a data analysis platform that can scale up for nearly any task.</p><p>Johnathan Rioux, author of "PySpark in Action", joins the show and gives us a great introduction of Spark and PySpark to help us decide how to get started and decide whether or not to decide if Spark and PySpark are right you.</p><p>Special Guest: Jonathan Rioux.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.manning.com/books/pyspark-in-action">PySpark in Action</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/index.html">Spark</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/pyspark.html">PySpark documentation</a></li><li><a href="https://www.youtube.com/watch?v=o64FV-ez6Gw">Joel Grus, livecoding</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 09 Apr 2020 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/108.mp3" length="22393063" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1864</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Apache Spark is a unified analytics engine for large-scale data processing.<br> PySpark blends the powerful Spark big data processing engine with the Python programming language to provide a data analysis platform that can scale up for nearly any task.</p><p>Johnathan Rioux, author of "PySpark in Action", joins the show and gives us a great introduction of Spark and PySpark to help us decide how to get started and decide whether or not to decide if Spark and PySpark are right you.</p><p>Special Guest: Jonathan Rioux.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.manning.com/books/pyspark-in-action">PySpark in Action</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/index.html">Spark</a></li><li><a href="https://spark.apache.org/docs/latest/api/python/pyspark.html">PySpark documentation</a></li><li><a href="https://www.youtube.com/watch?v=o64FV-ez6Gw">Joel Grus, livecoding</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>data science, PySpark, Python, data processing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>107: Property Based Testing in Python with Hypothesis - Alexander Hultnér</title>
      <itunes:episode>107</itunes:episode>
      <podcast:episode>107</podcast:episode>
      <itunes:title>107: Property Based Testing in Python with Hypothesis - Alexander Hultnér</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f1d9dc2a-7cd6-423a-b058-6060eca364b3</guid>
      <link>https://pythontest.com/testandcode/episodes/107-property-based-testing-in-python-with-hypothesis-alexander-hultner</link>
      <description>
        <![CDATA[<p>Hypothesis is the Python tool used for property based testing.<br> Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests."</p><p>In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis.</p><p>Some topics covered:</p><ul><li>What is property based testing</li><li>Thinking differently for property based testing</li><li>Using hypothesis / property based testing in conjunction with normal testing</li><li>Failures saved and re-run</li><li>What parts of development/testing is best suited for hypothesis / property based testing </li><li>Comparing function implementations</li><li>Testing against REST APIs that use Open API / Swagger with schemathesis </li><li>Changing the number of tests in different test environments</li><li>System, integration, end to end, and unit tests</li></ul><p>Special Guest: Alexander Hultnér.</p><p><br></p><p>Links:</p><ul><li><a href="https://hypothesis.works/">Hypothesis home</a></li><li><a href="https://hypothesis.readthedocs.io/en/latest/">Hypothesis docs</a></li><li><a href="https://www.youtube.com/watch?v=MKf6KfdTems">Test Fast, Fix More - Property based testing with Hypothesis by Alexander Hultnér - YouTube</a></li><li><a href="https://en.wikipedia.org/wiki/QuickCheck">Quickcheck, Grandfather of property based testing</a></li><li><a href="https://www.youtube.com/watch?v=MYucYon2-lk">Beyond Unit Tests, Hillel Wayne, PyCon 2018</a></li><li><a href="https://www.youtube.com/watch?v=jvwfDdgg93E">Better Testing With Less Code, Matt Bachmann, PyCon 2016</a></li><li><a href="https://fsharpforfunandprofit.com/posts/property-based-testing-2/">Choosing properties for property-based testing (F#)</a></li><li><a href="https://github.com/kiwicom/schemathesis">schemathesis: Hypothesis + Open API / Swagger for testing web applications</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Hypothesis is the Python tool used for property based testing.<br> Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests."</p><p>In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis.</p><p>Some topics covered:</p><ul><li>What is property based testing</li><li>Thinking differently for property based testing</li><li>Using hypothesis / property based testing in conjunction with normal testing</li><li>Failures saved and re-run</li><li>What parts of development/testing is best suited for hypothesis / property based testing </li><li>Comparing function implementations</li><li>Testing against REST APIs that use Open API / Swagger with schemathesis </li><li>Changing the number of tests in different test environments</li><li>System, integration, end to end, and unit tests</li></ul><p>Special Guest: Alexander Hultnér.</p><p><br></p><p>Links:</p><ul><li><a href="https://hypothesis.works/">Hypothesis home</a></li><li><a href="https://hypothesis.readthedocs.io/en/latest/">Hypothesis docs</a></li><li><a href="https://www.youtube.com/watch?v=MKf6KfdTems">Test Fast, Fix More - Property based testing with Hypothesis by Alexander Hultnér - YouTube</a></li><li><a href="https://en.wikipedia.org/wiki/QuickCheck">Quickcheck, Grandfather of property based testing</a></li><li><a href="https://www.youtube.com/watch?v=MYucYon2-lk">Beyond Unit Tests, Hillel Wayne, PyCon 2018</a></li><li><a href="https://www.youtube.com/watch?v=jvwfDdgg93E">Better Testing With Less Code, Matt Bachmann, PyCon 2016</a></li><li><a href="https://fsharpforfunandprofit.com/posts/property-based-testing-2/">Choosing properties for property-based testing (F#)</a></li><li><a href="https://github.com/kiwicom/schemathesis">schemathesis: Hypothesis + Open API / Swagger for testing web applications</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 27 Mar 2020 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/107.mp3" length="25564790" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2129</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Hypothesis is the Python tool used for property based testing.<br> Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests."</p><p>In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis.</p><p>Some topics covered:</p><ul><li>What is property based testing</li><li>Thinking differently for property based testing</li><li>Using hypothesis / property based testing in conjunction with normal testing</li><li>Failures saved and re-run</li><li>What parts of development/testing is best suited for hypothesis / property based testing </li><li>Comparing function implementations</li><li>Testing against REST APIs that use Open API / Swagger with schemathesis </li><li>Changing the number of tests in different test environments</li><li>System, integration, end to end, and unit tests</li></ul><p>Special Guest: Alexander Hultnér.</p><p><br></p><p>Links:</p><ul><li><a href="https://hypothesis.works/">Hypothesis home</a></li><li><a href="https://hypothesis.readthedocs.io/en/latest/">Hypothesis docs</a></li><li><a href="https://www.youtube.com/watch?v=MKf6KfdTems">Test Fast, Fix More - Property based testing with Hypothesis by Alexander Hultnér - YouTube</a></li><li><a href="https://en.wikipedia.org/wiki/QuickCheck">Quickcheck, Grandfather of property based testing</a></li><li><a href="https://www.youtube.com/watch?v=MYucYon2-lk">Beyond Unit Tests, Hillel Wayne, PyCon 2018</a></li><li><a href="https://www.youtube.com/watch?v=jvwfDdgg93E">Better Testing With Less Code, Matt Bachmann, PyCon 2016</a></li><li><a href="https://fsharpforfunandprofit.com/posts/property-based-testing-2/">Choosing properties for property-based testing (F#)</a></li><li><a href="https://github.com/kiwicom/schemathesis">schemathesis: Hypothesis + Open API / Swagger for testing web applications</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Python, Hypothesis, Property Based Testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>106: Visual Testing : How IDEs can make software testing easier - Paul Everitt</title>
      <itunes:episode>106</itunes:episode>
      <podcast:episode>106</podcast:episode>
      <itunes:title>106: Visual Testing : How IDEs can make software testing easier - Paul Everitt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">13881fa6-826a-475a-8771-0c76c77f6e35</guid>
      <link>https://pythontest.com/testandcode/episodes/106-visual-testing-how-ides-can-make-software-testing-easier-paul-everitt</link>
      <description>
        <![CDATA[<p>IDEs can help people with automated testing.</p><p>In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.</p><p>The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.</p><p>We talk about a lot of topics, and it's a lot of fun. But it's also important. Because IDEs can make testing </p><p>Some topics discussed:</p><ul><li>Making testing more accessible</li><li>Test First vs teaching testing last</li><li>TDD workflow</li><li>Autorun</li><li>Rerunning last failures</li><li>Different ways to run different levels of tests</li><li>Command line flags and how to access them in IDEs</li><li>pytest.ini</li><li>zooming in and out of test levels</li><li>running parametrizations</li><li>running tests with coverage and profiling</li><li>parametrize vs parameterize</li><li>parametrization identifiers</li><li>pytest fixture support</li><li>global configurations / configuration templates</li><li>coverage and testing and being inviting to new contributors</li><li>confidence in changes and confidence in contributions</li><li>navigating code, tests, fixtures</li><li>grouping tests in modules, classes, directories</li><li>BDD, behavior driven development, cucumber, pytest-bdd</li><li>web development testing</li><li>parallel testing with xdist and IDE support</li><li>refactor rename</li></ul><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://amzn.to/3daFKXc">Python Testing with pytest</a> — The pytest book</li><li><a href="https://www.jetbrains.com/pycharm/">PyCharm</a></li><li><a href="https://pythontest.com/testandcode/pycharm">PyCharm pro</a></li><li><a href="https://pythontest.com/testandcode/54">episode 54: Python 1994 - Paul Everitt</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>IDEs can help people with automated testing.</p><p>In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.</p><p>The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.</p><p>We talk about a lot of topics, and it's a lot of fun. But it's also important. Because IDEs can make testing </p><p>Some topics discussed:</p><ul><li>Making testing more accessible</li><li>Test First vs teaching testing last</li><li>TDD workflow</li><li>Autorun</li><li>Rerunning last failures</li><li>Different ways to run different levels of tests</li><li>Command line flags and how to access them in IDEs</li><li>pytest.ini</li><li>zooming in and out of test levels</li><li>running parametrizations</li><li>running tests with coverage and profiling</li><li>parametrize vs parameterize</li><li>parametrization identifiers</li><li>pytest fixture support</li><li>global configurations / configuration templates</li><li>coverage and testing and being inviting to new contributors</li><li>confidence in changes and confidence in contributions</li><li>navigating code, tests, fixtures</li><li>grouping tests in modules, classes, directories</li><li>BDD, behavior driven development, cucumber, pytest-bdd</li><li>web development testing</li><li>parallel testing with xdist and IDE support</li><li>refactor rename</li></ul><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://amzn.to/3daFKXc">Python Testing with pytest</a> — The pytest book</li><li><a href="https://www.jetbrains.com/pycharm/">PyCharm</a></li><li><a href="https://pythontest.com/testandcode/pycharm">PyCharm pro</a></li><li><a href="https://pythontest.com/testandcode/54">episode 54: Python 1994 - Paul Everitt</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Fri, 20 Mar 2020 15:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/106.mp3" length="36382623" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3030</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>IDEs can help people with automated testing.</p><p>In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.</p><p>The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.</p><p>We talk about a lot of topics, and it's a lot of fun. But it's also important. Because IDEs can make testing </p><p>Some topics discussed:</p><ul><li>Making testing more accessible</li><li>Test First vs teaching testing last</li><li>TDD workflow</li><li>Autorun</li><li>Rerunning last failures</li><li>Different ways to run different levels of tests</li><li>Command line flags and how to access them in IDEs</li><li>pytest.ini</li><li>zooming in and out of test levels</li><li>running parametrizations</li><li>running tests with coverage and profiling</li><li>parametrize vs parameterize</li><li>parametrization identifiers</li><li>pytest fixture support</li><li>global configurations / configuration templates</li><li>coverage and testing and being inviting to new contributors</li><li>confidence in changes and confidence in contributions</li><li>navigating code, tests, fixtures</li><li>grouping tests in modules, classes, directories</li><li>BDD, behavior driven development, cucumber, pytest-bdd</li><li>web development testing</li><li>parallel testing with xdist and IDE support</li><li>refactor rename</li></ul><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://amzn.to/3daFKXc">Python Testing with pytest</a> — The pytest book</li><li><a href="https://www.jetbrains.com/pycharm/">PyCharm</a></li><li><a href="https://pythontest.com/testandcode/pycharm">PyCharm pro</a></li><li><a href="https://pythontest.com/testandcode/54">episode 54: Python 1994 - Paul Everitt</a></li><li><a href="https://pypi.org/project/pytest-xdist/">pytest-xdist</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>IDEs, software testing, PyCharm, pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>105: TAP: Test Anything Protocol - Matt Layman</title>
      <itunes:episode>105</itunes:episode>
      <podcast:episode>105</podcast:episode>
      <itunes:title>105: TAP: Test Anything Protocol - Matt Layman</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">963914cc-c298-47f6-931d-bcb21a9ee075</guid>
      <link>https://pythontest.com/testandcode/episodes/105-tap-test-anything-protocol-matt-layman</link>
      <description>
        <![CDATA[<p>The Test Anything Protocol, or TAP, is a way to record test results in a language agnostic way, predates XML by about 10 years, and is still alive and kicking.</p><p>Matt Layman has contributed to Python in many ways, including his educational newsletter, and his Django podcast, Django Riffs.</p><p>Matt is also the maintainer of tap.py and pytest-tap, two tools that bring the Test Anything Protocol to Python.</p><p>In this episode, Matt and I discuss TAP, it's history, his involvement, and some cool use cases for it.</p><p>Special Guest: Matt Layman.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mattlayman.com/">mattlayman.com</a></li><li><a href="https://www.mattlayman.com/blog/2020/django-riffs-podcast/">Django Riffs, a podcast for learning Django · Matt Layman</a></li><li><a href="https://testanything.org/">Test Anything Protocol</a></li><li><a href="https://github.com/python-tap/pytest-tap">pytest-tap: Test Anything Protocol (TAP) reporting plugin for pytest</a></li><li><a href="https://tappy.readthedocs.io/en/latest/">tappy - TAP tools for Python </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The Test Anything Protocol, or TAP, is a way to record test results in a language agnostic way, predates XML by about 10 years, and is still alive and kicking.</p><p>Matt Layman has contributed to Python in many ways, including his educational newsletter, and his Django podcast, Django Riffs.</p><p>Matt is also the maintainer of tap.py and pytest-tap, two tools that bring the Test Anything Protocol to Python.</p><p>In this episode, Matt and I discuss TAP, it's history, his involvement, and some cool use cases for it.</p><p>Special Guest: Matt Layman.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mattlayman.com/">mattlayman.com</a></li><li><a href="https://www.mattlayman.com/blog/2020/django-riffs-podcast/">Django Riffs, a podcast for learning Django · Matt Layman</a></li><li><a href="https://testanything.org/">Test Anything Protocol</a></li><li><a href="https://github.com/python-tap/pytest-tap">pytest-tap: Test Anything Protocol (TAP) reporting plugin for pytest</a></li><li><a href="https://tappy.readthedocs.io/en/latest/">tappy - TAP tools for Python </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 11 Mar 2020 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/105.mp3" length="20905040" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1740</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The Test Anything Protocol, or TAP, is a way to record test results in a language agnostic way, predates XML by about 10 years, and is still alive and kicking.</p><p>Matt Layman has contributed to Python in many ways, including his educational newsletter, and his Django podcast, Django Riffs.</p><p>Matt is also the maintainer of tap.py and pytest-tap, two tools that bring the Test Anything Protocol to Python.</p><p>In this episode, Matt and I discuss TAP, it's history, his involvement, and some cool use cases for it.</p><p>Special Guest: Matt Layman.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.mattlayman.com/">mattlayman.com</a></li><li><a href="https://www.mattlayman.com/blog/2020/django-riffs-podcast/">Django Riffs, a podcast for learning Django · Matt Layman</a></li><li><a href="https://testanything.org/">Test Anything Protocol</a></li><li><a href="https://github.com/python-tap/pytest-tap">pytest-tap: Test Anything Protocol (TAP) reporting plugin for pytest</a></li><li><a href="https://tappy.readthedocs.io/en/latest/">tappy - TAP tools for Python </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, TAP, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>104: Top 28 pytest plugins - Anthony Sottile</title>
      <itunes:episode>104</itunes:episode>
      <podcast:episode>104</podcast:episode>
      <itunes:title>104: Top 28 pytest plugins - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d10e82f5-2c59-4f24-86d9-0becf2006c83</guid>
      <link>https://pythontest.com/testandcode/episodes/104-top-28-pytest-plugins-anthony-sottile</link>
      <description>
        <![CDATA[<p>pytest is awesome by itself. pytest + plugins is even better.<br> In this episode, Anthony Sottile and Brian Okken discuss the top 28 pytest plugins.</p><p>Some of the plugins discussed (we also mention a few plugins related to some on this list):</p><ol><li> pytest-cov</li><li> pytest-timeout</li><li> pytest-xdist</li><li> pytest-mock</li><li> pytest-runner</li><li> pytest-instafail</li><li> pytest-django</li><li> pytest-html</li><li> pytest-metadata</li><li>pytest-asyncio</li><li>pytest-split-tests</li><li>pytest-sugar</li><li>pytest-rerunfailures</li><li>pytest-env</li><li>pytest-cache</li><li>pytest-flask</li><li>pytest-benchmark</li><li>pytest-ordering</li><li>pytest-watch</li><li>pytest-pythonpath</li><li>pytest-flake8</li><li>pytest-pep8</li><li>pytest-repeat</li><li>pytest-pylint</li><li>pytest-randomly</li><li>pytest-selenium</li><li>pytest-mypy</li><li>pytest-freezegun</li></ol><p>Honorable mention:</p><ul><li>pytest-black</li><li>pytest-emoji</li><li>pytest-poo</li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypistats.org/">PyPI Download Stats</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages: A monthly dump of the 4,000 most-downloaded packages from PyPI</a></li><li><a href="https://pythontest.com/testandcode/25">Test &amp; Code 25: Selenium, pytest, Mozilla – Dave Hunt</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest is awesome by itself. pytest + plugins is even better.<br> In this episode, Anthony Sottile and Brian Okken discuss the top 28 pytest plugins.</p><p>Some of the plugins discussed (we also mention a few plugins related to some on this list):</p><ol><li> pytest-cov</li><li> pytest-timeout</li><li> pytest-xdist</li><li> pytest-mock</li><li> pytest-runner</li><li> pytest-instafail</li><li> pytest-django</li><li> pytest-html</li><li> pytest-metadata</li><li>pytest-asyncio</li><li>pytest-split-tests</li><li>pytest-sugar</li><li>pytest-rerunfailures</li><li>pytest-env</li><li>pytest-cache</li><li>pytest-flask</li><li>pytest-benchmark</li><li>pytest-ordering</li><li>pytest-watch</li><li>pytest-pythonpath</li><li>pytest-flake8</li><li>pytest-pep8</li><li>pytest-repeat</li><li>pytest-pylint</li><li>pytest-randomly</li><li>pytest-selenium</li><li>pytest-mypy</li><li>pytest-freezegun</li></ol><p>Honorable mention:</p><ul><li>pytest-black</li><li>pytest-emoji</li><li>pytest-poo</li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypistats.org/">PyPI Download Stats</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages: A monthly dump of the 4,000 most-downloaded packages from PyPI</a></li><li><a href="https://pythontest.com/testandcode/25">Test &amp; Code 25: Selenium, pytest, Mozilla – Dave Hunt</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 04 Mar 2020 01:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/104.mp3" length="32470805" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2704</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest is awesome by itself. pytest + plugins is even better.<br> In this episode, Anthony Sottile and Brian Okken discuss the top 28 pytest plugins.</p><p>Some of the plugins discussed (we also mention a few plugins related to some on this list):</p><ol><li> pytest-cov</li><li> pytest-timeout</li><li> pytest-xdist</li><li> pytest-mock</li><li> pytest-runner</li><li> pytest-instafail</li><li> pytest-django</li><li> pytest-html</li><li> pytest-metadata</li><li>pytest-asyncio</li><li>pytest-split-tests</li><li>pytest-sugar</li><li>pytest-rerunfailures</li><li>pytest-env</li><li>pytest-cache</li><li>pytest-flask</li><li>pytest-benchmark</li><li>pytest-ordering</li><li>pytest-watch</li><li>pytest-pythonpath</li><li>pytest-flake8</li><li>pytest-pep8</li><li>pytest-repeat</li><li>pytest-pylint</li><li>pytest-randomly</li><li>pytest-selenium</li><li>pytest-mypy</li><li>pytest-freezegun</li></ol><p>Honorable mention:</p><ul><li>pytest-black</li><li>pytest-emoji</li><li>pytest-poo</li></ul><p>Special Guest: Anthony Sottile.</p><p><br></p><p>Links:</p><ul><li><a href="https://pypistats.org/">PyPI Download Stats</a></li><li><a href="https://hugovk.github.io/top-pypi-packages/">Top PyPI Packages: A monthly dump of the 4,000 most-downloaded packages from PyPI</a></li><li><a href="https://pythontest.com/testandcode/25">Test &amp; Code 25: Selenium, pytest, Mozilla – Dave Hunt</a></li><li><a href="https://pre-commit.com/">pre-commit</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>pytest, plugins, Python, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>103: Django - Lacey Williams Henschel</title>
      <itunes:episode>103</itunes:episode>
      <podcast:episode>103</podcast:episode>
      <itunes:title>103: Django - Lacey Williams Henschel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f9cdf2e1-893a-4f3c-b45f-838a6aaae413</guid>
      <link>https://pythontest.com/testandcode/episodes/103-django-lacey-williams-henschel</link>
      <description>
        <![CDATA[<p>Django is without a doubt one of the most used web frameworks for Python. Lacey Williams Henschel is a Django consultant and has joined me to talk about Django, the Django community, and so much more.</p><p>Topics:</p><ul><li>Django</li><li>The Django Community</li><li>Django Girls</li><li>Django Girls Tutorial</li><li>DjangoCon</li><li>Software Testing</li><li>Using tests during learning</li><li>pytest-django</li><li>testing Django</li><li>Wagtail</li></ul><p>Special Guest: Lacey Williams Henschel.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.djangoproject.com/">Django </a></li><li><a href="https://djangogirls.org/">Django Girls </a></li><li><a href="https://tutorial.djangogirls.org/en/">Django Girls Tutorial</a></li><li><a href="https://2020.djangocon.us/">DjangoCon US 2020 </a></li><li><a href="https://www.djangounderthehood.com/">Django: Under the Hood</a></li><li><a href="https://pydata.org/">PyData</a></li><li><a href="https://2020.pycascades.com/">PyCascades</a></li><li><a href="https://www.django-rest-framework.org/">Django REST framework</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django</a></li><li><a href="https://wagtail.io/">Wagtail CMS - Django Content Management System</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Django is without a doubt one of the most used web frameworks for Python. Lacey Williams Henschel is a Django consultant and has joined me to talk about Django, the Django community, and so much more.</p><p>Topics:</p><ul><li>Django</li><li>The Django Community</li><li>Django Girls</li><li>Django Girls Tutorial</li><li>DjangoCon</li><li>Software Testing</li><li>Using tests during learning</li><li>pytest-django</li><li>testing Django</li><li>Wagtail</li></ul><p>Special Guest: Lacey Williams Henschel.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.djangoproject.com/">Django </a></li><li><a href="https://djangogirls.org/">Django Girls </a></li><li><a href="https://tutorial.djangogirls.org/en/">Django Girls Tutorial</a></li><li><a href="https://2020.djangocon.us/">DjangoCon US 2020 </a></li><li><a href="https://www.djangounderthehood.com/">Django: Under the Hood</a></li><li><a href="https://pydata.org/">PyData</a></li><li><a href="https://2020.pycascades.com/">PyCascades</a></li><li><a href="https://www.django-rest-framework.org/">Django REST framework</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django</a></li><li><a href="https://wagtail.io/">Wagtail CMS - Django Content Management System</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Sat, 29 Feb 2020 17:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/103.mp3" length="19167784" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1595</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Django is without a doubt one of the most used web frameworks for Python. Lacey Williams Henschel is a Django consultant and has joined me to talk about Django, the Django community, and so much more.</p><p>Topics:</p><ul><li>Django</li><li>The Django Community</li><li>Django Girls</li><li>Django Girls Tutorial</li><li>DjangoCon</li><li>Software Testing</li><li>Using tests during learning</li><li>pytest-django</li><li>testing Django</li><li>Wagtail</li></ul><p>Special Guest: Lacey Williams Henschel.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.djangoproject.com/">Django </a></li><li><a href="https://djangogirls.org/">Django Girls </a></li><li><a href="https://tutorial.djangogirls.org/en/">Django Girls Tutorial</a></li><li><a href="https://2020.djangocon.us/">DjangoCon US 2020 </a></li><li><a href="https://www.djangounderthehood.com/">Django: Under the Hood</a></li><li><a href="https://pydata.org/">PyData</a></li><li><a href="https://2020.pycascades.com/">PyCascades</a></li><li><a href="https://www.django-rest-framework.org/">Django REST framework</a></li><li><a href="https://pytest-django.readthedocs.io/en/latest/">pytest-django</a></li><li><a href="https://wagtail.io/">Wagtail CMS - Django Content Management System</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>Django, Software Testing, Web Frameworks</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>102: Cosmic Python, TDD, testing and external dependencies  - Harry Percival</title>
      <itunes:episode>102</itunes:episode>
      <podcast:episode>102</podcast:episode>
      <itunes:title>102: Cosmic Python, TDD, testing and external dependencies  - Harry Percival</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">1b799c2c-353a-446d-adb8-0fa4860fadbc</guid>
      <link>https://pythontest.com/testandcode/episodes/102-cosmic-python-tdd-testing-and-external-dependencies-harry-percival</link>
      <description>
        <![CDATA[<p>Harry Percival has completed his second book, "Architecture Patterns with Python".<br> So of course we talk about the book, also known as "Cosmic Python".<br> We also discuss lots of testing topics, especially related to larger systems and systems involving third party interfaces and APIs.</p><p>Topics </p><ul><li>Harry's new book, "Architecture Patterns with Python". a.k.a. Cosmic Python </li><li>TDD : Test Driven Development</li><li>Test Pyramid</li><li>Tradeoffs of different architectural choices</li><li>Mocks and their pitfalls</li><li>Avoiding mocks</li><li>Separating conceptual business logic</li><li>Dependency injection</li><li>Dependency inversion</li><li>Identifying external dependencies</li><li>Interface adapters to mimize the exposed surface area of external dependencies</li><li>London School vs Classic/Detroit School of TDD</li><li>Testing strategies for testing external REST APIs</li></ul><p>Links:</p><ul><li><a href="https://www.cosmicpython.com/">Cosmic Python - Simple Patterns for Building Complex Applications</a></li><li><a href="https://amzn.to/39fZbve">Architecture Patterns with Python - on Amazon</a></li><li><a href="https://twitter.com/hjwp/">Harry Percival (@hjwp) / Twitter</a></li><li><a href="https://twitter.com/bob_the_mighty">Bob Gregory (@bob_the_mighty) / Twitter</a></li><li><a href="https://pypi.org/project/vcrpy/">vcrpy · PyPI</a></li><li><a href="https://www.cosmicpython.com/blog/2020-01-25-testing_external_api_calls.html">Writing tests for external API calls</a></li><li><a href="https://us.pycon.org/2020/schedule/presentation/118/">Stop Using Mocks (for a while) - Harry's PyCon talk</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Harry Percival has completed his second book, "Architecture Patterns with Python".<br> So of course we talk about the book, also known as "Cosmic Python".<br> We also discuss lots of testing topics, especially related to larger systems and systems involving third party interfaces and APIs.</p><p>Topics </p><ul><li>Harry's new book, "Architecture Patterns with Python". a.k.a. Cosmic Python </li><li>TDD : Test Driven Development</li><li>Test Pyramid</li><li>Tradeoffs of different architectural choices</li><li>Mocks and their pitfalls</li><li>Avoiding mocks</li><li>Separating conceptual business logic</li><li>Dependency injection</li><li>Dependency inversion</li><li>Identifying external dependencies</li><li>Interface adapters to mimize the exposed surface area of external dependencies</li><li>London School vs Classic/Detroit School of TDD</li><li>Testing strategies for testing external REST APIs</li></ul><p>Links:</p><ul><li><a href="https://www.cosmicpython.com/">Cosmic Python - Simple Patterns for Building Complex Applications</a></li><li><a href="https://amzn.to/39fZbve">Architecture Patterns with Python - on Amazon</a></li><li><a href="https://twitter.com/hjwp/">Harry Percival (@hjwp) / Twitter</a></li><li><a href="https://twitter.com/bob_the_mighty">Bob Gregory (@bob_the_mighty) / Twitter</a></li><li><a href="https://pypi.org/project/vcrpy/">vcrpy · PyPI</a></li><li><a href="https://www.cosmicpython.com/blog/2020-01-25-testing_external_api_calls.html">Writing tests for external API calls</a></li><li><a href="https://us.pycon.org/2020/schedule/presentation/118/">Stop Using Mocks (for a while) - Harry's PyCon talk</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 27 Feb 2020 02:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/102.mp3" length="30232779" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2505</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Harry Percival has completed his second book, "Architecture Patterns with Python".<br> So of course we talk about the book, also known as "Cosmic Python".<br> We also discuss lots of testing topics, especially related to larger systems and systems involving third party interfaces and APIs.</p><p>Topics </p><ul><li>Harry's new book, "Architecture Patterns with Python". a.k.a. Cosmic Python </li><li>TDD : Test Driven Development</li><li>Test Pyramid</li><li>Tradeoffs of different architectural choices</li><li>Mocks and their pitfalls</li><li>Avoiding mocks</li><li>Separating conceptual business logic</li><li>Dependency injection</li><li>Dependency inversion</li><li>Identifying external dependencies</li><li>Interface adapters to mimize the exposed surface area of external dependencies</li><li>London School vs Classic/Detroit School of TDD</li><li>Testing strategies for testing external REST APIs</li></ul><p>Links:</p><ul><li><a href="https://www.cosmicpython.com/">Cosmic Python - Simple Patterns for Building Complex Applications</a></li><li><a href="https://amzn.to/39fZbve">Architecture Patterns with Python - on Amazon</a></li><li><a href="https://twitter.com/hjwp/">Harry Percival (@hjwp) / Twitter</a></li><li><a href="https://twitter.com/bob_the_mighty">Bob Gregory (@bob_the_mighty) / Twitter</a></li><li><a href="https://pypi.org/project/vcrpy/">vcrpy · PyPI</a></li><li><a href="https://www.cosmicpython.com/blog/2020-01-25-testing_external_api_calls.html">Writing tests for external API calls</a></li><li><a href="https://us.pycon.org/2020/schedule/presentation/118/">Stop Using Mocks (for a while) - Harry's PyCon talk</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://www.cosmicpython.com">Harry Percival @hjwp@fosstodon.org</podcast:person>
    </item>
    <item>
      <title>101: Application Security - Anthony Shaw</title>
      <itunes:episode>101</itunes:episode>
      <podcast:episode>101</podcast:episode>
      <itunes:title>101: Application Security - Anthony Shaw</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e4d2655c-a9a8-4681-90a0-0faa0e5ab36b</guid>
      <link>https://pythontest.com/testandcode/episodes/101-application-security-anthony-shaw</link>
      <description>
        <![CDATA[<p>Application security is best designed into a system from the start.<br> Anthony Shaw is doing something about it by creating an editor plugin that actually helps you write more secure application code while you are coding.</p><p>On today's Test &amp; Code, Anthony and I discuss his security plugin, but also application security in general, as well as other security components you need to consider.</p><p>Security is something every team needs to think about, whether you are a single person team, a small startup, or a large corporation.</p><p>Anthony and I also discuss where to start if it's just a few of you, or even just one of you.</p><p>Topics include:</p><ul><li>Finding security risks while writing code.</li><li>What are the risks for your applications.</li><li>Thinking about attack surfaces.</li><li>Static and dynamic code analysis.</li><li>Securing the environment an app is running in.</li><li>Tools for scanning live sites for vulnerabilities.</li><li>Secret management.</li><li>Hashing algorithms.</li><li>Authentication systems.</li><li>and Anthony's upcoming cPython Internals book.</li></ul><p>Special Guest: Anthony Shaw.</p><p><br></p><p>Links:</p><ul><li><a href="https://plugins.jetbrains.com/plugin/13609-python-security">Python Security - plugin for PyCharm</a></li><li><a href="https://bandit.readthedocs.io/en/latest/">Bandit</a></li><li><a href="https://www.hackthebox.eu/">Hack The Box </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Application security is best designed into a system from the start.<br> Anthony Shaw is doing something about it by creating an editor plugin that actually helps you write more secure application code while you are coding.</p><p>On today's Test &amp; Code, Anthony and I discuss his security plugin, but also application security in general, as well as other security components you need to consider.</p><p>Security is something every team needs to think about, whether you are a single person team, a small startup, or a large corporation.</p><p>Anthony and I also discuss where to start if it's just a few of you, or even just one of you.</p><p>Topics include:</p><ul><li>Finding security risks while writing code.</li><li>What are the risks for your applications.</li><li>Thinking about attack surfaces.</li><li>Static and dynamic code analysis.</li><li>Securing the environment an app is running in.</li><li>Tools for scanning live sites for vulnerabilities.</li><li>Secret management.</li><li>Hashing algorithms.</li><li>Authentication systems.</li><li>and Anthony's upcoming cPython Internals book.</li></ul><p>Special Guest: Anthony Shaw.</p><p><br></p><p>Links:</p><ul><li><a href="https://plugins.jetbrains.com/plugin/13609-python-security">Python Security - plugin for PyCharm</a></li><li><a href="https://bandit.readthedocs.io/en/latest/">Bandit</a></li><li><a href="https://www.hackthebox.eu/">Hack The Box </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Wed, 19 Feb 2020 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/101.mp3" length="32555438" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2711</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Application security is best designed into a system from the start.<br> Anthony Shaw is doing something about it by creating an editor plugin that actually helps you write more secure application code while you are coding.</p><p>On today's Test &amp; Code, Anthony and I discuss his security plugin, but also application security in general, as well as other security components you need to consider.</p><p>Security is something every team needs to think about, whether you are a single person team, a small startup, or a large corporation.</p><p>Anthony and I also discuss where to start if it's just a few of you, or even just one of you.</p><p>Topics include:</p><ul><li>Finding security risks while writing code.</li><li>What are the risks for your applications.</li><li>Thinking about attack surfaces.</li><li>Static and dynamic code analysis.</li><li>Securing the environment an app is running in.</li><li>Tools for scanning live sites for vulnerabilities.</li><li>Secret management.</li><li>Hashing algorithms.</li><li>Authentication systems.</li><li>and Anthony's upcoming cPython Internals book.</li></ul><p>Special Guest: Anthony Shaw.</p><p><br></p><p>Links:</p><ul><li><a href="https://plugins.jetbrains.com/plugin/13609-python-security">Python Security - plugin for PyCharm</a></li><li><a href="https://bandit.readthedocs.io/en/latest/">Bandit</a></li><li><a href="https://www.hackthebox.eu/">Hack The Box </a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>application security</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://tonybaloney.github.io/">Anthony Shaw</podcast:person>
    </item>
    <item>
      <title>100: A/B Testing - Leemay Nassery</title>
      <itunes:episode>100</itunes:episode>
      <podcast:episode>100</podcast:episode>
      <itunes:title>100: A/B Testing - Leemay Nassery</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">280c370b-f921-499f-839c-0aa5a44fa7cb</guid>
      <link>https://pythontest.com/testandcode/episodes/100-a-b-testing-leemay-nassery</link>
      <description>
        <![CDATA[<p>Let's say you have a web application and you want to make some changes to improve it.<br> You may want to A/B test it first to make sure you are really improving things.</p><p>But really what is A/B testing? </p><p>That's what we'll find out on this episode with Leemay Nassery.</p><p>Special Guest: Leemay Nassery.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Let's say you have a web application and you want to make some changes to improve it.<br> You may want to A/B test it first to make sure you are really improving things.</p><p>But really what is A/B testing? </p><p>That's what we'll find out on this episode with Leemay Nassery.</p><p>Special Guest: Leemay Nassery.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 13 Feb 2020 01:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/100.mp3" length="25615218" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2133</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Let's say you have a web application and you want to make some changes to improve it.<br> You may want to A/B test it first to make sure you are really improving things.</p><p>But really what is A/B testing? </p><p>That's what we'll find out on this episode with Leemay Nassery.</p><p>Special Guest: Leemay Nassery.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>A/B Testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>99: Software Maintenance and Chess</title>
      <itunes:episode>99</itunes:episode>
      <podcast:episode>99</podcast:episode>
      <itunes:title>99: Software Maintenance and Chess</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e0e4e4de-c700-4b69-b7bc-e6fade2376fb</guid>
      <link>https://pythontest.com/testandcode/episodes/99-software-maintenance-and-chess</link>
      <description>
        <![CDATA[<p>I play a form of group chess that has some interesting analogies to software development and maintenance of existing systems. This episode explains group chess and explores a few of those analogies.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I play a form of group chess that has some interesting analogies to software development and maintenance of existing systems. This episode explains group chess and explores a few of those analogies.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Thu, 30 Jan 2020 16:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/99.mp3" length="10711003" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>891</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I play a form of group chess that has some interesting analogies to software development and maintenance of existing systems. This episode explains group chess and explores a few of those analogies.</p><p><br></p>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>software maintenance, legacy systems</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>98: pytest-testmon - selects tests affected by changed files and methods - Tibor Arpas</title>
      <itunes:episode>98</itunes:episode>
      <podcast:episode>98</podcast:episode>
      <itunes:title>98: pytest-testmon - selects tests affected by changed files and methods - Tibor Arpas</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">34371047-6224-4127-b261-da936d60dca9</guid>
      <link>https://pythontest.com/testandcode/episodes/98-pytest-testmon-selects-tests-affected-by-changed-files-and-methods-tibor-arpas</link>
      <description>
        <![CDATA[<p>pytest-testmon is a pytest plugin which selects and executes only tests you need to run. It does this by collecting dependencies between tests and all executed code (internally using Coverage.py) and comparing the dependencies against changes. testmon updates its database on each test execution, so it works independently of version control.</p><p>In this episode, I talk with testmon creator Tibor Arpas about testmon, about it's use and how it works.</p><p>Special Guest: Tibor Arpas.</p><p><br></p><p>Links:</p><ul><li><a href="https://testmon.org/">testmon.org</a></li><li><a href="https://testmon.org/determining-affected-tests.html">Determining affected tests</a></li><li><a href="https://testmon.org/how-to-set-up-and-use-pytest-in-pycharm.html">Tibor's post on using pytest in PyCharm</a></li><li><a href="https://plugins.jetbrains.com/plugin/11425-runtime-info/">runtime-info plugin for PyCharm</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest-testmon is a pytest plugin which selects and executes only tests you need to run. It does this by collecting dependencies between tests and all executed code (internally using Coverage.py) and comparing the dependencies against changes. testmon updates its database on each test execution, so it works independently of version control.</p><p>In this episode, I talk with testmon creator Tibor Arpas about testmon, about it's use and how it works.</p><p>Special Guest: Tibor Arpas.</p><p><br></p><p>Links:</p><ul><li><a href="https://testmon.org/">testmon.org</a></li><li><a href="https://testmon.org/determining-affected-tests.html">Determining affected tests</a></li><li><a href="https://testmon.org/how-to-set-up-and-use-pytest-in-pycharm.html">Tibor's post on using pytest in PyCharm</a></li><li><a href="https://plugins.jetbrains.com/plugin/11425-runtime-info/">runtime-info plugin for PyCharm</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 21 Jan 2020 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/98.mp3" length="16003721" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1979</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest-testmon is a pytest plugin which selects and executes only tests you need to run. It does this by collecting dependencies between tests and all executed code (internally using Coverage.py) and comparing the dependencies against changes. testmon updates its database on each test execution, so it works independently of version control.</p><p>In this episode, I talk with testmon creator Tibor Arpas about testmon, about it's use and how it works.</p><p>Special Guest: Tibor Arpas.</p><p><br></p><p>Links:</p><ul><li><a href="https://testmon.org/">testmon.org</a></li><li><a href="https://testmon.org/determining-affected-tests.html">Determining affected tests</a></li><li><a href="https://testmon.org/how-to-set-up-and-use-pytest-in-pycharm.html">Tibor's post on using pytest in PyCharm</a></li><li><a href="https://plugins.jetbrains.com/plugin/11425-runtime-info/">runtime-info plugin for PyCharm</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, plugins, optimization</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>97: 2019 Retrospective, 2020 Plans, and an amazing decade</title>
      <itunes:episode>97</itunes:episode>
      <podcast:episode>97</podcast:episode>
      <itunes:title>97: 2019 Retrospective, 2020 Plans, and an amazing decade</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7e49cedf-c44e-486a-bb91-96b056250ade</guid>
      <link>https://pythontest.com/testandcode/episodes/97-2019-retrospective-2020-plans-and-an-amazing-decade</link>
      <description>
        <![CDATA[<p>This episode is not just a look back on 2019, and a look forward to 2020.<br> Also, 2019 is the end of an amazingly transofrmative decade for me, so I'm going to discuss that as well.</p><p>top 10 episodes of 2019</p><ul><li>10: <a href="https://pythontest.com/testandcode/46">episode 46</a>, Testing Hard To Test Applications - Anthony Shaw</li><li>9: <a href="https://pythontest.com/testandcode/64">episode 64</a>, Practicing Programming to increase your value</li><li>8: <a href="https://pythontest.com/testandcode/70">episode 70</a>, Learning Software without a CS degree - Dane Hillard</li><li>7: <a href="https://pythontest.com/testandcode/75">episode 75</a>, Modern Testing Principles - Alan Page</li><li>6: <a href="https://pythontest.com/testandcode/72">episode 72</a>, Technical Interview Fixes - April Wensel</li><li>5: <a href="https://pythontest.com/testandcode/69">episode 69</a>, Andy Hunt - The Pragmatic Programmer</li><li>4: <a href="https://pythontest.com/testandcode/73">episode 73</a>, PyCon 2019 Live Recording</li><li>3: <a href="https://pythontest.com/testandcode/71">episode 71</a>, Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko</li><li>2: <a href="https://pythontest.com/testandcode/76">episode 76</a>, TDD: Don’t be afraid of Test-Driven Development - Chris May</li><li>1: <a href="https://pythontest.com/testandcode/89">episode 89</a>, Improving Programming Education - Nicholas Tollervey</li></ul><p><strong>Looking back on the last decade</strong><br> Some amazing events, like 2 podcasts, a book, a blog, speaking events, and teaching has led me to where we're at now.</p><p><strong>Looking forward to 2020 and beyond</strong><br> I discussed what's in store in the next year and moving forward.</p><p><strong>A closing quote</strong><br> Software is a blast. At least, it should be. <br> I want everyone to have fun writing software. <br> Leaning on automated tests is the best way I know to allow me confidence and freedome to:</p><ul><li>rewrite big chunks of code</li><li>play with the code</li><li>try new things</li><li>have fun without fear</li><li>go home feeling good about what I did</li><li>be proud of my code I want everyone to have that.</li></ul><p>That's why I promote and teach automated testing.</p><p>I hope you had an amazing decade. <br> And I wish you a productive and fun 2020 and the upcoming decade.<br> If we work together and help eachother reach new heights, we can achieve some pretty amazing things</p><p><br></p><p>Links:</p><ul><li><a href="https://sedimental.org/">Thanks, 201X! — Mahmoud Hashemi's blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode is not just a look back on 2019, and a look forward to 2020.<br> Also, 2019 is the end of an amazingly transofrmative decade for me, so I'm going to discuss that as well.</p><p>top 10 episodes of 2019</p><ul><li>10: <a href="https://pythontest.com/testandcode/46">episode 46</a>, Testing Hard To Test Applications - Anthony Shaw</li><li>9: <a href="https://pythontest.com/testandcode/64">episode 64</a>, Practicing Programming to increase your value</li><li>8: <a href="https://pythontest.com/testandcode/70">episode 70</a>, Learning Software without a CS degree - Dane Hillard</li><li>7: <a href="https://pythontest.com/testandcode/75">episode 75</a>, Modern Testing Principles - Alan Page</li><li>6: <a href="https://pythontest.com/testandcode/72">episode 72</a>, Technical Interview Fixes - April Wensel</li><li>5: <a href="https://pythontest.com/testandcode/69">episode 69</a>, Andy Hunt - The Pragmatic Programmer</li><li>4: <a href="https://pythontest.com/testandcode/73">episode 73</a>, PyCon 2019 Live Recording</li><li>3: <a href="https://pythontest.com/testandcode/71">episode 71</a>, Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko</li><li>2: <a href="https://pythontest.com/testandcode/76">episode 76</a>, TDD: Don’t be afraid of Test-Driven Development - Chris May</li><li>1: <a href="https://pythontest.com/testandcode/89">episode 89</a>, Improving Programming Education - Nicholas Tollervey</li></ul><p><strong>Looking back on the last decade</strong><br> Some amazing events, like 2 podcasts, a book, a blog, speaking events, and teaching has led me to where we're at now.</p><p><strong>Looking forward to 2020 and beyond</strong><br> I discussed what's in store in the next year and moving forward.</p><p><strong>A closing quote</strong><br> Software is a blast. At least, it should be. <br> I want everyone to have fun writing software. <br> Leaning on automated tests is the best way I know to allow me confidence and freedome to:</p><ul><li>rewrite big chunks of code</li><li>play with the code</li><li>try new things</li><li>have fun without fear</li><li>go home feeling good about what I did</li><li>be proud of my code I want everyone to have that.</li></ul><p>That's why I promote and teach automated testing.</p><p>I hope you had an amazing decade. <br> And I wish you a productive and fun 2020 and the upcoming decade.<br> If we work together and help eachother reach new heights, we can achieve some pretty amazing things</p><p><br></p><p>Links:</p><ul><li><a href="https://sedimental.org/">Thanks, 201X! — Mahmoud Hashemi's blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 31 Dec 2019 12:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/97.mp3" length="16365073" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1362</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode is not just a look back on 2019, and a look forward to 2020.<br> Also, 2019 is the end of an amazingly transofrmative decade for me, so I'm going to discuss that as well.</p><p>top 10 episodes of 2019</p><ul><li>10: <a href="https://pythontest.com/testandcode/46">episode 46</a>, Testing Hard To Test Applications - Anthony Shaw</li><li>9: <a href="https://pythontest.com/testandcode/64">episode 64</a>, Practicing Programming to increase your value</li><li>8: <a href="https://pythontest.com/testandcode/70">episode 70</a>, Learning Software without a CS degree - Dane Hillard</li><li>7: <a href="https://pythontest.com/testandcode/75">episode 75</a>, Modern Testing Principles - Alan Page</li><li>6: <a href="https://pythontest.com/testandcode/72">episode 72</a>, Technical Interview Fixes - April Wensel</li><li>5: <a href="https://pythontest.com/testandcode/69">episode 69</a>, Andy Hunt - The Pragmatic Programmer</li><li>4: <a href="https://pythontest.com/testandcode/73">episode 73</a>, PyCon 2019 Live Recording</li><li>3: <a href="https://pythontest.com/testandcode/71">episode 71</a>, Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko</li><li>2: <a href="https://pythontest.com/testandcode/76">episode 76</a>, TDD: Don’t be afraid of Test-Driven Development - Chris May</li><li>1: <a href="https://pythontest.com/testandcode/89">episode 89</a>, Improving Programming Education - Nicholas Tollervey</li></ul><p><strong>Looking back on the last decade</strong><br> Some amazing events, like 2 podcasts, a book, a blog, speaking events, and teaching has led me to where we're at now.</p><p><strong>Looking forward to 2020 and beyond</strong><br> I discussed what's in store in the next year and moving forward.</p><p><strong>A closing quote</strong><br> Software is a blast. At least, it should be. <br> I want everyone to have fun writing software. <br> Leaning on automated tests is the best way I know to allow me confidence and freedome to:</p><ul><li>rewrite big chunks of code</li><li>play with the code</li><li>try new things</li><li>have fun without fear</li><li>go home feeling good about what I did</li><li>be proud of my code I want everyone to have that.</li></ul><p>That's why I promote and teach automated testing.</p><p>I hope you had an amazing decade. <br> And I wish you a productive and fun 2020 and the upcoming decade.<br> If we work together and help eachother reach new heights, we can achieve some pretty amazing things</p><p><br></p><p>Links:</p><ul><li><a href="https://sedimental.org/">Thanks, 201X! — Mahmoud Hashemi's blog</a></li></ul>
<br><p><br></p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>96: Azure Pipelines - Thomas Eckert</title>
      <itunes:episode>96</itunes:episode>
      <podcast:episode>96</podcast:episode>
      <itunes:title>96: Azure Pipelines - Thomas Eckert</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e5f4955b-2c9d-4ca4-b2ea-1186dda3367a</guid>
      <link>https://pythontest.com/testandcode/episodes/96-azure-pipelines-thomas-eckert</link>
      <description>
        <![CDATA[<p>Pipelines are used a lot in software projects to automated much of the work around build, test, deployment and more. Thomas Eckert talks with me about pipelines, specifically Azure Pipelines. Some of the history, and how we can use pipelines for modern Python projects.</p><p>Special Guest: Thomas Eckert.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pallets/click">click repo</a></li><li><a href="https://github.com/marketplace/actions/azure-pipelines-action">Azure Pipelines Action · Actions · GitHub Marketplace</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Pipelines are used a lot in software projects to automated much of the work around build, test, deployment and more. Thomas Eckert talks with me about pipelines, specifically Azure Pipelines. Some of the history, and how we can use pipelines for modern Python projects.</p><p>Special Guest: Thomas Eckert.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pallets/click">click repo</a></li><li><a href="https://github.com/marketplace/actions/azure-pipelines-action">Azure Pipelines Action · Actions · GitHub Marketplace</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 16 Dec 2019 09:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/96.mp3" length="12736070" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1570</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Pipelines are used a lot in software projects to automated much of the work around build, test, deployment and more. Thomas Eckert talks with me about pipelines, specifically Azure Pipelines. Some of the history, and how we can use pipelines for modern Python projects.</p><p>Special Guest: Thomas Eckert.</p><p><br></p><p>Links:</p><ul><li><a href="https://github.com/pallets/click">click repo</a></li><li><a href="https://github.com/marketplace/actions/azure-pipelines-action">Azure Pipelines Action · Actions · GitHub Marketplace</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>azure pipelines, build pipelines, automation, continuous integration, continuous deployment</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>95: Data Science Pipeline Testing with Great Expectations - Abe Gong</title>
      <itunes:episode>95</itunes:episode>
      <podcast:episode>95</podcast:episode>
      <itunes:title>95: Data Science Pipeline Testing with Great Expectations - Abe Gong</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">88e6260b-831f-4566-af22-5649b6580c64</guid>
      <link>https://pythontest.com/testandcode/episodes/95-data-science-pipeline-testing-with-great-expectations-abe-gong</link>
      <description>
        <![CDATA[<p>Data science and machine learning are affecting more of our lives every day. Decisions based on data science and machine learning are heavily dependent on the quality of the data, and the quality of the data pipeline.</p><p>Some of the software in the pipeline can be tested to some extent with traditional testing tools, like pytest.</p><p>But what about the data? The data entering the pipeline, and at various stages along the pipeline, should be validated.</p><p>That's where pipeline tests come in.</p><p>Pipeline tests are applied to data. Pipeline tests help you guard against upstream data changes and monitor data quality.</p><p>Abe Gong and Superconductive are building an open source project called Great Expectations. It's a tool to help you build pipeline tests.</p><p>This is quite an interesting idea, and I hope it gains traction and takes off.</p><p>Special Guest: Abe Gong.</p><p><br></p><p>Links:</p><ul><li><a href="https://greatexpectations.io/">Great Expectations</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Data science and machine learning are affecting more of our lives every day. Decisions based on data science and machine learning are heavily dependent on the quality of the data, and the quality of the data pipeline.</p><p>Some of the software in the pipeline can be tested to some extent with traditional testing tools, like pytest.</p><p>But what about the data? The data entering the pipeline, and at various stages along the pipeline, should be validated.</p><p>That's where pipeline tests come in.</p><p>Pipeline tests are applied to data. Pipeline tests help you guard against upstream data changes and monitor data quality.</p><p>Abe Gong and Superconductive are building an open source project called Great Expectations. It's a tool to help you build pipeline tests.</p><p>This is quite an interesting idea, and I hope it gains traction and takes off.</p><p>Special Guest: Abe Gong.</p><p><br></p><p>Links:</p><ul><li><a href="https://greatexpectations.io/">Great Expectations</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sat, 30 Nov 2019 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/95.mp3" length="11128470" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1369</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Data science and machine learning are affecting more of our lives every day. Decisions based on data science and machine learning are heavily dependent on the quality of the data, and the quality of the data pipeline.</p><p>Some of the software in the pipeline can be tested to some extent with traditional testing tools, like pytest.</p><p>But what about the data? The data entering the pipeline, and at various stages along the pipeline, should be validated.</p><p>That's where pipeline tests come in.</p><p>Pipeline tests are applied to data. Pipeline tests help you guard against upstream data changes and monitor data quality.</p><p>Abe Gong and Superconductive are building an open source project called Great Expectations. It's a tool to help you build pipeline tests.</p><p>This is quite an interesting idea, and I hope it gains traction and takes off.</p><p>Special Guest: Abe Gong.</p><p><br></p><p>Links:</p><ul><li><a href="https://greatexpectations.io/">Great Expectations</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>data pipelines, machine learning, data science, pipeline debt, pipeline tests, data engineering</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>94: The real 11 reasons I don't hire you - Charity Majors</title>
      <itunes:episode>94</itunes:episode>
      <podcast:episode>94</podcast:episode>
      <itunes:title>94: The real 11 reasons I don't hire you - Charity Majors</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">09a787b3-3004-499f-9700-caeb097cf76d</guid>
      <link>https://pythontest.com/testandcode/episodes/94-the-real-11-reasons-i-dont-hire-you-charity-majors</link>
      <description>
        <![CDATA[<p>You've applied for a job, maybe lots of jobs.<br> Depending on the company, you've gotta get through:</p><ul><li>a resume review</li><li>a coding challange</li><li>a phone screen</li><li>maybe another code example</li><li>an in person interview</li></ul><p>If you get the job, and you enjoy the work, awesome, congratulations.</p><p>If you don't get the job, it'd be really great to know why.</p><p>Sometimes it isn't because you aren't a skilled engineer.</p><p>What other reasons are there?</p><p>Well, that's what we're talking about today.</p><p>Charity Majors is the cofounder and CTO of Honeycomb.io, and we're going to talk about reasons for not hiring someone.</p><p>This is a very informative episode both for people who job hunt in the future and for hiring managers and people on the interview team.</p><p>Special Guest: Charity Majors.</p><p><br></p><p>Links:</p><ul><li><a href="https://charity.wtf/2019/10/18/the-real-11-reasons-i-dont-hire-you/">The (Real) 11 Reasons I Don’t Hire You</a> — The article</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>You've applied for a job, maybe lots of jobs.<br> Depending on the company, you've gotta get through:</p><ul><li>a resume review</li><li>a coding challange</li><li>a phone screen</li><li>maybe another code example</li><li>an in person interview</li></ul><p>If you get the job, and you enjoy the work, awesome, congratulations.</p><p>If you don't get the job, it'd be really great to know why.</p><p>Sometimes it isn't because you aren't a skilled engineer.</p><p>What other reasons are there?</p><p>Well, that's what we're talking about today.</p><p>Charity Majors is the cofounder and CTO of Honeycomb.io, and we're going to talk about reasons for not hiring someone.</p><p>This is a very informative episode both for people who job hunt in the future and for hiring managers and people on the interview team.</p><p>Special Guest: Charity Majors.</p><p><br></p><p>Links:</p><ul><li><a href="https://charity.wtf/2019/10/18/the-real-11-reasons-i-dont-hire-you/">The (Real) 11 Reasons I Don’t Hire You</a> — The article</li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 18 Nov 2019 10:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/94.mp3" length="16706829" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2066</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>You've applied for a job, maybe lots of jobs.<br> Depending on the company, you've gotta get through:</p><ul><li>a resume review</li><li>a coding challange</li><li>a phone screen</li><li>maybe another code example</li><li>an in person interview</li></ul><p>If you get the job, and you enjoy the work, awesome, congratulations.</p><p>If you don't get the job, it'd be really great to know why.</p><p>Sometimes it isn't because you aren't a skilled engineer.</p><p>What other reasons are there?</p><p>Well, that's what we're talking about today.</p><p>Charity Majors is the cofounder and CTO of Honeycomb.io, and we're going to talk about reasons for not hiring someone.</p><p>This is a very informative episode both for people who job hunt in the future and for hiring managers and people on the interview team.</p><p>Special Guest: Charity Majors.</p><p><br></p><p>Links:</p><ul><li><a href="https://charity.wtf/2019/10/18/the-real-11-reasons-i-dont-hire-you/">The (Real) 11 Reasons I Don’t Hire You</a> — The article</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>93: Software Testing, Book Writing, Teaching, Public Speaking, and PyCarolinas - Andy Knight</title>
      <itunes:episode>93</itunes:episode>
      <podcast:episode>93</podcast:episode>
      <itunes:title>93: Software Testing, Book Writing, Teaching, Public Speaking, and PyCarolinas - Andy Knight</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">23094a5e-61d8-409c-89d9-cfa1f26eaafe</guid>
      <link>https://pythontest.com/testandcode/episodes/93-software-testing-book-writing-teaching-public-speaking-and-pycarolinas-andy-knight</link>
      <description>
        <![CDATA[<p>Andy Knight is the Automation Panda. </p><p>Andy Knight is passionate about software testing, and shares his passion through public speaking, writing on automationpanda.com, teaching as an adjunct professor, and now also through writing a book and organizing a new regional Python conference.</p><p>Topics of this episode include:</p><ul><li>Andy's book on software testing</li><li>Being an adjunct professor</li><li>Public speaking and preparing talk proposals <ul><li>including tips from Andy about proposals and preparing for talks</li></ul></li><li>PyCarolinas</li></ul><p>Special Guest: Andy Knight.</p><p><br></p><p>Links:</p><ul><li><a href="https://automationpanda.com/">Automation Panda</a></li><li><a href="https://automationpanda.com/speaking/">Andy's Speaking events</a></li><li><a href="http://pycarolinas.org">PyCarolinas 2020</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Andy Knight is the Automation Panda. </p><p>Andy Knight is passionate about software testing, and shares his passion through public speaking, writing on automationpanda.com, teaching as an adjunct professor, and now also through writing a book and organizing a new regional Python conference.</p><p>Topics of this episode include:</p><ul><li>Andy's book on software testing</li><li>Being an adjunct professor</li><li>Public speaking and preparing talk proposals <ul><li>including tips from Andy about proposals and preparing for talks</li></ul></li><li>PyCarolinas</li></ul><p>Special Guest: Andy Knight.</p><p><br></p><p>Links:</p><ul><li><a href="https://automationpanda.com/">Automation Panda</a></li><li><a href="https://automationpanda.com/speaking/">Andy's Speaking events</a></li><li><a href="http://pycarolinas.org">PyCarolinas 2020</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 30 Oct 2019 22:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/93.mp3" length="14775627" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1825</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Andy Knight is the Automation Panda. </p><p>Andy Knight is passionate about software testing, and shares his passion through public speaking, writing on automationpanda.com, teaching as an adjunct professor, and now also through writing a book and organizing a new regional Python conference.</p><p>Topics of this episode include:</p><ul><li>Andy's book on software testing</li><li>Being an adjunct professor</li><li>Public speaking and preparing talk proposals <ul><li>including tips from Andy about proposals and preparing for talks</li></ul></li><li>PyCarolinas</li></ul><p>Special Guest: Andy Knight.</p><p><br></p><p>Links:</p><ul><li><a href="https://automationpanda.com/">Automation Panda</a></li><li><a href="https://automationpanda.com/speaking/">Andy's Speaking events</a></li><li><a href="http://pycarolinas.org">PyCarolinas 2020</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, software testing, pytest, teaching, public speaking</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>92: 9 Steps to Crater Quality &amp; Destroy Customer Satisfaction - Cristian Medina</title>
      <itunes:episode>92</itunes:episode>
      <podcast:episode>92</podcast:episode>
      <itunes:title>92: 9 Steps to Crater Quality &amp; Destroy Customer Satisfaction - Cristian Medina</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">08d101a6-8cc5-4959-8bf7-5b57b0efe9c5</guid>
      <link>https://pythontest.com/testandcode/episodes/92-9-steps-to-crater-quality-destroy-customer-satisfaction-cristian-medina</link>
      <description>
        <![CDATA[<p>Cristian Medina wrote an article recently called "Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices"</p><p>Of course, it's sarcastic, and aims to highlight many problems with organizational practices that reduce software quality.</p><p>The article doesn't go out of character, and only promotes the anti-patterns.<br> However, in this interview, we discuss each point, and the corollary of what you really should do. At least, our perspectives.</p><p>Here's the list of all the points discussed in the article and in this episode:</p><ol><li>Make the Test teams solely responsible for quality</li><li>Require all tests to be automated before releasing</li><li>Require 100% code coverage</li><li>Isolate the Test organization from Development</li><li>Measure the success of the process, not the product. <ul><li>Metrics, if rewarded, will always be gamed.</li></ul></li><li>Require granular projections from engineers</li><li>Reward quick patching instead of solving</li><li>Plan for today instead of tomorrow</li></ol><p>Special Guest: Cristian Medina.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.freecodecamp.org/news/organizational-test-practices-guaranteed-to-lower-quality/">Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices</a> — The article we discuss in the show.</li><li><a href="https://tryexceptpass.org/">tryexceptpass</a> — Cris's blog</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Cristian Medina wrote an article recently called "Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices"</p><p>Of course, it's sarcastic, and aims to highlight many problems with organizational practices that reduce software quality.</p><p>The article doesn't go out of character, and only promotes the anti-patterns.<br> However, in this interview, we discuss each point, and the corollary of what you really should do. At least, our perspectives.</p><p>Here's the list of all the points discussed in the article and in this episode:</p><ol><li>Make the Test teams solely responsible for quality</li><li>Require all tests to be automated before releasing</li><li>Require 100% code coverage</li><li>Isolate the Test organization from Development</li><li>Measure the success of the process, not the product. <ul><li>Metrics, if rewarded, will always be gamed.</li></ul></li><li>Require granular projections from engineers</li><li>Reward quick patching instead of solving</li><li>Plan for today instead of tomorrow</li></ol><p>Special Guest: Cristian Medina.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.freecodecamp.org/news/organizational-test-practices-guaranteed-to-lower-quality/">Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices</a> — The article we discuss in the show.</li><li><a href="https://tryexceptpass.org/">tryexceptpass</a> — Cris's blog</li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 20 Oct 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/92.mp3" length="17023755" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2106</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Cristian Medina wrote an article recently called "Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices"</p><p>Of course, it's sarcastic, and aims to highlight many problems with organizational practices that reduce software quality.</p><p>The article doesn't go out of character, and only promotes the anti-patterns.<br> However, in this interview, we discuss each point, and the corollary of what you really should do. At least, our perspectives.</p><p>Here's the list of all the points discussed in the article and in this episode:</p><ol><li>Make the Test teams solely responsible for quality</li><li>Require all tests to be automated before releasing</li><li>Require 100% code coverage</li><li>Isolate the Test organization from Development</li><li>Measure the success of the process, not the product. <ul><li>Metrics, if rewarded, will always be gamed.</li></ul></li><li>Require granular projections from engineers</li><li>Reward quick patching instead of solving</li><li>Plan for today instead of tomorrow</li></ol><p>Special Guest: Cristian Medina.</p><p><br></p><p>Links:</p><ul><li><a href="https://www.freecodecamp.org/news/organizational-test-practices-guaranteed-to-lower-quality/">Test Engineering Anti-Patterns: Destroy Your Customer Satisfaction and Crater Your Quality By Using These 9 Easy Organizational Practices</a> — The article we discuss in the show.</li><li><a href="https://tryexceptpass.org/">tryexceptpass</a> — Cris's blog</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software testing, management, sarcasm</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>91: Python 3.8 -  there's a lot more new than most people are talking about</title>
      <itunes:episode>91</itunes:episode>
      <podcast:episode>91</podcast:episode>
      <itunes:title>91: Python 3.8 -  there's a lot more new than most people are talking about</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f27bb820-798e-43bc-8cb4-c8a7498e4cc9</guid>
      <link>https://pythontest.com/testandcode/episodes/91-python-3-8-theres-a-lot-more-new-than-most-people-are-talking-about</link>
      <description>
        <![CDATA[<p>Python 3.8.0 final is live and ready to download.</p>

<p>On todays episode, we're going to run through what's new, picking out the bits that I think are the most interesting and affect the most people, including</p>

<ul>
<li>new language features</li>
<li>standard library changes</li>
<li>optimizations in 3.8</li>
</ul>

<p>Not just the big stuff everyone's already talking about. But also some little things that will make programming Python even more fun and easy.</p>

<p>I'm excited about Python 3.8. And really, this episode is to my way to try to get you excited about it too.</p><p>Links:</p><ul><li><a href="https://docs.python.org/3.8/whatsnew/3.8.html" title="What’s New In Python 3.8 - at docs.python.org" rel="nofollow">What’s New In Python 3.8 - at docs.python.org</a></li><li><a href="https://www.python.org/downloads/" title="Download Python 3.8 at Python.org" rel="nofollow">Download Python 3.8 at Python.org</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Python 3.8.0 final is live and ready to download.</p>

<p>On todays episode, we're going to run through what's new, picking out the bits that I think are the most interesting and affect the most people, including</p>

<ul>
<li>new language features</li>
<li>standard library changes</li>
<li>optimizations in 3.8</li>
</ul>

<p>Not just the big stuff everyone's already talking about. But also some little things that will make programming Python even more fun and easy.</p>

<p>I'm excited about Python 3.8. And really, this episode is to my way to try to get you excited about it too.</p>
<p>Links:</p><ul><li><a href="https://docs.python.org/3.8/whatsnew/3.8.html" title="What’s New In Python 3.8 - at docs.python.org" rel="nofollow">What’s New In Python 3.8 - at docs.python.org</a></li><li><a href="https://www.python.org/downloads/" title="Download Python 3.8 at Python.org" rel="nofollow">Download Python 3.8 at Python.org</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 16 Oct 2019 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/91.mp3" length="10262073" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1261</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Python 3.8.0 final is live and ready to download.</p>

<p>On todays episode, we're going to run through what's new, picking out the bits that I think are the most interesting and affect the most people, including</p>

<ul>
<li>new language features</li>
<li>standard library changes</li>
<li>optimizations in 3.8</li>
</ul>

<p>Not just the big stuff everyone's already talking about. But also some little things that will make programming Python even more fun and easy.</p>

<p>I'm excited about Python 3.8. And really, this episode is to my way to try to get you excited about it too.</p><p>Links:</p><ul><li><a href="https://docs.python.org/3.8/whatsnew/3.8.html" title="What’s New In Python 3.8 - at docs.python.org" rel="nofollow">What’s New In Python 3.8 - at docs.python.org</a></li><li><a href="https://www.python.org/downloads/" title="Download Python 3.8 at Python.org" rel="nofollow">Download Python 3.8 at Python.org</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>90: Dynamic Scope Fixtures in pytest 5.2 - Anthony Sottile</title>
      <itunes:episode>90</itunes:episode>
      <podcast:episode>90</podcast:episode>
      <itunes:title>90: Dynamic Scope Fixtures in pytest 5.2 - Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ddbe47b1-72d0-49d5-a430-fde4cc967ac0</guid>
      <link>https://pythontest.com/testandcode/episodes/90-dynamic-scope-fixtures-in-pytest-5-2-anthony-sottile</link>
      <description>
        <![CDATA[<p>pytest 5.2 was just released, and with it, a cool fun feature called dynamic scope fixtures. Anthony Sottile so tilly is one of the pytest core developers, so I thought it be fun to have Anthony describe this new feature for us.</p>

<p>We also talk about parametrized testing and really what is fixture scope and then what is dynamic scope.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#scope-sharing-a-fixture-instance-across-tests-in-a-class-module-or-session" title="pytest fixtures" rel="nofollow">pytest fixtures</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#dynamic-scope" title="dynamic scope fixtures" rel="nofollow">dynamic scope fixtures</a></li><li><a href="https://pythontest.com/testandcode/82" title="episode 82: pytest - favorite features since 3.0 " rel="nofollow">episode 82: pytest - favorite features since 3.0 </a></li><li><a href="https://amzn.to/2QnzvUv" title="the pytest book" rel="nofollow">the pytest book</a> — Python Testing with pytest</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest 5.2 was just released, and with it, a cool fun feature called dynamic scope fixtures. Anthony Sottile so tilly is one of the pytest core developers, so I thought it be fun to have Anthony describe this new feature for us.</p>

<p>We also talk about parametrized testing and really what is fixture scope and then what is dynamic scope.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#scope-sharing-a-fixture-instance-across-tests-in-a-class-module-or-session" title="pytest fixtures" rel="nofollow">pytest fixtures</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#dynamic-scope" title="dynamic scope fixtures" rel="nofollow">dynamic scope fixtures</a></li><li><a href="https://pythontest.com/testandcode/82" title="episode 82: pytest - favorite features since 3.0 " rel="nofollow">episode 82: pytest - favorite features since 3.0 </a></li><li><a href="https://amzn.to/2QnzvUv" title="the pytest book" rel="nofollow">the pytest book</a> — Python Testing with pytest</li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 11 Oct 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/90.mp3" length="16496742" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2040</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest 5.2 was just released, and with it, a cool fun feature called dynamic scope fixtures. Anthony Sottile so tilly is one of the pytest core developers, so I thought it be fun to have Anthony describe this new feature for us.</p>

<p>We also talk about parametrized testing and really what is fixture scope and then what is dynamic scope.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#scope-sharing-a-fixture-instance-across-tests-in-a-class-module-or-session" title="pytest fixtures" rel="nofollow">pytest fixtures</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#dynamic-scope" title="dynamic scope fixtures" rel="nofollow">dynamic scope fixtures</a></li><li><a href="https://pythontest.com/testandcode/82" title="episode 82: pytest - favorite features since 3.0 " rel="nofollow">episode 82: pytest - favorite features since 3.0 </a></li><li><a href="https://amzn.to/2QnzvUv" title="the pytest book" rel="nofollow">the pytest book</a> — Python Testing with pytest</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, fixtures, scope, parametrization</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>89: Improving Programming Education - Nicholas Tollervey</title>
      <itunes:episode>89</itunes:episode>
      <podcast:episode>89</podcast:episode>
      <itunes:title>89: Improving Programming Education - Nicholas Tollervey</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">42de0175-1eec-4a93-816a-1fe051c2a24e</guid>
      <link>https://pythontest.com/testandcode/episodes/89-improving-programming-education-nicholas-tollervey</link>
      <description>
        <![CDATA[<p>Nicholas Tollervey is working toward better ways of teaching programming. His projects include the Mu Editor, PyperCard, and CodeGrades. Many of us talk about problems with software education. Nicholas is doing something about it.</p><p>Special Guest: Nicholas Tollervey.</p>  <p>Links:</p><ul><li><a href="https://codewith.mu/" title="Code With Mu" rel="nofollow">Code With Mu</a> — a simple Python editor for beginner programmers</li><li><a href="https://madewith.mu/" title="Made With Mu" rel="nofollow">Made With Mu</a> — A blog to celebrate projects that use the Mu Python code editor to create cool stuff.</li><li><a href="https://pypercard.readthedocs.io/en/latest/" title="PyperCard" rel="nofollow">PyperCard</a> — Easy GUIs for All</li><li><a href="https://codegrades.com/" title="CodeGrades" rel="nofollow">CodeGrades</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Nicholas Tollervey is working toward better ways of teaching programming. His projects include the Mu Editor, PyperCard, and CodeGrades. Many of us talk about problems with software education. Nicholas is doing something about it.</p><p>Special Guest: Nicholas Tollervey.</p><p>Links:</p><ul><li><a href="https://codewith.mu/" title="Code With Mu" rel="nofollow">Code With Mu</a> — a simple Python editor for beginner programmers</li><li><a href="https://madewith.mu/" title="Made With Mu" rel="nofollow">Made With Mu</a> — A blog to celebrate projects that use the Mu Python code editor to create cool stuff.</li><li><a href="https://pypercard.readthedocs.io/en/latest/" title="PyperCard" rel="nofollow">PyperCard</a> — Easy GUIs for All</li><li><a href="https://codegrades.com/" title="CodeGrades" rel="nofollow">CodeGrades</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sat, 28 Sep 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/89.mp3" length="20335298" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2520</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Nicholas Tollervey is working toward better ways of teaching programming. His projects include the Mu Editor, PyperCard, and CodeGrades. Many of us talk about problems with software education. Nicholas is doing something about it.</p><p>Special Guest: Nicholas Tollervey.</p><p>Links:</p><ul><li><a href="https://codewith.mu/" title="Code With Mu" rel="nofollow">Code With Mu</a> — a simple Python editor for beginner programmers</li><li><a href="https://madewith.mu/" title="Made With Mu" rel="nofollow">Made With Mu</a> — A blog to celebrate projects that use the Mu Python code editor to create cool stuff.</li><li><a href="https://pypercard.readthedocs.io/en/latest/" title="PyperCard" rel="nofollow">PyperCard</a> — Easy GUIs for All</li><li><a href="https://codegrades.com/" title="CodeGrades" rel="nofollow">CodeGrades</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>teaching, education, software development, programming, Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>88: Error Monitoring, Crash Reporting, Performance Monitoring - JD Trask</title>
      <itunes:episode>88</itunes:episode>
      <podcast:episode>88</podcast:episode>
      <itunes:title>88: Error Monitoring, Crash Reporting, Performance Monitoring - JD Trask</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">cdd3e966-7f4f-45aa-a54a-4559d3377742</guid>
      <link>https://pythontest.com/testandcode/episodes/88-error-monitoring-crash-reporting-performance-monitoring-jd-trask</link>
      <description>
        <![CDATA[<p>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? </p>

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

<p>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.</p>

<p>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.</p><p>Special Guest: John-Daniel Trask.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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? </p>

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

<p>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.</p>

<p>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.</p><p>Special Guest: John-Daniel Trask.</p>]]>
      </content:encoded>
      <pubDate>Fri, 20 Sep 2019 21:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/88.mp3" length="23354738" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2897</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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? </p>

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

<p>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.</p>

<p>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.</p><p>Special Guest: John-Daniel Trask.</p>]]>
      </itunes:summary>
      <itunes:keywords>crash reporting, error monitoring, real user monitoring, site reliability</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>87: Paths to Parametrization - from one test to many</title>
      <itunes:episode>87</itunes:episode>
      <podcast:episode>87</podcast:episode>
      <itunes:title>87: Paths to Parametrization - from one test to many</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9589dce8-f557-4047-9ed8-b59f5438cde7</guid>
      <link>https://pythontest.com/testandcode/episodes/87-paths-to-parametrization-from-one-test-to-many</link>
      <description>
        <![CDATA[<p>There's a cool feature of pytest called parametrization.<br>
It's totally one of the superpowers of pytest.</p>

<p>It's actually a handful of features, and there are a few ways to approach it.<br>
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.</p>

<p>Super powerful, but something since there's a few approaches to it, a tad tricky to get the hang of.</p><p>Links:</p><ul><li><a href="https://git-scm.com/docs/git-branch" title="git branch" rel="nofollow">git branch</a> — -a : list all branches, -r : just remotes</li><li><a href="https://docs.pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html#deprecations" title="pytest deprecations and removals" rel="nofollow">pytest deprecations and removals</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="Python Testing with pytest" rel="nofollow">Python Testing with pytest</a> — Test function parametrization is in chapter 2. Fixture parametrization is in chapter 3.</li><li><a href="https://docs.pytest.org/en/latest/parametrize.html" title="Parametrizing test functions — pytest documentation" rel="nofollow">Parametrizing test functions — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#fixture-parametrize" title="pytest fixtures — pytest documentation" rel="nofollow">pytest fixtures — pytest documentation</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>There's a cool feature of pytest called parametrization.<br>
It's totally one of the superpowers of pytest.</p>

<p>It's actually a handful of features, and there are a few ways to approach it.<br>
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.</p>

<p>Super powerful, but something since there's a few approaches to it, a tad tricky to get the hang of.</p><p>Links:</p><ul><li><a href="https://git-scm.com/docs/git-branch" title="git branch" rel="nofollow">git branch</a> — -a : list all branches, -r : just remotes</li><li><a href="https://docs.pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html#deprecations" title="pytest deprecations and removals" rel="nofollow">pytest deprecations and removals</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="Python Testing with pytest" rel="nofollow">Python Testing with pytest</a> — Test function parametrization is in chapter 2. Fixture parametrization is in chapter 3.</li><li><a href="https://docs.pytest.org/en/latest/parametrize.html" title="Parametrizing test functions — pytest documentation" rel="nofollow">Parametrizing test functions — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#fixture-parametrize" title="pytest fixtures — pytest documentation" rel="nofollow">pytest fixtures — pytest documentation</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 11 Sep 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/87.mp3" length="9308900" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1142</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>There's a cool feature of pytest called parametrization.<br>
It's totally one of the superpowers of pytest.</p>

<p>It's actually a handful of features, and there are a few ways to approach it.<br>
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.</p>

<p>Super powerful, but something since there's a few approaches to it, a tad tricky to get the hang of.</p><p>Links:</p><ul><li><a href="https://git-scm.com/docs/git-branch" title="git branch" rel="nofollow">git branch</a> — -a : list all branches, -r : just remotes</li><li><a href="https://docs.pytest.org/en/latest/changelog.html" title="pytest changelog" rel="nofollow">pytest changelog</a></li><li><a href="https://docs.pytest.org/en/latest/deprecations.html#deprecations" title="pytest deprecations and removals" rel="nofollow">pytest deprecations and removals</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="Python Testing with pytest" rel="nofollow">Python Testing with pytest</a> — Test function parametrization is in chapter 2. Fixture parametrization is in chapter 3.</li><li><a href="https://docs.pytest.org/en/latest/parametrize.html" title="Parametrizing test functions — pytest documentation" rel="nofollow">Parametrizing test functions — pytest documentation</a></li><li><a href="https://docs.pytest.org/en/latest/fixture.html#fixture-parametrize" title="pytest fixtures — pytest documentation" rel="nofollow">pytest fixtures — pytest documentation</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, parametrization</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>86: Teaching testing best practices with 4 testing maxims - Josh Peak</title>
      <itunes:episode>86</itunes:episode>
      <podcast:episode>86</podcast:episode>
      <itunes:title>86: Teaching testing best practices with 4 testing maxims - Josh Peak</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2331f6e2-68ba-4169-85df-28e151e30099</guid>
      <link>https://pythontest.com/testandcode/episodes/86-teaching-testing-best-practices-with-4-testing-maxims-josh-peak</link>
      <description>
        <![CDATA[<p>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.</p>

<p>Awesome.</p>

<p>Now your colleagues want in on that super power and want to learn testing.</p>

<p>How do you help them? </p>

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

<p>That's what we're talking about today on Test &amp; Code.</p>

<p>Josh  walks us through 4 maxims of developing software tests that help grow your confidence and proficiency at test writing.</p><p>Special Guest: Josh Peak.</p><p>Links:</p><ul><li><a href="https://joshpeak.net/posts/2019-07-22-from-zero-to-test.html" title="From Zero to Test: Turning hurdles into steps. " rel="nofollow">From Zero to Test: Turning hurdles into steps. </a></li><li><a href="https://joshpeak.net/posts/2019-06-18-Advanced-python-testing.html" title="Advanced Python Testing" rel="nofollow">Advanced Python Testing</a> — Posts</li><li><a href="https://pypi.org/project/pytest-vcr/" title="pytest-vcr" rel="nofollow">pytest-vcr</a></li><li><a href="https://vcrpy.readthedocs.io/en/latest/" title="VCR.py" rel="nofollow">VCR.py</a></li><li><a href="https://pypi.org/project/pytest-randomly/" title="pytest-randomly" rel="nofollow">pytest-randomly</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>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.</p>

<p>Awesome.</p>

<p>Now your colleagues want in on that super power and want to learn testing.</p>

<p>How do you help them? </p>

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

<p>That's what we're talking about today on Test &amp; Code.</p>

<p>Josh  walks us through 4 maxims of developing software tests that help grow your confidence and proficiency at test writing.</p><p>Special Guest: Josh Peak.</p><p>Links:</p><ul><li><a href="https://joshpeak.net/posts/2019-07-22-from-zero-to-test.html" title="From Zero to Test: Turning hurdles into steps. " rel="nofollow">From Zero to Test: Turning hurdles into steps. </a></li><li><a href="https://joshpeak.net/posts/2019-06-18-Advanced-python-testing.html" title="Advanced Python Testing" rel="nofollow">Advanced Python Testing</a> — Posts</li><li><a href="https://pypi.org/project/pytest-vcr/" title="pytest-vcr" rel="nofollow">pytest-vcr</a></li><li><a href="https://vcrpy.readthedocs.io/en/latest/" title="VCR.py" rel="nofollow">VCR.py</a></li><li><a href="https://pypi.org/project/pytest-randomly/" title="pytest-randomly" rel="nofollow">pytest-randomly</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 06 Sep 2019 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/86.mp3" length="11061062" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1361</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>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.</p>

<p>Awesome.</p>

<p>Now your colleagues want in on that super power and want to learn testing.</p>

<p>How do you help them? </p>

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

<p>That's what we're talking about today on Test &amp; Code.</p>

<p>Josh  walks us through 4 maxims of developing software tests that help grow your confidence and proficiency at test writing.</p><p>Special Guest: Josh Peak.</p><p>Links:</p><ul><li><a href="https://joshpeak.net/posts/2019-07-22-from-zero-to-test.html" title="From Zero to Test: Turning hurdles into steps. " rel="nofollow">From Zero to Test: Turning hurdles into steps. </a></li><li><a href="https://joshpeak.net/posts/2019-06-18-Advanced-python-testing.html" title="Advanced Python Testing" rel="nofollow">Advanced Python Testing</a> — Posts</li><li><a href="https://pypi.org/project/pytest-vcr/" title="pytest-vcr" rel="nofollow">pytest-vcr</a></li><li><a href="https://vcrpy.readthedocs.io/en/latest/" title="VCR.py" rel="nofollow">VCR.py</a></li><li><a href="https://pypi.org/project/pytest-randomly/" title="pytest-randomly" rel="nofollow">pytest-randomly</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>85: Speed Up Test Suites - Niklas Meinzer</title>
      <itunes:episode>85</itunes:episode>
      <podcast:episode>85</podcast:episode>
      <itunes:title>85: Speed Up Test Suites - Niklas Meinzer</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">fbf9bd7b-e792-468b-862a-f29aa8561b9d</guid>
      <link>https://pythontest.com/testandcode/episodes/85-speed-up-test-suites-niklas-meinzer</link>
      <description>
        <![CDATA[<p>Good software testing strategy is one of the best ways to save developer time and shorten software development delivery cycle time.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Niklas Meinzer.</p>  <p>Links:</p><ul><li><a href="https://www.niklas-meinzer.de/post/2019-07_pytest-performance/" title="Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer" rel="nofollow">Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Good software testing strategy is one of the best ways to save developer time and shorten software development delivery cycle time.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Niklas Meinzer.</p><p>Links:</p><ul><li><a href="https://www.niklas-meinzer.de/post/2019-07_pytest-performance/" title="Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer" rel="nofollow">Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 26 Aug 2019 10:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/85.mp3" length="12898470" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1593</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Good software testing strategy is one of the best ways to save developer time and shorten software development delivery cycle time.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Niklas Meinzer.</p><p>Links:</p><ul><li><a href="https://www.niklas-meinzer.de/post/2019-07_pytest-performance/" title="Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer" rel="nofollow">Profiling and improving the runtime of a large pytest test suite | Niklas Meinzer</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, optimization, test suite</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>84: CircuitPython - Scott Shawcroft</title>
      <itunes:episode>84</itunes:episode>
      <podcast:episode>84</podcast:episode>
      <itunes:title>84: CircuitPython - Scott Shawcroft</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">54eb45d2-1c2f-48e7-a193-64d7bde4c178</guid>
      <link>https://pythontest.com/testandcode/episodes/84-circuitpython-scott-shawcroft</link>
      <description>
        <![CDATA[<p>Adafruit enables beginners to make amazing hardware/software projects.<br>
With CircuitPython, these projects can now use Python.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Scott Shawcroft.</p>
 <p>Links:</p><ul><li><a href="https://circuitpython.org/" title="CircuitPython" rel="nofollow">CircuitPython</a></li><li><a href="https://circuitpython.org/downloads" title="Downloads" rel="nofollow">Downloads</a> — All the products that run CircuitPython</li><li><a href="https://learn.adafruit.com/category/circuitpython" title="Learning Guides with CircuitPython" rel="nofollow">Learning Guides with CircuitPython</a></li><li><a href="https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-quickstart" title="Loading CircuitPython on Circuit Playground Express" rel="nofollow">Loading CircuitPython on Circuit Playground Express</a></li><li><a href="https://adafru.it/discord" title="Adafruit Discord Server" rel="nofollow">Adafruit Discord Server</a></li><li><a href="https://twitter.com/tannewt" title="Scott Shawcroft (@tannewt) / Twitter" rel="nofollow">Scott Shawcroft (@tannewt) / Twitter</a></li><li><a href="https://pypi.org/project/Adafruit-Blinka/" title="Adafruit-Blinka " rel="nofollow">Adafruit-Blinka </a></li></ul>]]> </description>
      <content:encoded>
        <![CDATA[<p>Adafruit enables beginners to make amazing hardware/software projects.<br>
With CircuitPython, these projects can now use Python.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Scott Shawcroft.</p><p>Links:</p><ul><li><a href="https://circuitpython.org/" title="CircuitPython" rel="nofollow">CircuitPython</a></li><li><a href="https://circuitpython.org/downloads" title="Downloads" rel="nofollow">Downloads</a> — All the products that run CircuitPython</li><li><a href="https://learn.adafruit.com/category/circuitpython" title="Learning Guides with CircuitPython" rel="nofollow">Learning Guides with CircuitPython</a></li><li><a href="https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-quickstart" title="Loading CircuitPython on Circuit Playground Express" rel="nofollow">Loading CircuitPython on Circuit Playground Express</a></li><li><a href="https://adafru.it/discord" title="Adafruit Discord Server" rel="nofollow">Adafruit Discord Server</a></li><li><a href="https://twitter.com/tannewt" title="Scott Shawcroft (@tannewt) / Twitter" rel="nofollow">Scott Shawcroft (@tannewt) / Twitter</a></li><li><a href="https://pypi.org/project/Adafruit-Blinka/" title="Adafruit-Blinka " rel="nofollow">Adafruit-Blinka </a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 20 Aug 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/84.mp3" length="17372703" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2152</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Adafruit enables beginners to make amazing hardware/software projects.<br>
With CircuitPython, these projects can now use Python.</p>

<p>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.</p>

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

<p>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.</p><p>Special Guest: Scott Shawcroft.</p><p>Links:</p><ul><li><a href="https://circuitpython.org/" title="CircuitPython" rel="nofollow">CircuitPython</a></li><li><a href="https://circuitpython.org/downloads" title="Downloads" rel="nofollow">Downloads</a> — All the products that run CircuitPython</li><li><a href="https://learn.adafruit.com/category/circuitpython" title="Learning Guides with CircuitPython" rel="nofollow">Learning Guides with CircuitPython</a></li><li><a href="https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-quickstart" title="Loading CircuitPython on Circuit Playground Express" rel="nofollow">Loading CircuitPython on Circuit Playground Express</a></li><li><a href="https://adafru.it/discord" title="Adafruit Discord Server" rel="nofollow">Adafruit Discord Server</a></li><li><a href="https://twitter.com/tannewt" title="Scott Shawcroft (@tannewt) / Twitter" rel="nofollow">Scott Shawcroft (@tannewt) / Twitter</a></li><li><a href="https://pypi.org/project/Adafruit-Blinka/" title="Adafruit-Blinka " rel="nofollow">Adafruit-Blinka </a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, hardware, CircuitPython, Adafruit</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>83: PyBites Code Challenges behind the scenes - Bob Belderbos</title>
      <itunes:episode>83</itunes:episode>
      <podcast:episode>83</podcast:episode>
      <itunes:title>83: PyBites Code Challenges behind the scenes - Bob Belderbos</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">cace965b-5a24-429d-9cac-05268ce0a143</guid>
      <link>https://pythontest.com/testandcode/episodes/83-pybites-code-challenges-behind-the-scenes-bob-belderbos</link>
      <description>
        <![CDATA[<p>Bob Belderbos and Julian Sequeira started <a href="https://pybit.es/" rel="nofollow">PyBites</a> a few years ago.<br>
They started doing code challanges along with people around the world and writing about it. </p>

<p>Then came the <a href="https://codechalleng.es/" rel="nofollow">codechalleng.es</a> platform, where you can do code challenges in the browser and have your answer checked by pytest tests. But how does it all work?</p>

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

<p>We talk about the technology, the testing, and how it went from a cool idea to a working platform.</p><p>Special Guest: Bob Belderbos.</p><p>Links:</p><ul><li><a href="https://pybit.es/" title="PyBites" rel="nofollow">PyBites</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges coding platform" rel="nofollow">PyBites Code Challenges coding platform</a></li><li><a href="https://codechalleng.es/bites/paths" title="Learning Paths" rel="nofollow">Learning Paths</a></li><li><a href="https://pybit.es/whiteboard-interviews.html" title="Julian's article on whiteboard interviews" rel="nofollow">Julian's article on whiteboard interviews</a></li><li><a href="https://www.youtube.com/watch?v=Jpwn2yOppPo" title="Selenium running on CodeChalleng.es" rel="nofollow">Selenium running on CodeChalleng.es</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Bob Belderbos and Julian Sequeira started <a href="https://pybit.es/" rel="nofollow">PyBites</a> a few years ago.<br>
They started doing code challanges along with people around the world and writing about it. </p>

<p>Then came the <a href="https://codechalleng.es/" rel="nofollow">codechalleng.es</a> platform, where you can do code challenges in the browser and have your answer checked by pytest tests. But how does it all work?</p>

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

<p>We talk about the technology, the testing, and how it went from a cool idea to a working platform.</p><p>Special Guest: Bob Belderbos.</p><p>Links:</p><ul><li><a href="https://pybit.es/" title="PyBites" rel="nofollow">PyBites</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges coding platform" rel="nofollow">PyBites Code Challenges coding platform</a></li><li><a href="https://codechalleng.es/bites/paths" title="Learning Paths" rel="nofollow">Learning Paths</a></li><li><a href="https://pybit.es/whiteboard-interviews.html" title="Julian's article on whiteboard interviews" rel="nofollow">Julian's article on whiteboard interviews</a></li><li><a href="https://www.youtube.com/watch?v=Jpwn2yOppPo" title="Selenium running on CodeChalleng.es" rel="nofollow">Selenium running on CodeChalleng.es</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 16 Aug 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/83.mp3" length="11713212" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1444</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Bob Belderbos and Julian Sequeira started <a href="https://pybit.es/" rel="nofollow">PyBites</a> a few years ago.<br>
They started doing code challanges along with people around the world and writing about it. </p>

<p>Then came the <a href="https://codechalleng.es/" rel="nofollow">codechalleng.es</a> platform, where you can do code challenges in the browser and have your answer checked by pytest tests. But how does it all work?</p>

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

<p>We talk about the technology, the testing, and how it went from a cool idea to a working platform.</p><p>Special Guest: Bob Belderbos.</p><p>Links:</p><ul><li><a href="https://pybit.es/" title="PyBites" rel="nofollow">PyBites</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges coding platform" rel="nofollow">PyBites Code Challenges coding platform</a></li><li><a href="https://codechalleng.es/bites/paths" title="Learning Paths" rel="nofollow">Learning Paths</a></li><li><a href="https://pybit.es/whiteboard-interviews.html" title="Julian's article on whiteboard interviews" rel="nofollow">Julian's article on whiteboard interviews</a></li><li><a href="https://www.youtube.com/watch?v=Jpwn2yOppPo" title="Selenium running on CodeChalleng.es" rel="nofollow">Selenium running on CodeChalleng.es</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, web applications, Django, pytest, Selenium</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>82: pytest - favorite features since 3.0 -  Anthony Sottile</title>
      <itunes:episode>82</itunes:episode>
      <podcast:episode>82</podcast:episode>
      <itunes:title>82: pytest - favorite features since 3.0 -  Anthony Sottile</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">91e4986f-1120-42fd-be2c-70159fcb3262</guid>
      <link>https://pythontest.com/testandcode/episodes/82-pytest-favorite-features-since-3-0-anthony-sottile</link>
      <description>
        <![CDATA[<p>Anthony Sottile is a pytest core contributor, as well as a maintainer and contributor to <br>
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.</p>

<p>We also discuss Anthony's move from user to contributor, and how others can help with the pytest project.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/" title="pytest documentation" rel="nofollow">pytest documentation</a></li><li><a href="http://doc.pytest.org/en/latest/changelog.html" title="pytest Changelog" rel="nofollow">pytest Changelog</a></li><li><a href="http://doc.pytest.org/en/latest/reference.html#" title="pytest API Reference" rel="nofollow">pytest API Reference</a></li><li><a href="https://docs.pytest.org/en/latest/sponsor.html" title="sponsor pytest" rel="nofollow">sponsor pytest</a></li><li><a href="http://doc.pytest.org/en/latest/contributing.html" title="getting started contributing to pytest" rel="nofollow">getting started contributing to pytest</a></li><li><a href="https://amzn.to/2QnzvUv" title="the book: Python Testing with pytest" rel="nofollow">the book: Python Testing with pytest</a> — The fastest way to learn pytest</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Anthony Sottile is a pytest core contributor, as well as a maintainer and contributor to <br>
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.</p>

<p>We also discuss Anthony's move from user to contributor, and how others can help with the pytest project.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/" title="pytest documentation" rel="nofollow">pytest documentation</a></li><li><a href="http://doc.pytest.org/en/latest/changelog.html" title="pytest Changelog" rel="nofollow">pytest Changelog</a></li><li><a href="http://doc.pytest.org/en/latest/reference.html#" title="pytest API Reference" rel="nofollow">pytest API Reference</a></li><li><a href="https://docs.pytest.org/en/latest/sponsor.html" title="sponsor pytest" rel="nofollow">sponsor pytest</a></li><li><a href="http://doc.pytest.org/en/latest/contributing.html" title="getting started contributing to pytest" rel="nofollow">getting started contributing to pytest</a></li><li><a href="https://amzn.to/2QnzvUv" title="the book: Python Testing with pytest" rel="nofollow">the book: Python Testing with pytest</a> — The fastest way to learn pytest</li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 31 Jul 2019 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/82.mp3" length="17724998" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2196</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Anthony Sottile is a pytest core contributor, as well as a maintainer and contributor to <br>
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.</p>

<p>We also discuss Anthony's move from user to contributor, and how others can help with the pytest project.</p><p>Special Guest: Anthony Sottile.</p><p>Links:</p><ul><li><a href="https://pytest.org/en/latest/" title="pytest documentation" rel="nofollow">pytest documentation</a></li><li><a href="http://doc.pytest.org/en/latest/changelog.html" title="pytest Changelog" rel="nofollow">pytest Changelog</a></li><li><a href="http://doc.pytest.org/en/latest/reference.html#" title="pytest API Reference" rel="nofollow">pytest API Reference</a></li><li><a href="https://docs.pytest.org/en/latest/sponsor.html" title="sponsor pytest" rel="nofollow">sponsor pytest</a></li><li><a href="http://doc.pytest.org/en/latest/contributing.html" title="getting started contributing to pytest" rel="nofollow">getting started contributing to pytest</a></li><li><a href="https://amzn.to/2QnzvUv" title="the book: Python Testing with pytest" rel="nofollow">the book: Python Testing with pytest</a> — The fastest way to learn pytest</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>81: TDD with flit</title>
      <itunes:episode>81</itunes:episode>
      <podcast:episode>81</podcast:episode>
      <itunes:title>81: TDD with flit</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">fc24063e-46db-46bc-b837-ae75891e2842</guid>
      <link>https://pythontest.com/testandcode/episodes/81-tdd-with-flit</link>
      <description>
        <![CDATA[<p>In the last episode, we talked about going from script to supported package. <br>
I worked on a project called subark and did the packaging with flit.</p>

<p>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.</p>

<p>Covered:</p>

<ul>
<li>viewing stages of a project with git tags</li>
<li>flit support for editable installs</li>
<li>flit description entry in pyproject.toml to put README on pypi.</li>
<li>development dependencies in pyproject.toml</li>
<li>editor layout for optimal TDD-ing</li>
<li>test case grouping</li>
<li>modifications to traditional TDD that helps me develop faster.</li>
</ul>



<p>code and command snippets from episode:</p>



<p>For git checkout of versions:</p>

$ 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


<p>To grab the latest again:</p>

(submark) $ git checkout master




<p>pyproject.toml change for README to show up on pypi:</p>

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


<p>Adding dev dependencies to pyproject.toml:</p>

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




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

(submark) $ flit install --pth-file


<p>or for mac/linux:</p>

(submark) $ flit install -s


<p>Links:</p><ul><li><a href="https://pypi.org/project/submark/" title="submark · PyPI" rel="nofollow">submark · PyPI</a></li><li><a href="https://github.com/okken/submark" title="submark on GitHub" rel="nofollow">submark on GitHub</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html" title="The pyproject.toml config file — Flit 1.3 documentation" rel="nofollow">The pyproject.toml config file — Flit 1.3 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install" title="Flit install — Flit 1.3 documentation" rel="nofollow">Flit install — Flit 1.3 documentation</a></li><li><a href="https://pythontest.com/testandcode/80" title="Test &amp; Code 80: From Python script to Maintainable Package" rel="nofollow">Test &amp; Code 80: From Python script to Maintainable Package</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In the last episode, we talked about going from script to supported package. <br>
I worked on a project called subark and did the packaging with flit.</p>

<p>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.</p>

<p>Covered:</p>

<ul>
<li>viewing stages of a project with git tags</li>
<li>flit support for editable installs</li>
<li>flit description entry in pyproject.toml to put README on pypi.</li>
<li>development dependencies in pyproject.toml</li>
<li>editor layout for optimal TDD-ing</li>
<li>test case grouping</li>
<li>modifications to traditional TDD that helps me develop faster.</li>
</ul>



<p>code and command snippets from episode:</p>



<p>For git checkout of versions:</p>

$ 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


<p>To grab the latest again:</p>

(submark) $ git checkout master




<p>pyproject.toml change for README to show up on pypi:</p>

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


<p>Adding dev dependencies to pyproject.toml:</p>

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




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

(submark) $ flit install --pth-file


<p>or for mac/linux:</p>

(submark) $ flit install -s



<p>Links:</p><ul><li><a href="https://pypi.org/project/submark/" title="submark · PyPI" rel="nofollow">submark · PyPI</a></li><li><a href="https://github.com/okken/submark" title="submark on GitHub" rel="nofollow">submark on GitHub</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html" title="The pyproject.toml config file — Flit 1.3 documentation" rel="nofollow">The pyproject.toml config file — Flit 1.3 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install" title="Flit install — Flit 1.3 documentation" rel="nofollow">Flit install — Flit 1.3 documentation</a></li><li><a href="https://pythontest.com/testandcode/80" title="Test &amp; Code 80: From Python script to Maintainable Package" rel="nofollow">Test &amp; Code 80: From Python script to Maintainable Package</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 17 Jul 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/81.mp3" length="12327203" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1521</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In the last episode, we talked about going from script to supported package. <br>
I worked on a project called subark and did the packaging with flit.</p>

<p>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.</p>

<p>Covered:</p>

<ul>
<li>viewing stages of a project with git tags</li>
<li>flit support for editable installs</li>
<li>flit description entry in pyproject.toml to put README on pypi.</li>
<li>development dependencies in pyproject.toml</li>
<li>editor layout for optimal TDD-ing</li>
<li>test case grouping</li>
<li>modifications to traditional TDD that helps me develop faster.</li>
</ul>



<p>code and command snippets from episode:</p>



<p>For git checkout of versions:</p>

$ 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


<p>To grab the latest again:</p>

(submark) $ git checkout master




<p>pyproject.toml change for README to show up on pypi:</p>

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


<p>Adding dev dependencies to pyproject.toml:</p>

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




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

(submark) $ flit install --pth-file


<p>or for mac/linux:</p>

(submark) $ flit install -s


<p>Links:</p><ul><li><a href="https://pypi.org/project/submark/" title="submark · PyPI" rel="nofollow">submark · PyPI</a></li><li><a href="https://github.com/okken/submark" title="submark on GitHub" rel="nofollow">submark on GitHub</a></li><li><a href="https://flit.readthedocs.io/en/latest/pyproject_toml.html" title="The pyproject.toml config file — Flit 1.3 documentation" rel="nofollow">The pyproject.toml config file — Flit 1.3 documentation</a></li><li><a href="https://flit.readthedocs.io/en/latest/cmdline.html#flit-install" title="Flit install — Flit 1.3 documentation" rel="nofollow">Flit install — Flit 1.3 documentation</a></li><li><a href="https://pythontest.com/testandcode/80" title="Test &amp; Code 80: From Python script to Maintainable Package" rel="nofollow">Test &amp; Code 80: From Python script to Maintainable Package</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>TDD, flit, git, Python, pyproject.toml, submark</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>80: From Python script to Maintainable Package</title>
      <itunes:episode>80</itunes:episode>
      <podcast:episode>80</podcast:episode>
      <itunes:title>80: From Python script to Maintainable Package</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">ed860ff6-11b7-49af-bf43-61c6f87a7d6b</guid>
      <link>https://pythontest.com/testandcode/episodes/80-from-python-script-to-maintainable-package</link>
      <description>
        <![CDATA[<p>This episode is a story about packaging, and flit, tox, pytest, and coverage.<br>
And an alternate solution to "using the src".</p>

<p>Python makes it easy to build simple tools for all kinds of tasks.<br>
And it's great to be able to share small projects with others on your team, in your company, or with the world.</p>

<p>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.</p>

<p>Also, the structure of the code layout changes to help with the growth and support.</p>

<p>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.</p>

<p>Here are the steps we walk through:</p>

<ul>
<li>0.1 Initial script and tests</li>
<li>0.2 build wheel with flit</li>
<li>0.3 build and test with tox</li>
<li>0.4 move source module into a package directory</li>
<li>0.5 move tests into tests directory</li>
</ul><p>Links:</p><ul><li><a href="https://github.com/okken/submark" title="submark repo: A Subset of Markdown" rel="nofollow">submark repo: A Subset of Markdown</a></li><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit documentation" rel="nofollow">Flit documentation</a></li><li><a href="https://coverage.readthedocs.io/en/v4.5.x/" title="Coverage.py documentation" rel="nofollow">Coverage.py documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/" title="tox documentation" rel="nofollow">tox documentation</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode is a story about packaging, and flit, tox, pytest, and coverage.<br>
And an alternate solution to "using the src".</p>

<p>Python makes it easy to build simple tools for all kinds of tasks.<br>
And it's great to be able to share small projects with others on your team, in your company, or with the world.</p>

<p>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.</p>

<p>Also, the structure of the code layout changes to help with the growth and support.</p>

<p>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.</p>

<p>Here are the steps we walk through:</p>

<ul>
<li>0.1 Initial script and tests</li>
<li>0.2 build wheel with flit</li>
<li>0.3 build and test with tox</li>
<li>0.4 move source module into a package directory</li>
<li>0.5 move tests into tests directory</li>
</ul>
<p>Links:</p><ul><li><a href="https://github.com/okken/submark" title="submark repo: A Subset of Markdown" rel="nofollow">submark repo: A Subset of Markdown</a></li><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit documentation" rel="nofollow">Flit documentation</a></li><li><a href="https://coverage.readthedocs.io/en/v4.5.x/" title="Coverage.py documentation" rel="nofollow">Coverage.py documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/" title="tox documentation" rel="nofollow">tox documentation</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 04 Jul 2019 00:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/80.mp3" length="10653265" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1312</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode is a story about packaging, and flit, tox, pytest, and coverage.<br>
And an alternate solution to "using the src".</p>

<p>Python makes it easy to build simple tools for all kinds of tasks.<br>
And it's great to be able to share small projects with others on your team, in your company, or with the world.</p>

<p>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.</p>

<p>Also, the structure of the code layout changes to help with the growth and support.</p>

<p>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.</p>

<p>Here are the steps we walk through:</p>

<ul>
<li>0.1 Initial script and tests</li>
<li>0.2 build wheel with flit</li>
<li>0.3 build and test with tox</li>
<li>0.4 move source module into a package directory</li>
<li>0.5 move tests into tests directory</li>
</ul><p>Links:</p><ul><li><a href="https://github.com/okken/submark" title="submark repo: A Subset of Markdown" rel="nofollow">submark repo: A Subset of Markdown</a></li><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit documentation" rel="nofollow">Flit documentation</a></li><li><a href="https://coverage.readthedocs.io/en/v4.5.x/" title="Coverage.py documentation" rel="nofollow">Coverage.py documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/" title="tox documentation" rel="nofollow">tox documentation</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, tox, flit, coverage, pytest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>79: Fixing misinformation about software testing</title>
      <itunes:episode>79</itunes:episode>
      <podcast:episode>79</podcast:episode>
      <itunes:title>79: Fixing misinformation about software testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">46256dfb-3be5-419b-a4f9-7baa0fbad64f</guid>
      <link>https://pythontest.com/testandcode/episodes/79-fixing-misinformation-about-software-testing</link>
      <description>
        <![CDATA[<p>Some information about software testing is just wrong.<br>
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.</p>

<p>I've ran across a few lateley that I want to address.</p>

<p>All of the following are wrong:</p>

<ol>
<li>Integrated tests can't work. I can prove it with wacky math. </li>
<li>Tests have to be blazing fast or they won't get run.</li>
<li>TDD is about design, not about testing.</li>
</ol>

<p>This episode discusses why these are wrong.</p><p>Links:</p><ul><li><a href="https://aquestionofcode.com/22-why-should-you-write-tests/" title="Why should you write tests? - A Question of Code Podcast" rel="nofollow">Why should you write tests? - A Question of Code Podcast</a></li><li><a href="https://www.destroyallsoftware.com/talks/boundaries" title="Boundaries talk by Gary Bernhardt" rel="nofollow">Boundaries talk by Gary Bernhardt</a></li><li><a href="https://www.youtube.com/watch?v=VDfX44fZoMc" title="Integrated Tests Are A Scam - J B Rainsberger" rel="nofollow">Integrated Tests Are A Scam - J B Rainsberger</a></li><li><a href="https://martinfowler.com/bliki/UnitTest.html" title="UnitTest - Solitary or Sociable - and speed - Martin Fowler" rel="nofollow">UnitTest - Solitary or Sociable - and speed - Martin Fowler</a></li><li><a href="http://wiki.c2.com/?PrematureOptimization" title="Premature optimization is the root of all evil -- DonaldKnuth" rel="nofollow">Premature optimization is the root of all evil -- DonaldKnuth</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://dhh.dk/2014/test-induced-design-damage.html" title="Test-induced design damage - DHH" rel="nofollow">Test-induced design damage - DHH</a></li><li><a href="https://dhh.dk/2014/slow-database-test-fallacy.html" title="Slow database test fallacy - DHH" rel="nofollow">Slow database test fallacy - DHH</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software - DHH" rel="nofollow">RailsConf 2014 - Keynote: Writing Software - DHH</a></li><li><a href="https://agilemanifesto.org/" title="Manifesto for Agile Software Development" rel="nofollow">Manifesto for Agile Software Development</a></li><li><a href="https://cwiki.apache.org/confluence/display/BEAM/Contribution+Testing+Guide" title="Apache Beam Contrib Guide, including post commit testing" rel="nofollow">Apache Beam Contrib Guide, including post commit testing</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Some information about software testing is just wrong.<br>
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.</p>

<p>I've ran across a few lateley that I want to address.</p>

<p>All of the following are wrong:</p>

<ol>
<li>Integrated tests can't work. I can prove it with wacky math. </li>
<li>Tests have to be blazing fast or they won't get run.</li>
<li>TDD is about design, not about testing.</li>
</ol>

<p>This episode discusses why these are wrong.</p><p>Links:</p><ul><li><a href="https://aquestionofcode.com/22-why-should-you-write-tests/" title="Why should you write tests? - A Question of Code Podcast" rel="nofollow">Why should you write tests? - A Question of Code Podcast</a></li><li><a href="https://www.destroyallsoftware.com/talks/boundaries" title="Boundaries talk by Gary Bernhardt" rel="nofollow">Boundaries talk by Gary Bernhardt</a></li><li><a href="https://www.youtube.com/watch?v=VDfX44fZoMc" title="Integrated Tests Are A Scam - J B Rainsberger" rel="nofollow">Integrated Tests Are A Scam - J B Rainsberger</a></li><li><a href="https://martinfowler.com/bliki/UnitTest.html" title="UnitTest - Solitary or Sociable - and speed - Martin Fowler" rel="nofollow">UnitTest - Solitary or Sociable - and speed - Martin Fowler</a></li><li><a href="http://wiki.c2.com/?PrematureOptimization" title="Premature optimization is the root of all evil -- DonaldKnuth" rel="nofollow">Premature optimization is the root of all evil -- DonaldKnuth</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://dhh.dk/2014/test-induced-design-damage.html" title="Test-induced design damage - DHH" rel="nofollow">Test-induced design damage - DHH</a></li><li><a href="https://dhh.dk/2014/slow-database-test-fallacy.html" title="Slow database test fallacy - DHH" rel="nofollow">Slow database test fallacy - DHH</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software - DHH" rel="nofollow">RailsConf 2014 - Keynote: Writing Software - DHH</a></li><li><a href="https://agilemanifesto.org/" title="Manifesto for Agile Software Development" rel="nofollow">Manifesto for Agile Software Development</a></li><li><a href="https://cwiki.apache.org/confluence/display/BEAM/Contribution+Testing+Guide" title="Apache Beam Contrib Guide, including post commit testing" rel="nofollow">Apache Beam Contrib Guide, including post commit testing</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 27 Jun 2019 02:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/79.mp3" length="11025943" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1358</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Some information about software testing is just wrong.<br>
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.</p>

<p>I've ran across a few lateley that I want to address.</p>

<p>All of the following are wrong:</p>

<ol>
<li>Integrated tests can't work. I can prove it with wacky math. </li>
<li>Tests have to be blazing fast or they won't get run.</li>
<li>TDD is about design, not about testing.</li>
</ol>

<p>This episode discusses why these are wrong.</p><p>Links:</p><ul><li><a href="https://aquestionofcode.com/22-why-should-you-write-tests/" title="Why should you write tests? - A Question of Code Podcast" rel="nofollow">Why should you write tests? - A Question of Code Podcast</a></li><li><a href="https://www.destroyallsoftware.com/talks/boundaries" title="Boundaries talk by Gary Bernhardt" rel="nofollow">Boundaries talk by Gary Bernhardt</a></li><li><a href="https://www.youtube.com/watch?v=VDfX44fZoMc" title="Integrated Tests Are A Scam - J B Rainsberger" rel="nofollow">Integrated Tests Are A Scam - J B Rainsberger</a></li><li><a href="https://martinfowler.com/bliki/UnitTest.html" title="UnitTest - Solitary or Sociable - and speed - Martin Fowler" rel="nofollow">UnitTest - Solitary or Sociable - and speed - Martin Fowler</a></li><li><a href="http://wiki.c2.com/?PrematureOptimization" title="Premature optimization is the root of all evil -- DonaldKnuth" rel="nofollow">Premature optimization is the root of all evil -- DonaldKnuth</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="https://dhh.dk/2014/test-induced-design-damage.html" title="Test-induced design damage - DHH" rel="nofollow">Test-induced design damage - DHH</a></li><li><a href="https://dhh.dk/2014/slow-database-test-fallacy.html" title="Slow database test fallacy - DHH" rel="nofollow">Slow database test fallacy - DHH</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software - DHH" rel="nofollow">RailsConf 2014 - Keynote: Writing Software - DHH</a></li><li><a href="https://agilemanifesto.org/" title="Manifesto for Agile Software Development" rel="nofollow">Manifesto for Agile Software Development</a></li><li><a href="https://cwiki.apache.org/confluence/display/BEAM/Contribution+Testing+Guide" title="Apache Beam Contrib Guide, including post commit testing" rel="nofollow">Apache Beam Contrib Guide, including post commit testing</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software testing, TDD, misinformation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>78: I don't write tests because ...</title>
      <itunes:episode>78</itunes:episode>
      <podcast:episode>78</podcast:episode>
      <itunes:title>78: I don't write tests because ...</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">f05ee1a6-4caa-4c27-a40f-df3dbbfeefa1</guid>
      <link>https://pythontest.com/testandcode/episodes/78-i-dont-write-tests-because</link>
      <description>
        <![CDATA[<p>Roadblocks to writing tests, and what to do about it.</p>

<p>Some developers either don't write tests, or don't like writing tests.<br>
Why not? I love writing tests.<br>
In this episode we examine lots of roadblocks to testing, and start coming up with solutions for these.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1140041742864961536" title="" rel="nofollow">"I don’t write tests because ____. " twitter question</a></li><li><a href="https://pythontest.com/testandcode/75" title="episode 75: Modern Testing Principles" rel="nofollow">episode 75: Modern Testing Principles</a></li><li><a href="https://pythontest.com/testandcode/76" title="episode 76: TDD: Don’t be afraid of Test-Driven Development " rel="nofollow">episode 76: TDD: Don’t be afraid of Test-Driven Development </a></li><li><a href="https://twitter.com/brenankeller/status/1068615953989087232" title="" rel="nofollow">"A QA engineer walks into a bar"</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Roadblocks to writing tests, and what to do about it.</p>

<p>Some developers either don't write tests, or don't like writing tests.<br>
Why not? I love writing tests.<br>
In this episode we examine lots of roadblocks to testing, and start coming up with solutions for these.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1140041742864961536" title="" rel="nofollow">"I don’t write tests because ____. " twitter question</a></li><li><a href="https://pythontest.com/testandcode/75" title="episode 75: Modern Testing Principles" rel="nofollow">episode 75: Modern Testing Principles</a></li><li><a href="https://pythontest.com/testandcode/76" title="episode 76: TDD: Don’t be afraid of Test-Driven Development " rel="nofollow">episode 76: TDD: Don’t be afraid of Test-Driven Development </a></li><li><a href="https://twitter.com/brenankeller/status/1068615953989087232" title="" rel="nofollow">"A QA engineer walks into a bar"</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 19 Jun 2019 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/78.mp3" length="14891657" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1842</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Roadblocks to writing tests, and what to do about it.</p>

<p>Some developers either don't write tests, or don't like writing tests.<br>
Why not? I love writing tests.<br>
In this episode we examine lots of roadblocks to testing, and start coming up with solutions for these.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1140041742864961536" title="" rel="nofollow">"I don’t write tests because ____. " twitter question</a></li><li><a href="https://pythontest.com/testandcode/75" title="episode 75: Modern Testing Principles" rel="nofollow">episode 75: Modern Testing Principles</a></li><li><a href="https://pythontest.com/testandcode/76" title="episode 76: TDD: Don’t be afraid of Test-Driven Development " rel="nofollow">episode 76: TDD: Don’t be afraid of Test-Driven Development </a></li><li><a href="https://twitter.com/brenankeller/status/1068615953989087232" title="" rel="nofollow">"A QA engineer walks into a bar"</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software testing, TDD</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>77: Testing Complex Systems with Maintainable Test Suites</title>
      <itunes:episode>77</itunes:episode>
      <podcast:episode>77</podcast:episode>
      <itunes:title>77: Testing Complex Systems with Maintainable Test Suites</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e236a860-0c61-4db1-be75-0fceacf3fdb9</guid>
      <link>https://pythontest.com/testandcode/episodes/77-testing-complex-systems-with-maintainable-test-suites</link>
      <description>
        <![CDATA[<p>Creating maintainable test suites for complex systems. The episode describes some complexities involved with hardware testing, then shares techniques for shifting complexity out of the test  cases.</p>

<ul>
<li>quick overview of what test instruments are</li>
<li>discussion of API and communication with instruments</li>
<li>techniques for shifting complexity out of test cases</li>
</ul>

<p>These techniques should apply to all test suites dealing with complex systems:</p>

<ul>
<li>Creating test cases that are easy to read and debug and tell a story about what is being tested.</li>
<li>Pushing setup complexity into fixtures.</li>
<li>Pushing lengthy repetitive API call sets into helper functions.</li>
<li>Using stable, documented, interfaces.</li>
</ul><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Voltmeter" title="Voltmeter" rel="nofollow">Voltmeter</a></li><li><a href="https://en.wikipedia.org/wiki/Oscilloscope" title="Oscilloscope" rel="nofollow">Oscilloscope</a></li><li><a href="https://en.wikipedia.org/wiki/Spectrum_analyzer" title="Spectrum analyzer" rel="nofollow">Spectrum analyzer</a></li><li><a href="https://en.wikipedia.org/wiki/Function_generator" title="Function generator" rel="nofollow">Function generator</a></li><li><a href="https://en.wikipedia.org/wiki/Arbitrary_waveform_generator" title="Arbitrary waveform generator" rel="nofollow">Arbitrary waveform generator</a></li><li><a href="https://www.rohde-schwarz.com/us/products/test-and-measurement/wireless-communications-testers-systems/pg_overview_86247.html" title="Wireless Communications Testers &amp; Systems" rel="nofollow">Wireless Communications Testers &amp; Systems</a></li><li><a href="https://www.rohde-schwarz.com/us/product/cmw500_overview-productstartpage_63493-10844.html" title="R&amp;S CMW Platform" rel="nofollow">R&amp;S CMW Platform</a></li><li><a href="https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments" title="SCPI - Standard Commands for Programmable Instruments" rel="nofollow">SCPI - Standard Commands for Programmable Instruments</a></li><li><a href="https://en.wikipedia.org/wiki/Virtual_instrument_software_architecture" title="VISA - Virtual instrument software architecture" rel="nofollow">VISA - Virtual instrument software architecture</a></li><li><a href="https://pyvisa.readthedocs.io/en/latest/index.html" title="PyVISA: Control your instruments with Python" rel="nofollow">PyVISA: Control your instruments with Python</a></li><li><a href="https://docs.pytest.org/en/latest/" title="pytest" rel="nofollow">pytest</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="pytest book" rel="nofollow">pytest book</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Creating maintainable test suites for complex systems. The episode describes some complexities involved with hardware testing, then shares techniques for shifting complexity out of the test  cases.</p>

<ul>
<li>quick overview of what test instruments are</li>
<li>discussion of API and communication with instruments</li>
<li>techniques for shifting complexity out of test cases</li>
</ul>

<p>These techniques should apply to all test suites dealing with complex systems:</p>

<ul>
<li>Creating test cases that are easy to read and debug and tell a story about what is being tested.</li>
<li>Pushing setup complexity into fixtures.</li>
<li>Pushing lengthy repetitive API call sets into helper functions.</li>
<li>Using stable, documented, interfaces.</li>
</ul><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Voltmeter" title="Voltmeter" rel="nofollow">Voltmeter</a></li><li><a href="https://en.wikipedia.org/wiki/Oscilloscope" title="Oscilloscope" rel="nofollow">Oscilloscope</a></li><li><a href="https://en.wikipedia.org/wiki/Spectrum_analyzer" title="Spectrum analyzer" rel="nofollow">Spectrum analyzer</a></li><li><a href="https://en.wikipedia.org/wiki/Function_generator" title="Function generator" rel="nofollow">Function generator</a></li><li><a href="https://en.wikipedia.org/wiki/Arbitrary_waveform_generator" title="Arbitrary waveform generator" rel="nofollow">Arbitrary waveform generator</a></li><li><a href="https://www.rohde-schwarz.com/us/products/test-and-measurement/wireless-communications-testers-systems/pg_overview_86247.html" title="Wireless Communications Testers &amp; Systems" rel="nofollow">Wireless Communications Testers &amp; Systems</a></li><li><a href="https://www.rohde-schwarz.com/us/product/cmw500_overview-productstartpage_63493-10844.html" title="R&amp;S CMW Platform" rel="nofollow">R&amp;S CMW Platform</a></li><li><a href="https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments" title="SCPI - Standard Commands for Programmable Instruments" rel="nofollow">SCPI - Standard Commands for Programmable Instruments</a></li><li><a href="https://en.wikipedia.org/wiki/Virtual_instrument_software_architecture" title="VISA - Virtual instrument software architecture" rel="nofollow">VISA - Virtual instrument software architecture</a></li><li><a href="https://pyvisa.readthedocs.io/en/latest/index.html" title="PyVISA: Control your instruments with Python" rel="nofollow">PyVISA: Control your instruments with Python</a></li><li><a href="https://docs.pytest.org/en/latest/" title="pytest" rel="nofollow">pytest</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="pytest book" rel="nofollow">pytest book</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 11 Jun 2019 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/77.mp3" length="11195920" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1380</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Creating maintainable test suites for complex systems. The episode describes some complexities involved with hardware testing, then shares techniques for shifting complexity out of the test  cases.</p>

<ul>
<li>quick overview of what test instruments are</li>
<li>discussion of API and communication with instruments</li>
<li>techniques for shifting complexity out of test cases</li>
</ul>

<p>These techniques should apply to all test suites dealing with complex systems:</p>

<ul>
<li>Creating test cases that are easy to read and debug and tell a story about what is being tested.</li>
<li>Pushing setup complexity into fixtures.</li>
<li>Pushing lengthy repetitive API call sets into helper functions.</li>
<li>Using stable, documented, interfaces.</li>
</ul><p>Links:</p><ul><li><a href="https://en.wikipedia.org/wiki/Voltmeter" title="Voltmeter" rel="nofollow">Voltmeter</a></li><li><a href="https://en.wikipedia.org/wiki/Oscilloscope" title="Oscilloscope" rel="nofollow">Oscilloscope</a></li><li><a href="https://en.wikipedia.org/wiki/Spectrum_analyzer" title="Spectrum analyzer" rel="nofollow">Spectrum analyzer</a></li><li><a href="https://en.wikipedia.org/wiki/Function_generator" title="Function generator" rel="nofollow">Function generator</a></li><li><a href="https://en.wikipedia.org/wiki/Arbitrary_waveform_generator" title="Arbitrary waveform generator" rel="nofollow">Arbitrary waveform generator</a></li><li><a href="https://www.rohde-schwarz.com/us/products/test-and-measurement/wireless-communications-testers-systems/pg_overview_86247.html" title="Wireless Communications Testers &amp; Systems" rel="nofollow">Wireless Communications Testers &amp; Systems</a></li><li><a href="https://www.rohde-schwarz.com/us/product/cmw500_overview-productstartpage_63493-10844.html" title="R&amp;S CMW Platform" rel="nofollow">R&amp;S CMW Platform</a></li><li><a href="https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments" title="SCPI - Standard Commands for Programmable Instruments" rel="nofollow">SCPI - Standard Commands for Programmable Instruments</a></li><li><a href="https://en.wikipedia.org/wiki/Virtual_instrument_software_architecture" title="VISA - Virtual instrument software architecture" rel="nofollow">VISA - Virtual instrument software architecture</a></li><li><a href="https://pyvisa.readthedocs.io/en/latest/index.html" title="PyVISA: Control your instruments with Python" rel="nofollow">PyVISA: Control your instruments with Python</a></li><li><a href="https://docs.pytest.org/en/latest/" title="pytest" rel="nofollow">pytest</a></li><li><a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" title="pytest book" rel="nofollow">pytest book</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software testing, hardware testing, test instruments, SCPI, VISA</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>76: TDD: Don’t be afraid of Test-Driven Development - Chris May</title>
      <itunes:episode>76</itunes:episode>
      <podcast:episode>76</podcast:episode>
      <itunes:title>76: TDD: Don’t be afraid of Test-Driven Development - Chris May</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d7b108b7-bada-4998-ab5a-c1b068ee05e5</guid>
      <link>https://pythontest.com/testandcode/episodes/76-tdd-don-t-be-afraid-of-test-driven-development-chris-may</link>
      <description>
        <![CDATA[<p>Test Driven Development, TDD, can be intimidating to try. <br>
Why is that? And how can we make it less scary? <br>
That's what this episode is about.</p>

<p>Chris May is a Python developer and the co-founder of PyRVA, the Richmond Virginia Python group.<br>
In this episode, Chris shares his experience with adding testing and TDD to his work flow.</p>

<p>I really enjoyed talking with Chris, and I think his story will help lots of people overcome testing anxiety.</p><p>Special Guest: Chris May.</p>
<p>Links:</p><ul><li><a href="https://storiesinmypocket.com/articles/dont-be-afraid-test-driven-development/" title="Don't be afraid of Test-Driven Development" rel="nofollow">Don't be afraid of Test-Driven Development</a></li><li><a href="https://storiesinmypocket.com/products/everyday-superpowers/" title="Everyday Superpowers" rel="nofollow">Everyday Superpowers</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Test Driven Development, TDD, can be intimidating to try. <br>
Why is that? And how can we make it less scary? <br>
That's what this episode is about.</p>

<p>Chris May is a Python developer and the co-founder of PyRVA, the Richmond Virginia Python group.<br>
In this episode, Chris shares his experience with adding testing and TDD to his work flow.</p>

<p>I really enjoyed talking with Chris, and I think his story will help lots of people overcome testing anxiety.</p><p>Special Guest: Chris May.</p><p>Links:</p><ul><li><a href="https://storiesinmypocket.com/articles/dont-be-afraid-test-driven-development/" title="Don't be afraid of Test-Driven Development" rel="nofollow">Don't be afraid of Test-Driven Development</a></li><li><a href="https://storiesinmypocket.com/products/everyday-superpowers/" title="Everyday Superpowers" rel="nofollow">Everyday Superpowers</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 29 May 2019 11:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/76.mp3" length="17195659" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2130</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Test Driven Development, TDD, can be intimidating to try. <br>
Why is that? And how can we make it less scary? <br>
That's what this episode is about.</p>

<p>Chris May is a Python developer and the co-founder of PyRVA, the Richmond Virginia Python group.<br>
In this episode, Chris shares his experience with adding testing and TDD to his work flow.</p>

<p>I really enjoyed talking with Chris, and I think his story will help lots of people overcome testing anxiety.</p><p>Special Guest: Chris May.</p><p>Links:</p><ul><li><a href="https://storiesinmypocket.com/articles/dont-be-afraid-test-driven-development/" title="Don't be afraid of Test-Driven Development" rel="nofollow">Don't be afraid of Test-Driven Development</a></li><li><a href="https://storiesinmypocket.com/products/everyday-superpowers/" title="Everyday Superpowers" rel="nofollow">Everyday Superpowers</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>testing, TDD, test driven development</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>75: Modern Testing Principles - Alan Page</title>
      <itunes:episode>75</itunes:episode>
      <podcast:episode>75</podcast:episode>
      <itunes:title>75: Modern Testing Principles - Alan Page</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4619b983-e93e-4bed-a4c9-aae94c921956</guid>
      <link>https://pythontest.com/testandcode/episodes/75-modern-testing-principles-alan-page</link>
      <description>
        <![CDATA[<p>Software testing, if done right, is done all the time, throughout the whole life of a software project. This is different than the verification and validation of a classical model of QA teams. It's more of a collaborative model that actually tries to help get great software out the door faster and iterate quicker. </p>

<p>One of the people at the forefront of this push is Alan Page. Alan and his podcast cohost Brent Jensen tried to boil down what modern testing looks like in the Modern Testing Principles.</p>

<p>I've got Alan here today, to talk about the principles, and also to talk about this transition from classical QA to testing specialists being embedded in software teams and then to software teams doing their own testing.</p>

<p>But that only barely scratches the surface of what we cover. I think you'll learn a lot from this discussion.</p>

<p><strong>The seven principles of <a href="http://moderntesting.org" rel="nofollow">Modern Testing</a>:</strong> </p>

<ol>
<li>Our priority is improving the business.</li>
<li>We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.</li>
<li>We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.</li>
<li>We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.</li>
<li>We believe that the customer is the only one capable to judge and evaluate the quality of our product</li>
<li>We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.</li>
<li>We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist. </li>
</ol><p>Special Guest: Alan Page.</p><p>Links:</p><ul><li><a href="https://angryweasel.com/blog/" title="Tooth of the Weasel – notes and rants about software and software quality" rel="nofollow">Tooth of the Weasel – notes and rants about software and software quality</a></li><li><a href="https://www.angryweasel.com/ABTesting/" title="AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more." rel="nofollow">AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more.</a></li><li><a href="https://www.angryweasel.com/ABTesting/modern-testing-principles/" title="Modern Testing Principles" rel="nofollow">Modern Testing Principles</a></li><li><a href="https://amzn.to/2WigLM2" title="The Lean Startup" rel="nofollow">The Lean Startup</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Software testing, if done right, is done all the time, throughout the whole life of a software project. This is different than the verification and validation of a classical model of QA teams. It's more of a collaborative model that actually tries to help get great software out the door faster and iterate quicker. </p>

<p>One of the people at the forefront of this push is Alan Page. Alan and his podcast cohost Brent Jensen tried to boil down what modern testing looks like in the Modern Testing Principles.</p>

<p>I've got Alan here today, to talk about the principles, and also to talk about this transition from classical QA to testing specialists being embedded in software teams and then to software teams doing their own testing.</p>

<p>But that only barely scratches the surface of what we cover. I think you'll learn a lot from this discussion.</p>

<p><strong>The seven principles of <a href="http://moderntesting.org" rel="nofollow">Modern Testing</a>:</strong> </p>

<ol>
<li>Our priority is improving the business.</li>
<li>We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.</li>
<li>We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.</li>
<li>We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.</li>
<li>We believe that the customer is the only one capable to judge and evaluate the quality of our product</li>
<li>We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.</li>
<li>We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist. </li>
</ol><p>Special Guest: Alan Page.</p><p>Links:</p><ul><li><a href="https://angryweasel.com/blog/" title="Tooth of the Weasel – notes and rants about software and software quality" rel="nofollow">Tooth of the Weasel – notes and rants about software and software quality</a></li><li><a href="https://www.angryweasel.com/ABTesting/" title="AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more." rel="nofollow">AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more.</a></li><li><a href="https://www.angryweasel.com/ABTesting/modern-testing-principles/" title="Modern Testing Principles" rel="nofollow">Modern Testing Principles</a></li><li><a href="https://amzn.to/2WigLM2" title="The Lean Startup" rel="nofollow">The Lean Startup</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 23 May 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/75.mp3" length="19365514" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2401</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Software testing, if done right, is done all the time, throughout the whole life of a software project. This is different than the verification and validation of a classical model of QA teams. It's more of a collaborative model that actually tries to help get great software out the door faster and iterate quicker. </p>

<p>One of the people at the forefront of this push is Alan Page. Alan and his podcast cohost Brent Jensen tried to boil down what modern testing looks like in the Modern Testing Principles.</p>

<p>I've got Alan here today, to talk about the principles, and also to talk about this transition from classical QA to testing specialists being embedded in software teams and then to software teams doing their own testing.</p>

<p>But that only barely scratches the surface of what we cover. I think you'll learn a lot from this discussion.</p>

<p><strong>The seven principles of <a href="http://moderntesting.org" rel="nofollow">Modern Testing</a>:</strong> </p>

<ol>
<li>Our priority is improving the business.</li>
<li>We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.</li>
<li>We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.</li>
<li>We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.</li>
<li>We believe that the customer is the only one capable to judge and evaluate the quality of our product</li>
<li>We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.</li>
<li>We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist. </li>
</ol><p>Special Guest: Alan Page.</p><p>Links:</p><ul><li><a href="https://angryweasel.com/blog/" title="Tooth of the Weasel – notes and rants about software and software quality" rel="nofollow">Tooth of the Weasel – notes and rants about software and software quality</a></li><li><a href="https://www.angryweasel.com/ABTesting/" title="AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more." rel="nofollow">AB Testing – Alan and Brent talk about Modern Testing – including Agile, Data, Leadership, and more.</a></li><li><a href="https://www.angryweasel.com/ABTesting/modern-testing-principles/" title="Modern Testing Principles" rel="nofollow">Modern Testing Principles</a></li><li><a href="https://amzn.to/2WigLM2" title="The Lean Startup" rel="nofollow">The Lean Startup</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software development, software testing, TDD, QA, automation</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>74:  Technical Interviews: Preparing For, What to Expect, and Tips for Success - Derrick Mar</title>
      <itunes:episode>74</itunes:episode>
      <podcast:episode>74</podcast:episode>
      <itunes:title>74:  Technical Interviews: Preparing For, What to Expect, and Tips for Success - Derrick Mar</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b4c95b6c-1282-4969-8cf4-a0bef1dab784</guid>
      <link>https://pythontest.com/testandcode/episodes/74-technical-interviews-preparing-for-what-to-expect-and-tips-for-success-derrick-mar</link>
      <description>
        <![CDATA[<p>In this episode, I talk with Derrick Mar, CTO and co-founder of Pathrise.<br>
This is the episode you need to listen to to get ready for software interviews.</p>

<ul>
<li><p>We discuss four aspects of technical interviews that interviewers are looking for:</p>

<ul>
<li>communication</li>
<li>problem solving</li>
<li>coding</li>
<li>verification</li>
</ul></li>
<li><p>How to practice for the interview.</p></li>
<li><p>Techniques for synchronizing with interviewer and asking for hints.</p></li>
<li><p>Even how to ask the recruiter or hiring manager how to prepare for the interview.</p></li>
</ul>

<p>If you or anyone you know has a software interview coming up, this episode will help you both feel more comfortable about the interview before you show up, and give you concrete tips on how to do better during the interview.</p><p>Special Guest: Derrick Mar.</p><p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/72" title="72: Technical Interview Fixes - April Wensel" rel="nofollow">72: Technical Interview Fixes - April Wensel</a></li><li><a href="https://www.pathrise.com/" title="Pathrise" rel="nofollow">Pathrise</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, I talk with Derrick Mar, CTO and co-founder of Pathrise.<br>
This is the episode you need to listen to to get ready for software interviews.</p>

<ul>
<li><p>We discuss four aspects of technical interviews that interviewers are looking for:</p>

<ul>
<li>communication</li>
<li>problem solving</li>
<li>coding</li>
<li>verification</li>
</ul></li>
<li><p>How to practice for the interview.</p></li>
<li><p>Techniques for synchronizing with interviewer and asking for hints.</p></li>
<li><p>Even how to ask the recruiter or hiring manager how to prepare for the interview.</p></li>
</ul>

<p>If you or anyone you know has a software interview coming up, this episode will help you both feel more comfortable about the interview before you show up, and give you concrete tips on how to do better during the interview.</p><p>Special Guest: Derrick Mar.</p>
<p>Links:</p><ul><li><a href="https://pythontest.com/testandcode/72" title="72: Technical Interview Fixes - April Wensel" rel="nofollow">72: Technical Interview Fixes - April Wensel</a></li><li><a href="https://www.pathrise.com/" title="Pathrise" rel="nofollow">Pathrise</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 21 May 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/74.mp3" length="13177557" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1627</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, I talk with Derrick Mar, CTO and co-founder of Pathrise.<br>
This is the episode you need to listen to to get ready for software interviews.</p>

<ul>
<li><p>We discuss four aspects of technical interviews that interviewers are looking for:</p>

<ul>
<li>communication</li>
<li>problem solving</li>
<li>coding</li>
<li>verification</li>
</ul></li>
<li><p>How to practice for the interview.</p></li>
<li><p>Techniques for synchronizing with interviewer and asking for hints.</p></li>
<li><p>Even how to ask the recruiter or hiring manager how to prepare for the interview.</p></li>
</ul>

<p>If you or anyone you know has a software interview coming up, this episode will help you both feel more comfortable about the interview before you show up, and give you concrete tips on how to do better during the interview.</p><p>Special Guest: Derrick Mar.</p>]]>
      </itunes:summary>
      <itunes:keywords>technical interviews, coding interviews,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>73: PyCon 2019 Live Recording</title>
      <itunes:episode>73</itunes:episode>
      <podcast:episode>73</podcast:episode>
      <itunes:title>73: PyCon 2019 Live Recording</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">95e956dd-bb17-4e4a-afac-8586afba5dd9</guid>
      <link>https://pythontest.com/testandcode/episodes/73-pycon-2019-live-recording</link>
      <description>
        <![CDATA[<p>This is a "Yay! It's PyCon 2019" episode.<br>
PyCon is very important to me.<br>
But it's kinda hard to put a finger on why. <br>
So I figured I'd ask more people to help explain why it's important.<br>
I ask a few simple questions to people about Python and PyCon and get some great insights into both the language popularity and the special place this conference holds to many people.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This is a "Yay! It's PyCon 2019" episode.<br>
PyCon is very important to me.<br>
But it's kinda hard to put a finger on why. <br>
So I figured I'd ask more people to help explain why it's important.<br>
I ask a few simple questions to people about Python and PyCon and get some great insights into both the language popularity and the special place this conference holds to many people.</p>]]>
      </content:encoded>
      <pubDate>Fri, 03 May 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/73.mp3" length="13608547" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1681</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This is a "Yay! It's PyCon 2019" episode.<br>
PyCon is very important to me.<br>
But it's kinda hard to put a finger on why. <br>
So I figured I'd ask more people to help explain why it's important.<br>
I ask a few simple questions to people about Python and PyCon and get some great insights into both the language popularity and the special place this conference holds to many people.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>72: Technical Interview Fixes - April Wensel</title>
      <itunes:episode>72</itunes:episode>
      <podcast:episode>72</podcast:episode>
      <itunes:title>72: Technical Interview Fixes - April Wensel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d2ef87bc-7bf1-4848-b6ad-73bfa13ff4f6</guid>
      <link>https://pythontest.com/testandcode/episodes/72-technical-interview-fixes-april-wensel</link>
      <description>
        <![CDATA[<p>Some typical technical interview practices can be harmful and get in the way of hiring great people. April Wensel offers advice to help fix the technical interview process.</p>

<p>She recommends:</p>

<ul>
<li>hire for mindset and attitude</li>
<li>look for empathy and mentorship skills</li>
<li>allow candidates to show their strengths instead of hunting for weaknesses</li>
<li>have the candidate leave feeling good about themselves and your company, regardless of the hiring decision</li>
</ul>

<p>Some topics discussed:</p>

<ul>
<li>interview questions to bring out stories of skills and successes</li>
<li>stereotype threat</li>
<li>diversity</li>
<li>interview hazing</li>
<li>white boards</li>
<li>coding challenges</li>
<li>unconscious bias</li>
<li>emotional intelligence</li>
<li>myth of talent shortage</li>
<li>pair programming and collaboration during interviews</li>
<li>mirrortocracy</li>
<li>cultural add vs cultural fit</li>
<li>empathy</li>
<li>mentoring</li>
</ul>

<p>This episode is important for anyone going into a technical interview, as a candidate, as a hiring manager, or as a member of an interview team.</p><p>Special Guest:  April Wensel.</p><p>Links:</p><ul><li><a href="https://compassionatecoding.com/" title="Compassionate Coding" rel="nofollow">Compassionate Coding</a></li><li><a href="https://medium.com/compassionate-coding/leave-your-gut-out-of-hiring-decisions-8b70c6f8e09d" title="Leave Your “Gut” Out of Hiring Decisions" rel="nofollow">Leave Your “Gut” Out of Hiring Decisions</a></li><li><a href="https://medium.com/compassionate-coding/if-you-can-use-a-fork-youre-technical-352e21d92c87" title="If You Can Use a Fork, You’re “Technical”" rel="nofollow">If You Can Use a Fork, You’re “Technical”</a> — April Wensel</li><li><a href="https://projectinclude.org/" title="Project Include" rel="nofollow">Project Include</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Some typical technical interview practices can be harmful and get in the way of hiring great people. April Wensel offers advice to help fix the technical interview process.</p>

<p>She recommends:</p>

<ul>
<li>hire for mindset and attitude</li>
<li>look for empathy and mentorship skills</li>
<li>allow candidates to show their strengths instead of hunting for weaknesses</li>
<li>have the candidate leave feeling good about themselves and your company, regardless of the hiring decision</li>
</ul>

<p>Some topics discussed:</p>

<ul>
<li>interview questions to bring out stories of skills and successes</li>
<li>stereotype threat</li>
<li>diversity</li>
<li>interview hazing</li>
<li>white boards</li>
<li>coding challenges</li>
<li>unconscious bias</li>
<li>emotional intelligence</li>
<li>myth of talent shortage</li>
<li>pair programming and collaboration during interviews</li>
<li>mirrortocracy</li>
<li>cultural add vs cultural fit</li>
<li>empathy</li>
<li>mentoring</li>
</ul>

<p>This episode is important for anyone going into a technical interview, as a candidate, as a hiring manager, or as a member of an interview team.</p><p>Special Guest:  April Wensel.</p><p>Links:</p><ul><li><a href="https://compassionatecoding.com/" title="Compassionate Coding" rel="nofollow">Compassionate Coding</a></li><li><a href="https://medium.com/compassionate-coding/leave-your-gut-out-of-hiring-decisions-8b70c6f8e09d" title="Leave Your “Gut” Out of Hiring Decisions" rel="nofollow">Leave Your “Gut” Out of Hiring Decisions</a></li><li><a href="https://medium.com/compassionate-coding/if-you-can-use-a-fork-youre-technical-352e21d92c87" title="If You Can Use a Fork, You’re “Technical”" rel="nofollow">If You Can Use a Fork, You’re “Technical”</a> — April Wensel</li><li><a href="https://projectinclude.org/" title="Project Include" rel="nofollow">Project Include</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 29 Apr 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/72.mp3" length="18249200" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2261</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Some typical technical interview practices can be harmful and get in the way of hiring great people. April Wensel offers advice to help fix the technical interview process.</p>

<p>She recommends:</p>

<ul>
<li>hire for mindset and attitude</li>
<li>look for empathy and mentorship skills</li>
<li>allow candidates to show their strengths instead of hunting for weaknesses</li>
<li>have the candidate leave feeling good about themselves and your company, regardless of the hiring decision</li>
</ul>

<p>Some topics discussed:</p>

<ul>
<li>interview questions to bring out stories of skills and successes</li>
<li>stereotype threat</li>
<li>diversity</li>
<li>interview hazing</li>
<li>white boards</li>
<li>coding challenges</li>
<li>unconscious bias</li>
<li>emotional intelligence</li>
<li>myth of talent shortage</li>
<li>pair programming and collaboration during interviews</li>
<li>mirrortocracy</li>
<li>cultural add vs cultural fit</li>
<li>empathy</li>
<li>mentoring</li>
</ul>

<p>This episode is important for anyone going into a technical interview, as a candidate, as a hiring manager, or as a member of an interview team.</p><p>Special Guest:  April Wensel.</p><p>Links:</p><ul><li><a href="https://compassionatecoding.com/" title="Compassionate Coding" rel="nofollow">Compassionate Coding</a></li><li><a href="https://medium.com/compassionate-coding/leave-your-gut-out-of-hiring-decisions-8b70c6f8e09d" title="Leave Your “Gut” Out of Hiring Decisions" rel="nofollow">Leave Your “Gut” Out of Hiring Decisions</a></li><li><a href="https://medium.com/compassionate-coding/if-you-can-use-a-fork-youre-technical-352e21d92c87" title="If You Can Use a Fork, You’re “Technical”" rel="nofollow">If You Can Use a Fork, You’re “Technical”</a> — April Wensel</li><li><a href="https://projectinclude.org/" title="Project Include" rel="nofollow">Project Include</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>technical interviews, coding interviews</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>71: Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko</title>
      <itunes:episode>71</itunes:episode>
      <podcast:episode>71</podcast:episode>
      <itunes:title>71: Memorable Tech Talks, The Ultimate Guide - Nina Zakharenko</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">33356221-2dde-4c16-a199-eba06aafcd0f</guid>
      <link>https://pythontest.com/testandcode/episodes/71-memorable-tech-talks-the-ultimate-guide-nina-zakharenko</link>
      <description>
        <![CDATA[<p>Nina Zakharenko gives some great advice about giving tech talks.<br>
We talk about a blog series that Nina wrote called "The Ultimate Guide To Memorable Tech Talks". This episode is full of great help and encouragement for your own public speaking adventures.</p>

<p>Some of what we discuss:</p>

<ul>
<li>overcoming the fear of public speaking</li>
<li>breathing and pausing during talks</li>
<li>planning your talk as well as planning your time to get ready for the talk</li>
<li>writing proposals and getting feedback on proposals</li>
<li>Nina's talk in PyCascades on programming Adafruit chips</li>
<li>types of talks that are often rejected</li>
<li>pre-recording demos to avoid live demo problems</li>
<li>why you should speak, even if you are an introvert</li>
<li>benefits of public speaking</li>
<li>a super cool announcement at the end</li>
</ul><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b" title="The Ultimate Guide To Memorable Tech Talks" rel="nofollow">The Ultimate Guide To Memorable Tech Talks</a> — Nina's series of posts with lots of advice on giving excellent tech talks.</li><li><a href="https://docs.microsoft.com/en-us/python/azure/?view=azure-python&amp;WT.mc_id=testandcode-podcast-ninaz" title="Azure for Python developers" rel="nofollow">Azure for Python developers</a> — Tutorials, API Reference | Microsoft Docs</li><li><a href="https://www.verywellhealth.com/how-to-breathe-with-your-belly-89853" title="How to Do a Deep, Diaphragmatic Belly Breathing" rel="nofollow">How to Do a Deep, Diaphragmatic Belly Breathing</a></li><li><a href="https://github.com/nnja/example-proposals" title="Example accepted and rejected conference talk proposals" rel="nofollow">Example accepted and rejected conference talk proposals</a> — Nina's examples</li><li><a href="http://akaptur.com/blog/2014/09/11/rejected-pycon-proposals/" title="Allison Kaptur's PyCon Proposal examples" rel="nofollow">Allison Kaptur's PyCon Proposal examples</a></li><li><a href="https://github.com/emilyemorehouse/conference-talk-proposals" title="Emily Morehouse's proposal examples." rel="nofollow">Emily Morehouse's proposal examples.</a></li><li><a href="https://rhodesmill.org/brandon/2013/example-pycon-proposals/" title="Brandon Rhodes' example PyCon talk proposals" rel="nofollow">Brandon Rhodes' example PyCon talk proposals</a></li><li><a href="https://youtu.be/MTdYyCKcI8Q?t=806" title="Nina's PyCascades talk on Python and LEDs" rel="nofollow">Nina's PyCascades talk on Python and LEDs</a> — PyCascades – Light Up Your Life – With Python and LEDs, starts at 13:26.</li><li><a href="https://us.pycon.org/2019/keynote-speakers/#nina" title="Nina has a keynote at PyCon 2019" rel="nofollow">Nina has a keynote at PyCon 2019</a> — woohoo!</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Nina Zakharenko gives some great advice about giving tech talks.<br>
We talk about a blog series that Nina wrote called "The Ultimate Guide To Memorable Tech Talks". This episode is full of great help and encouragement for your own public speaking adventures.</p>

<p>Some of what we discuss:</p>

<ul>
<li>overcoming the fear of public speaking</li>
<li>breathing and pausing during talks</li>
<li>planning your talk as well as planning your time to get ready for the talk</li>
<li>writing proposals and getting feedback on proposals</li>
<li>Nina's talk in PyCascades on programming Adafruit chips</li>
<li>types of talks that are often rejected</li>
<li>pre-recording demos to avoid live demo problems</li>
<li>why you should speak, even if you are an introvert</li>
<li>benefits of public speaking</li>
<li>a super cool announcement at the end</li>
</ul><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b" title="The Ultimate Guide To Memorable Tech Talks" rel="nofollow">The Ultimate Guide To Memorable Tech Talks</a> — Nina's series of posts with lots of advice on giving excellent tech talks.</li><li><a href="https://docs.microsoft.com/en-us/python/azure/?view=azure-python&amp;WT.mc_id=testandcode-podcast-ninaz" title="Azure for Python developers" rel="nofollow">Azure for Python developers</a> — Tutorials, API Reference | Microsoft Docs</li><li><a href="https://www.verywellhealth.com/how-to-breathe-with-your-belly-89853" title="How to Do a Deep, Diaphragmatic Belly Breathing" rel="nofollow">How to Do a Deep, Diaphragmatic Belly Breathing</a></li><li><a href="https://github.com/nnja/example-proposals" title="Example accepted and rejected conference talk proposals" rel="nofollow">Example accepted and rejected conference talk proposals</a> — Nina's examples</li><li><a href="http://akaptur.com/blog/2014/09/11/rejected-pycon-proposals/" title="Allison Kaptur's PyCon Proposal examples" rel="nofollow">Allison Kaptur's PyCon Proposal examples</a></li><li><a href="https://github.com/emilyemorehouse/conference-talk-proposals" title="Emily Morehouse's proposal examples." rel="nofollow">Emily Morehouse's proposal examples.</a></li><li><a href="https://rhodesmill.org/brandon/2013/example-pycon-proposals/" title="Brandon Rhodes' example PyCon talk proposals" rel="nofollow">Brandon Rhodes' example PyCon talk proposals</a></li><li><a href="https://youtu.be/MTdYyCKcI8Q?t=806" title="Nina's PyCascades talk on Python and LEDs" rel="nofollow">Nina's PyCascades talk on Python and LEDs</a> — PyCascades – Light Up Your Life – With Python and LEDs, starts at 13:26.</li><li><a href="https://us.pycon.org/2019/keynote-speakers/#nina" title="Nina has a keynote at PyCon 2019" rel="nofollow">Nina has a keynote at PyCon 2019</a> — woohoo!</li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 05 Apr 2019 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/71.mp3" length="23458964" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2913</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Nina Zakharenko gives some great advice about giving tech talks.<br>
We talk about a blog series that Nina wrote called "The Ultimate Guide To Memorable Tech Talks". This episode is full of great help and encouragement for your own public speaking adventures.</p>

<p>Some of what we discuss:</p>

<ul>
<li>overcoming the fear of public speaking</li>
<li>breathing and pausing during talks</li>
<li>planning your talk as well as planning your time to get ready for the talk</li>
<li>writing proposals and getting feedback on proposals</li>
<li>Nina's talk in PyCascades on programming Adafruit chips</li>
<li>types of talks that are often rejected</li>
<li>pre-recording demos to avoid live demo problems</li>
<li>why you should speak, even if you are an introvert</li>
<li>benefits of public speaking</li>
<li>a super cool announcement at the end</li>
</ul><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b" title="The Ultimate Guide To Memorable Tech Talks" rel="nofollow">The Ultimate Guide To Memorable Tech Talks</a> — Nina's series of posts with lots of advice on giving excellent tech talks.</li><li><a href="https://docs.microsoft.com/en-us/python/azure/?view=azure-python&amp;WT.mc_id=testandcode-podcast-ninaz" title="Azure for Python developers" rel="nofollow">Azure for Python developers</a> — Tutorials, API Reference | Microsoft Docs</li><li><a href="https://www.verywellhealth.com/how-to-breathe-with-your-belly-89853" title="How to Do a Deep, Diaphragmatic Belly Breathing" rel="nofollow">How to Do a Deep, Diaphragmatic Belly Breathing</a></li><li><a href="https://github.com/nnja/example-proposals" title="Example accepted and rejected conference talk proposals" rel="nofollow">Example accepted and rejected conference talk proposals</a> — Nina's examples</li><li><a href="http://akaptur.com/blog/2014/09/11/rejected-pycon-proposals/" title="Allison Kaptur's PyCon Proposal examples" rel="nofollow">Allison Kaptur's PyCon Proposal examples</a></li><li><a href="https://github.com/emilyemorehouse/conference-talk-proposals" title="Emily Morehouse's proposal examples." rel="nofollow">Emily Morehouse's proposal examples.</a></li><li><a href="https://rhodesmill.org/brandon/2013/example-pycon-proposals/" title="Brandon Rhodes' example PyCon talk proposals" rel="nofollow">Brandon Rhodes' example PyCon talk proposals</a></li><li><a href="https://youtu.be/MTdYyCKcI8Q?t=806" title="Nina's PyCascades talk on Python and LEDs" rel="nofollow">Nina's PyCascades talk on Python and LEDs</a> — PyCascades – Light Up Your Life – With Python and LEDs, starts at 13:26.</li><li><a href="https://us.pycon.org/2019/keynote-speakers/#nina" title="Nina has a keynote at PyCon 2019" rel="nofollow">Nina has a keynote at PyCon 2019</a> — woohoo!</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>tech talks, public speaking</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>70: Learning Software without a CS degree - Dane Hillard</title>
      <itunes:episode>70</itunes:episode>
      <podcast:episode>70</podcast:episode>
      <itunes:title>70: Learning Software without a CS degree - Dane Hillard</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4873086b-21a3-4b56-a529-ede5ba56a7d5</guid>
      <link>https://pythontest.com/testandcode/episodes/70-learning-software-without-a-cs-degree-dane-hillard</link>
      <description>
        <![CDATA[<p>Dane and Brian discuss skills needed for people that become software developers from non-traditional paths.</p>

<p>Dane is also writing a book to address many of these skill gaps, <a href="https://www.manning.com/books/code-like-a-pro" rel="nofollow">Code Like a Pro</a>, that's currently in an early access phase. Use code podtest&amp;code19 to get a discount. And, sign up as a <a href="https://pythontest.com/testandcode/friends-of-the-show" rel="nofollow">Friend of the Show</a> to enter for a chance to win a free copy of the eBook version.</p>

<p>We also discuss the writing process, testing with a multi-language stack, music, art, photography, and more.</p><p>Special Guest: Dane Hillard.</p><p>Links:</p><ul><li><a href="https://dane.engineering/" title="Dane Hillard" rel="nofollow">Dane Hillard</a></li><li><a href="https://www.manning.com/books/code-like-a-pro" title="Code Like a Pro" rel="nofollow">Code Like a Pro</a> — Dane's book</li><li><a href="https://www.noisely.com/" title="Noisely" rel="nofollow">Noisely</a></li><li><a href="https://littleleviathan.com/" title="Little Leviathan" rel="nofollow">Little Leviathan</a> — Dane's music</li><li><a href="https://www.danehillard.com/" title="Dane Hillard Photography" rel="nofollow">Dane Hillard Photography</a> — Dane's photography</li><li><a href="https://techcrunch.com/2019/03/18/nvidia-ai-turns-sketches-into-photorealistic-landscapes-in-seconds/" title="Nvidia AI turns sketches into photorealistic landscapes in seconds" rel="nofollow">Nvidia AI turns sketches into photorealistic landscapes in seconds</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Dane and Brian discuss skills needed for people that become software developers from non-traditional paths.</p>

<p>Dane is also writing a book to address many of these skill gaps, <a href="https://www.manning.com/books/code-like-a-pro" rel="nofollow">Code Like a Pro</a>, that's currently in an early access phase. Use code podtest&amp;code19 to get a discount. And, sign up as a <a href="https://pythontest.com/testandcode/friends-of-the-show" rel="nofollow">Friend of the Show</a> to enter for a chance to win a free copy of the eBook version.</p>

<p>We also discuss the writing process, testing with a multi-language stack, music, art, photography, and more.</p><p>Special Guest: Dane Hillard.</p><p>Links:</p><ul><li><a href="https://dane.engineering/" title="Dane Hillard" rel="nofollow">Dane Hillard</a></li><li><a href="https://www.manning.com/books/code-like-a-pro" title="Code Like a Pro" rel="nofollow">Code Like a Pro</a> — Dane's book</li><li><a href="https://www.noisely.com/" title="Noisely" rel="nofollow">Noisely</a></li><li><a href="https://littleleviathan.com/" title="Little Leviathan" rel="nofollow">Little Leviathan</a> — Dane's music</li><li><a href="https://www.danehillard.com/" title="Dane Hillard Photography" rel="nofollow">Dane Hillard Photography</a> — Dane's photography</li><li><a href="https://techcrunch.com/2019/03/18/nvidia-ai-turns-sketches-into-photorealistic-landscapes-in-seconds/" title="Nvidia AI turns sketches into photorealistic landscapes in seconds" rel="nofollow">Nvidia AI turns sketches into photorealistic landscapes in seconds</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 29 Mar 2019 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/70.mp3" length="14855325" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1837</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Dane and Brian discuss skills needed for people that become software developers from non-traditional paths.</p>

<p>Dane is also writing a book to address many of these skill gaps, <a href="https://www.manning.com/books/code-like-a-pro" rel="nofollow">Code Like a Pro</a>, that's currently in an early access phase. Use code podtest&amp;code19 to get a discount. And, sign up as a <a href="https://pythontest.com/testandcode/friends-of-the-show" rel="nofollow">Friend of the Show</a> to enter for a chance to win a free copy of the eBook version.</p>

<p>We also discuss the writing process, testing with a multi-language stack, music, art, photography, and more.</p><p>Special Guest: Dane Hillard.</p><p>Links:</p><ul><li><a href="https://dane.engineering/" title="Dane Hillard" rel="nofollow">Dane Hillard</a></li><li><a href="https://www.manning.com/books/code-like-a-pro" title="Code Like a Pro" rel="nofollow">Code Like a Pro</a> — Dane's book</li><li><a href="https://www.noisely.com/" title="Noisely" rel="nofollow">Noisely</a></li><li><a href="https://littleleviathan.com/" title="Little Leviathan" rel="nofollow">Little Leviathan</a> — Dane's music</li><li><a href="https://www.danehillard.com/" title="Dane Hillard Photography" rel="nofollow">Dane Hillard Photography</a> — Dane's photography</li><li><a href="https://techcrunch.com/2019/03/18/nvidia-ai-turns-sketches-into-photorealistic-landscapes-in-seconds/" title="Nvidia AI turns sketches into photorealistic landscapes in seconds" rel="nofollow">Nvidia AI turns sketches into photorealistic landscapes in seconds</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software development, testing, learning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>69: Andy Hunt - The Pragmatic Programmer</title>
      <itunes:episode>69</itunes:episode>
      <podcast:episode>69</podcast:episode>
      <itunes:title>69: Andy Hunt - The Pragmatic Programmer</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7ce37fea-2146-4753-8cf9-2fc2ecf08039</guid>
      <link>https://pythontest.com/testandcode/episodes/69-andy-hunt-the-pragmatic-programmer</link>
      <description>
        <![CDATA[<p>Andy Hunt and Dave Thomas wrote the seminal software development book, The Pragmatic Programmer. Together they founded The Pragmatic Programmers and are well known as founders of the agile movement and authors of the Agile Manifesto. They founded the Pragmatic Bookshelf publishing business in 2003. </p>

<p>The Pragmatic Bookshelf published it's most important book, in my opinion, in 2017 with the first <a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" rel="nofollow">pytest book</a> available from any publisher.</p>

<p>Topics:</p>

<ul>
<li><a href="https://pragprog.com/book/tpp/the-pragmatic-programmer" rel="nofollow">The Pragmatic Programmer</a>, the book</li>
<li>The <a href="https://agilemanifesto.org/" rel="nofollow">Manifesto for Agile Software Development</a></li>
<li>Agile methodologies and lightweight methods</li>
<li>Some issues with "Agile" as it is now.</li>
<li>The <a href="https://growsmethod.com/" rel="nofollow">GROWS Method</a> </li>
<li><a href="https://pragprog.com/" rel="nofollow">Pragmatic Bookshelf</a>, the publishing company</li>
<li>How Pragmatic Bookshelf is different, and <a href="http://write-for-us.pragprog.com/" rel="nofollow">what it's like to be an author</a> with them.</li>
<li>Reading and writing sci-fi novels, including <a href="https://conglommora.com/" rel="nofollow">Conglommora</a>, Andy's novels.</li>
<li><a href="https://andyhunt.bandcamp.com/" rel="nofollow">Playing music</a>.</li>
</ul><p>Special Guest: Andy Hunt.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Andy Hunt and Dave Thomas wrote the seminal software development book, The Pragmatic Programmer. Together they founded The Pragmatic Programmers and are well known as founders of the agile movement and authors of the Agile Manifesto. They founded the Pragmatic Bookshelf publishing business in 2003. </p>

<p>The Pragmatic Bookshelf published it's most important book, in my opinion, in 2017 with the first <a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" rel="nofollow">pytest book</a> available from any publisher.</p>

<p>Topics:</p>

<ul>
<li><a href="https://pragprog.com/book/tpp/the-pragmatic-programmer" rel="nofollow">The Pragmatic Programmer</a>, the book</li>
<li>The <a href="https://agilemanifesto.org/" rel="nofollow">Manifesto for Agile Software Development</a></li>
<li>Agile methodologies and lightweight methods</li>
<li>Some issues with "Agile" as it is now.</li>
<li>The <a href="https://growsmethod.com/" rel="nofollow">GROWS Method</a> </li>
<li><a href="https://pragprog.com/" rel="nofollow">Pragmatic Bookshelf</a>, the publishing company</li>
<li>How Pragmatic Bookshelf is different, and <a href="http://write-for-us.pragprog.com/" rel="nofollow">what it's like to be an author</a> with them.</li>
<li>Reading and writing sci-fi novels, including <a href="https://conglommora.com/" rel="nofollow">Conglommora</a>, Andy's novels.</li>
<li><a href="https://andyhunt.bandcamp.com/" rel="nofollow">Playing music</a>.</li>
</ul><p>Special Guest: Andy Hunt.</p>]]>
      </content:encoded>
      <pubDate>Thu, 21 Mar 2019 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/69.mp3" length="23476248" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2915</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Andy Hunt and Dave Thomas wrote the seminal software development book, The Pragmatic Programmer. Together they founded The Pragmatic Programmers and are well known as founders of the agile movement and authors of the Agile Manifesto. They founded the Pragmatic Bookshelf publishing business in 2003. </p>

<p>The Pragmatic Bookshelf published it's most important book, in my opinion, in 2017 with the first <a href="https://pragprog.com/book/bopytest/python-testing-with-pytest" rel="nofollow">pytest book</a> available from any publisher.</p>

<p>Topics:</p>

<ul>
<li><a href="https://pragprog.com/book/tpp/the-pragmatic-programmer" rel="nofollow">The Pragmatic Programmer</a>, the book</li>
<li>The <a href="https://agilemanifesto.org/" rel="nofollow">Manifesto for Agile Software Development</a></li>
<li>Agile methodologies and lightweight methods</li>
<li>Some issues with "Agile" as it is now.</li>
<li>The <a href="https://growsmethod.com/" rel="nofollow">GROWS Method</a> </li>
<li><a href="https://pragprog.com/" rel="nofollow">Pragmatic Bookshelf</a>, the publishing company</li>
<li>How Pragmatic Bookshelf is different, and <a href="http://write-for-us.pragprog.com/" rel="nofollow">what it's like to be an author</a> with them.</li>
<li>Reading and writing sci-fi novels, including <a href="https://conglommora.com/" rel="nofollow">Conglommora</a>, Andy's novels.</li>
<li><a href="https://andyhunt.bandcamp.com/" rel="nofollow">Playing music</a>.</li>
</ul><p>Special Guest: Andy Hunt.</p>]]>
      </itunes:summary>
      <itunes:keywords>Pragmatic Programmer, Agile Manifesto, Agile, GROWS</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>68: test &amp;&amp; commit || revert (TCR) - Thomas Deniffel</title>
      <itunes:episode>68</itunes:episode>
      <podcast:episode>68</podcast:episode>
      <itunes:title>68: test &amp;&amp; commit || revert (TCR) - Thomas Deniffel</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">9ce0f59c-0ee1-4c46-9a55-d6ddddfc6dd2</guid>
      <link>https://pythontest.com/testandcode/episodes/68-test-commit-revert-tcr-thomas-deniffel</link>
      <description>
        <![CDATA[<p>With conventional TDD, you write a failing test, get it to pass, then refactor.<br>
Then run the tests again to make sure your refactoring didn't break anything.<br>
But what if it did break something? <br>
Kent Beck has been recommending to commit your code to revision control after every green test run.<br>
Oddmund Strømme suggested a symmetrical idea to go ahead and revert the code when a test fails.<br>
Kent writes that he hated the idea, but had to try it.<br>
Then wrote about it last September.<br>
And now we have TCR, "(test &amp;&amp; commit) || revert".</p>

<p>What's it feel like to actually do this?<br>
Well, Thomas Deniffel has been using it since about a month after that article came out.<br>
In this episode, we'll hear from Thomas about his experience with it.</p>

<p>It's a fascinating idea. Have a listen and let me know what you think.</p><p>Special Guest: Thomas Deniffel.</p><p>Links:</p><ul><li><a href="https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864" title="test &amp;&amp; commit || revert" rel="nofollow">test &amp;&amp; commit || revert</a> — Kent Beck's original article</li><li><a href="https://medium.com/@tdeniffel/tcr-test-commit-revert-a-test-alternative-to-tdd-6e6b03c22bec" title="TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?" rel="nofollow">TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?</a> — Thomas Deniffel's article</li><li><a href="https://medium.com/@tdeniffel/tcr-variants-test-commit-revert-bf6bd84b17d3" title="TCR Variants (test &amp;&amp; commit || revert)" rel="nofollow">TCR Variants (test &amp;&amp; commit || revert)</a></li><li><a href="https://flexport.engineering/tcr-a-pulverizer-for-coding-tasks-f059786451d6" title="TCR: A pulverizer for coding tasks" rel="nofollow">TCR: A pulverizer for coding tasks</a> — Another interesting opinion from someone else trying TCR - Jason Crawford</li><li><a href="https://medium.com/@tdeniffel/test-commit-revert-questions-answered-ddf012a1af97" title="(test &amp;&amp; commit || revert) Questions Answered" rel="nofollow">(test &amp;&amp; commit || revert) Questions Answered</a> — Written after this interview.</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>With conventional TDD, you write a failing test, get it to pass, then refactor.<br>
Then run the tests again to make sure your refactoring didn't break anything.<br>
But what if it did break something? <br>
Kent Beck has been recommending to commit your code to revision control after every green test run.<br>
Oddmund Strømme suggested a symmetrical idea to go ahead and revert the code when a test fails.<br>
Kent writes that he hated the idea, but had to try it.<br>
Then wrote about it last September.<br>
And now we have TCR, "(test &amp;&amp; commit) || revert".</p>

<p>What's it feel like to actually do this?<br>
Well, Thomas Deniffel has been using it since about a month after that article came out.<br>
In this episode, we'll hear from Thomas about his experience with it.</p>

<p>It's a fascinating idea. Have a listen and let me know what you think.</p><p>Special Guest: Thomas Deniffel.</p><p>Links:</p><ul><li><a href="https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864" title="test &amp;&amp; commit || revert" rel="nofollow">test &amp;&amp; commit || revert</a> — Kent Beck's original article</li><li><a href="https://medium.com/@tdeniffel/tcr-test-commit-revert-a-test-alternative-to-tdd-6e6b03c22bec" title="TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?" rel="nofollow">TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?</a> — Thomas Deniffel's article</li><li><a href="https://medium.com/@tdeniffel/tcr-variants-test-commit-revert-bf6bd84b17d3" title="TCR Variants (test &amp;&amp; commit || revert)" rel="nofollow">TCR Variants (test &amp;&amp; commit || revert)</a></li><li><a href="https://flexport.engineering/tcr-a-pulverizer-for-coding-tasks-f059786451d6" title="TCR: A pulverizer for coding tasks" rel="nofollow">TCR: A pulverizer for coding tasks</a> — Another interesting opinion from someone else trying TCR - Jason Crawford</li><li><a href="https://medium.com/@tdeniffel/test-commit-revert-questions-answered-ddf012a1af97" title="(test &amp;&amp; commit || revert) Questions Answered" rel="nofollow">(test &amp;&amp; commit || revert) Questions Answered</a> — Written after this interview.</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 12 Mar 2019 21:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/68.mp3" length="18592136" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2304</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>With conventional TDD, you write a failing test, get it to pass, then refactor.<br>
Then run the tests again to make sure your refactoring didn't break anything.<br>
But what if it did break something? <br>
Kent Beck has been recommending to commit your code to revision control after every green test run.<br>
Oddmund Strømme suggested a symmetrical idea to go ahead and revert the code when a test fails.<br>
Kent writes that he hated the idea, but had to try it.<br>
Then wrote about it last September.<br>
And now we have TCR, "(test &amp;&amp; commit) || revert".</p>

<p>What's it feel like to actually do this?<br>
Well, Thomas Deniffel has been using it since about a month after that article came out.<br>
In this episode, we'll hear from Thomas about his experience with it.</p>

<p>It's a fascinating idea. Have a listen and let me know what you think.</p><p>Special Guest: Thomas Deniffel.</p><p>Links:</p><ul><li><a href="https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864" title="test &amp;&amp; commit || revert" rel="nofollow">test &amp;&amp; commit || revert</a> — Kent Beck's original article</li><li><a href="https://medium.com/@tdeniffel/tcr-test-commit-revert-a-test-alternative-to-tdd-6e6b03c22bec" title="TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?" rel="nofollow">TCR: (test &amp;&amp; commit || revert). How to use? Alternative to TDD?</a> — Thomas Deniffel's article</li><li><a href="https://medium.com/@tdeniffel/tcr-variants-test-commit-revert-bf6bd84b17d3" title="TCR Variants (test &amp;&amp; commit || revert)" rel="nofollow">TCR Variants (test &amp;&amp; commit || revert)</a></li><li><a href="https://flexport.engineering/tcr-a-pulverizer-for-coding-tasks-f059786451d6" title="TCR: A pulverizer for coding tasks" rel="nofollow">TCR: A pulverizer for coding tasks</a> — Another interesting opinion from someone else trying TCR - Jason Crawford</li><li><a href="https://medium.com/@tdeniffel/test-commit-revert-questions-answered-ddf012a1af97" title="(test &amp;&amp; commit || revert) Questions Answered" rel="nofollow">(test &amp;&amp; commit || revert) Questions Answered</a> — Written after this interview.</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>TDD, TCR, software testing, software development, unit tests</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>67: Teaching Python in Middle School</title>
      <itunes:episode>67</itunes:episode>
      <podcast:episode>67</podcast:episode>
      <itunes:title>67: Teaching Python in Middle School</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7321f362-6256-43af-8638-60c6da0613d0</guid>
      <link>https://pythontest.com/testandcode/episodes/67-teaching-python-in-middle-school</link>
      <description>
        <![CDATA[<p>In today's episode we talk with Kelly Paredes &amp; Sean Tibor. <br>
They teach Python in a middle school in Florida, and talk about this experience on the podcast "Teaching Python".</p>

<p>I love that they include physical computing right from the start, and everything else they are doing.</p>

<p>It's a fun interview.</p><p>Special Guests: Kelly Paredes and Sean Tibor.</p><p>Links:</p><ul><li><a href="https://www.teachingpython.fm/" title="Teaching Python" rel="nofollow">Teaching Python</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In today's episode we talk with Kelly Paredes &amp; Sean Tibor. <br>
They teach Python in a middle school in Florida, and talk about this experience on the podcast "Teaching Python".</p>

<p>I love that they include physical computing right from the start, and everything else they are doing.</p>

<p>It's a fun interview.</p><p>Special Guests: Kelly Paredes and Sean Tibor.</p><p>Links:</p><ul><li><a href="https://www.teachingpython.fm/" title="Teaching Python" rel="nofollow">Teaching Python</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 28 Feb 2019 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/67.mp3" length="16941528" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2098</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In today's episode we talk with Kelly Paredes &amp; Sean Tibor. <br>
They teach Python in a middle school in Florida, and talk about this experience on the podcast "Teaching Python".</p>

<p>I love that they include physical computing right from the start, and everything else they are doing.</p>

<p>It's a fun interview.</p><p>Special Guests: Kelly Paredes and Sean Tibor.</p><p>Links:</p><ul><li><a href="https://www.teachingpython.fm/" title="Teaching Python" rel="nofollow">Teaching Python</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, teaching, physical computing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>66: Brian is interviewed by Phil Burgess</title>
      <itunes:episode>66</itunes:episode>
      <podcast:episode>66</podcast:episode>
      <itunes:title>66: Brian is interviewed by Phil Burgess</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e557d6c3-d08b-47b9-8a7d-0ae84df62dc5</guid>
      <link>https://pythontest.com/testandcode/episodes/66-brian-is-interviewed-by-phil-burgess</link>
      <description>
        <![CDATA[<p>I was recently interviewed on a podcast called "IT Career Energizer Podcast".<br>
Phil Burgess is the host of the podcast, and it was a lot of fun.</p>

<p>I think it turned out well, and I wanted to share it with you here, with Phil's permission, of course.</p><p>Special Guest: Phil Burgess.</p><p>Links:</p><ul><li><a href="https://itcareerenergizer.com/" title="IT Career Energizer Podcast" rel="nofollow">IT Career Energizer Podcast</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I was recently interviewed on a podcast called "IT Career Energizer Podcast".<br>
Phil Burgess is the host of the podcast, and it was a lot of fun.</p>

<p>I think it turned out well, and I wanted to share it with you here, with Phil's permission, of course.</p><p>Special Guest: Phil Burgess.</p><p>Links:</p><ul><li><a href="https://itcareerenergizer.com/" title="IT Career Energizer Podcast" rel="nofollow">IT Career Energizer Podcast</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 26 Feb 2019 14:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/66.mp3" length="9010820" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1107</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I was recently interviewed on a podcast called "IT Career Energizer Podcast".<br>
Phil Burgess is the host of the podcast, and it was a lot of fun.</p>

<p>I think it turned out well, and I wanted to share it with you here, with Phil's permission, of course.</p><p>Special Guest: Phil Burgess.</p><p>Links:</p><ul><li><a href="https://itcareerenergizer.com/" title="IT Career Energizer Podcast" rel="nofollow">IT Career Energizer Podcast</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>65: one assert per test</title>
      <itunes:episode>65</itunes:episode>
      <podcast:episode>65</podcast:episode>
      <itunes:title>65: one assert per test</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">316cf4bc-1dd6-413b-ab7d-52984b824ad0</guid>
      <link>https://pythontest.com/testandcode/episodes/65-one-assert-per-test</link>
      <description>
        <![CDATA[<p>Is it ok to have more than one assert statement in a test? <br>
I've seen articles that say no, you should never have more than one assert.<br>
I've also seen some test code made almost unreadable due to trying to avoid more than one assert per test.</p>

<p>Where did this recommendation even come from? What are the reasons? <br>
What are the downsides to both perspectives?</p>

<p>That's what we're going to talk about today.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1095222007203950592" title="Twitter survey about multiple asserts/checks" rel="nofollow">Twitter survey about multiple asserts/checks</a> — Are multiple asserts/checks ok in an automated test?</li><li><a href="https://www.industriallogic.com/blog/multiple-asserts-are-ok/" title="Multiple Asserts Are OK - Bill Wake" rel="nofollow">Multiple Asserts Are OK - Bill Wake</a></li><li><a href="https://github.com/okken/pytest-check" title="pytest-check: A pytest plugin that allows multiple failures per test." rel="nofollow">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Is it ok to have more than one assert statement in a test? <br>
I've seen articles that say no, you should never have more than one assert.<br>
I've also seen some test code made almost unreadable due to trying to avoid more than one assert per test.</p>

<p>Where did this recommendation even come from? What are the reasons? <br>
What are the downsides to both perspectives?</p>

<p>That's what we're going to talk about today.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1095222007203950592" title="Twitter survey about multiple asserts/checks" rel="nofollow">Twitter survey about multiple asserts/checks</a> — Are multiple asserts/checks ok in an automated test?</li><li><a href="https://www.industriallogic.com/blog/multiple-asserts-are-ok/" title="Multiple Asserts Are OK - Bill Wake" rel="nofollow">Multiple Asserts Are OK - Bill Wake</a></li><li><a href="https://github.com/okken/pytest-check" title="pytest-check: A pytest plugin that allows multiple failures per test." rel="nofollow">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 17 Feb 2019 14:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/65.mp3" length="9700077" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1193</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Is it ok to have more than one assert statement in a test? <br>
I've seen articles that say no, you should never have more than one assert.<br>
I've also seen some test code made almost unreadable due to trying to avoid more than one assert per test.</p>

<p>Where did this recommendation even come from? What are the reasons? <br>
What are the downsides to both perspectives?</p>

<p>That's what we're going to talk about today.</p><p>Links:</p><ul><li><a href="https://twitter.com/brianokken/status/1095222007203950592" title="Twitter survey about multiple asserts/checks" rel="nofollow">Twitter survey about multiple asserts/checks</a> — Are multiple asserts/checks ok in an automated test?</li><li><a href="https://www.industriallogic.com/blog/multiple-asserts-are-ok/" title="Multiple Asserts Are OK - Bill Wake" rel="nofollow">Multiple Asserts Are OK - Bill Wake</a></li><li><a href="https://github.com/okken/pytest-check" title="pytest-check: A pytest plugin that allows multiple failures per test." rel="nofollow">pytest-check: A pytest plugin that allows multiple failures per test.</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>assert, software testing, automated testing, test structure, pytest, unittest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>64: Practicing Programming to increase your value</title>
      <itunes:episode>64</itunes:episode>
      <podcast:episode>64</podcast:episode>
      <itunes:title>64: Practicing Programming to increase your value</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">52570c9e-7c55-4432-bb27-28135b5e7ccf</guid>
      <link>https://pythontest.com/testandcode/episodes/64-practicing-programming-to-increase-your-value</link>
      <description>
        <![CDATA[<p>I want you to get the most out of being a software developer, or test engineer, or whatever you do that makes this podcast relevant to your life.</p>

<p>By "get the most" I mean:</p>

<ul>
<li>the most fun</li>
<li>the most value</li>
<li>more career options</li>
<li>probably more responsibility</li>
<li>maybe even more money, that'd be cool</li>
</ul>

<p>I want you to start (or continue) studying and practicing your skills.</p>

<p>But not just random practice, I've got a strategy to help you focus what to study.</p>

<p>Why am I talking about this now? Here's some <a href="https://pythontest.com/testandcode/pybites" rel="nofollow">background on how I re-learned how to have fun with code refactoring</a> through code challenges.</p>

<p>I'm going to write up the whole list as a blog post, which I'll share first with my <a href="https://www.patreon.com/testpodcast" rel="nofollow">Patreon Supporters</a>, second with my <a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54" rel="nofollow">email list</a> and <a href="http://pythontesting.net/slack/" rel="nofollow">slack channel</a> and then as an actual post somewhere.</p><p>Links:</p><ul><li><a href="https://sites.google.com/site/steveyegge2/practicing-programming" title="practicing-programming - Steve Yegge" rel="nofollow">practicing-programming - Steve Yegge</a> — essay</li><li><a href="https://blog.codinghorror.com/the-ultimate-code-kata/" title="The Ultimate Code Kata - Jeff Atwood" rel="nofollow">The Ultimate Code Kata - Jeff Atwood</a></li><li><a href="http://www.norvig.com/21-days.html" title="Teach Yourself Programming in Ten Years - Peter Norvig" rel="nofollow">Teach Yourself Programming in Ten Years - Peter Norvig</a></li><li><a href="https://codechalleng.es/via/testandcode" title="PyBites Code Challenges" rel="nofollow">PyBites Code Challenges</a> — Hone your Python Skills, in the browser</li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a> — JavaScript &amp; Python challenges</li><li><a href="https://exercism.io/" title="Exercism" rel="nofollow">Exercism</a> — code practice</li><li><a href="https://www.codewars.com/" title="Codewars" rel="nofollow">Codewars</a> — Train with Programming Challenges/Kata </li><li><a href="https://www.pythonmorsels.com/" title="Python Morsels " rel="nofollow">Python Morsels </a> — Challenges emailed to you once a week</li><li><a href="https://www.reddit.com/r/dailyprogrammer/" title="subreddit of code challenges" rel="nofollow">subreddit of code challenges</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I want you to get the most out of being a software developer, or test engineer, or whatever you do that makes this podcast relevant to your life.</p>

<p>By "get the most" I mean:</p>

<ul>
<li>the most fun</li>
<li>the most value</li>
<li>more career options</li>
<li>probably more responsibility</li>
<li>maybe even more money, that'd be cool</li>
</ul>

<p>I want you to start (or continue) studying and practicing your skills.</p>

<p>But not just random practice, I've got a strategy to help you focus what to study.</p>

<p>Why am I talking about this now? Here's some <a href="https://pythontest.com/testandcode/pybites" rel="nofollow">background on how I re-learned how to have fun with code refactoring</a> through code challenges.</p>

<p>I'm going to write up the whole list as a blog post, which I'll share first with my <a href="https://www.patreon.com/testpodcast" rel="nofollow">Patreon Supporters</a>, second with my <a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54" rel="nofollow">email list</a> and <a href="http://pythontesting.net/slack/" rel="nofollow">slack channel</a> and then as an actual post somewhere.</p><p>Links:</p><ul><li><a href="https://sites.google.com/site/steveyegge2/practicing-programming" title="practicing-programming - Steve Yegge" rel="nofollow">practicing-programming - Steve Yegge</a> — essay</li><li><a href="https://blog.codinghorror.com/the-ultimate-code-kata/" title="The Ultimate Code Kata - Jeff Atwood" rel="nofollow">The Ultimate Code Kata - Jeff Atwood</a></li><li><a href="http://www.norvig.com/21-days.html" title="Teach Yourself Programming in Ten Years - Peter Norvig" rel="nofollow">Teach Yourself Programming in Ten Years - Peter Norvig</a></li><li><a href="https://codechalleng.es/via/testandcode" title="PyBites Code Challenges" rel="nofollow">PyBites Code Challenges</a> — Hone your Python Skills, in the browser</li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a> — JavaScript &amp; Python challenges</li><li><a href="https://exercism.io/" title="Exercism" rel="nofollow">Exercism</a> — code practice</li><li><a href="https://www.codewars.com/" title="Codewars" rel="nofollow">Codewars</a> — Train with Programming Challenges/Kata </li><li><a href="https://www.pythonmorsels.com/" title="Python Morsels " rel="nofollow">Python Morsels </a> — Challenges emailed to you once a week</li><li><a href="https://www.reddit.com/r/dailyprogrammer/" title="subreddit of code challenges" rel="nofollow">subreddit of code challenges</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 07 Feb 2019 10:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/64.mp3" length="10533277" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1297</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I want you to get the most out of being a software developer, or test engineer, or whatever you do that makes this podcast relevant to your life.</p>

<p>By "get the most" I mean:</p>

<ul>
<li>the most fun</li>
<li>the most value</li>
<li>more career options</li>
<li>probably more responsibility</li>
<li>maybe even more money, that'd be cool</li>
</ul>

<p>I want you to start (or continue) studying and practicing your skills.</p>

<p>But not just random practice, I've got a strategy to help you focus what to study.</p>

<p>Why am I talking about this now? Here's some <a href="https://pythontest.com/testandcode/pybites" rel="nofollow">background on how I re-learned how to have fun with code refactoring</a> through code challenges.</p>

<p>I'm going to write up the whole list as a blog post, which I'll share first with my <a href="https://www.patreon.com/testpodcast" rel="nofollow">Patreon Supporters</a>, second with my <a href="https://us5.list-manage.com/subscribe?u=1f123c581ab0df2737f3174b9&amp;id=9db722df54" rel="nofollow">email list</a> and <a href="http://pythontesting.net/slack/" rel="nofollow">slack channel</a> and then as an actual post somewhere.</p><p>Links:</p><ul><li><a href="https://sites.google.com/site/steveyegge2/practicing-programming" title="practicing-programming - Steve Yegge" rel="nofollow">practicing-programming - Steve Yegge</a> — essay</li><li><a href="https://blog.codinghorror.com/the-ultimate-code-kata/" title="The Ultimate Code Kata - Jeff Atwood" rel="nofollow">The Ultimate Code Kata - Jeff Atwood</a></li><li><a href="http://www.norvig.com/21-days.html" title="Teach Yourself Programming in Ten Years - Peter Norvig" rel="nofollow">Teach Yourself Programming in Ten Years - Peter Norvig</a></li><li><a href="https://codechalleng.es/via/testandcode" title="PyBites Code Challenges" rel="nofollow">PyBites Code Challenges</a> — Hone your Python Skills, in the browser</li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a> — JavaScript &amp; Python challenges</li><li><a href="https://exercism.io/" title="Exercism" rel="nofollow">Exercism</a> — code practice</li><li><a href="https://www.codewars.com/" title="Codewars" rel="nofollow">Codewars</a> — Train with Programming Challenges/Kata </li><li><a href="https://www.pythonmorsels.com/" title="Python Morsels " rel="nofollow">Python Morsels </a> — Challenges emailed to you once a week</li><li><a href="https://www.reddit.com/r/dailyprogrammer/" title="subreddit of code challenges" rel="nofollow">subreddit of code challenges</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>programming, practice, code challenges, code kata, learning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>63: Python Corporate Training - Matt Harrison</title>
      <itunes:episode>63</itunes:episode>
      <podcast:episode>63</podcast:episode>
      <itunes:title>63: Python Corporate Training - Matt Harrison</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">234931ac-4fab-4347-8eeb-1bfb29de7857</guid>
      <link>https://pythontest.com/testandcode/episodes/63-python-corporate-training-matt-harrison</link>
      <description>
        <![CDATA[
<p><em>I hear and I forget.</em><br>
<em>I see and I remember.</em><br>
<em>I do and I understand.</em><br>
<em>-- Confucius</em></p>


<p>Matt Harrison is an author and instructor of Python and Data Science. This episode focuses on his training company, MetaSnake, and corporate training.</p>

<p>Matt's written several books on Python, mostly self published. So of course we talk about that.</p>

<p>But the bulk of the conversation is about corporate training, with Brian playing the role of someone considering starting a corporate training role, and asking Matt, an experienced expert in training, how to start and where to go from there.</p>

<p>I think you'll learn a lot from this.</p><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://www.metasnake.com/" title="MetaSnake" rel="nofollow">MetaSnake</a> — Python Consultant and Training</li><li><a href="https://amzn.to/2WuvCQZ" title="Illustrated Guide to Python 3" rel="nofollow">Illustrated Guide to Python 3</a> — A Complete Walkthrough of Beginning Python with Unique Illustrations Showing how Python Really Works</li><li><a href="https://amzn.to/2WvoDag" title="Learning the Pandas Library" rel="nofollow">Learning the Pandas Library</a> — Python Tools for Data Munging, Analysis, and Visualization</li><li><a href="https://amzn.to/2S2scpG" title="Beginning Python Programming" rel="nofollow">Beginning Python Programming</a> — Learn Python in 7 Days</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[
<p><em>I hear and I forget.</em><br>
<em>I see and I remember.</em><br>
<em>I do and I understand.</em><br>
<em>-- Confucius</em></p>


<p>Matt Harrison is an author and instructor of Python and Data Science. This episode focuses on his training company, MetaSnake, and corporate training.</p>

<p>Matt's written several books on Python, mostly self published. So of course we talk about that.</p>

<p>But the bulk of the conversation is about corporate training, with Brian playing the role of someone considering starting a corporate training role, and asking Matt, an experienced expert in training, how to start and where to go from there.</p>

<p>I think you'll learn a lot from this.</p><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://www.metasnake.com/" title="MetaSnake" rel="nofollow">MetaSnake</a> — Python Consultant and Training</li><li><a href="https://amzn.to/2WuvCQZ" title="Illustrated Guide to Python 3" rel="nofollow">Illustrated Guide to Python 3</a> — A Complete Walkthrough of Beginning Python with Unique Illustrations Showing how Python Really Works</li><li><a href="https://amzn.to/2WvoDag" title="Learning the Pandas Library" rel="nofollow">Learning the Pandas Library</a> — Python Tools for Data Munging, Analysis, and Visualization</li><li><a href="https://amzn.to/2S2scpG" title="Beginning Python Programming" rel="nofollow">Beginning Python Programming</a> — Learn Python in 7 Days</li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 31 Jan 2019 21:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/63.mp3" length="16281268" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2015</itunes:duration>
      <itunes:summary>
        <![CDATA[
<p><em>I hear and I forget.</em><br>
<em>I see and I remember.</em><br>
<em>I do and I understand.</em><br>
<em>-- Confucius</em></p>


<p>Matt Harrison is an author and instructor of Python and Data Science. This episode focuses on his training company, MetaSnake, and corporate training.</p>

<p>Matt's written several books on Python, mostly self published. So of course we talk about that.</p>

<p>But the bulk of the conversation is about corporate training, with Brian playing the role of someone considering starting a corporate training role, and asking Matt, an experienced expert in training, how to start and where to go from there.</p>

<p>I think you'll learn a lot from this.</p><p>Special Guest: Matt Harrison.</p><p>Links:</p><ul><li><a href="https://www.metasnake.com/" title="MetaSnake" rel="nofollow">MetaSnake</a> — Python Consultant and Training</li><li><a href="https://amzn.to/2WuvCQZ" title="Illustrated Guide to Python 3" rel="nofollow">Illustrated Guide to Python 3</a> — A Complete Walkthrough of Beginning Python with Unique Illustrations Showing how Python Really Works</li><li><a href="https://amzn.to/2WvoDag" title="Learning the Pandas Library" rel="nofollow">Learning the Pandas Library</a> — Python Tools for Data Munging, Analysis, and Visualization</li><li><a href="https://amzn.to/2S2scpG" title="Beginning Python Programming" rel="nofollow">Beginning Python Programming</a> — Learn Python in 7 Days</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python, corporate training, data science, machine learning</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>62: Python Training - Reuven Lerner</title>
      <itunes:episode>62</itunes:episode>
      <podcast:episode>62</podcast:episode>
      <itunes:title>62: Python Training - Reuven Lerner</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d3c6dab7-c571-4d8d-b912-1e340f555bdf</guid>
      <link>https://pythontest.com/testandcode/episodes/62-python-training-reuven-lerner</link>
      <description>
        <![CDATA[<p>There are a lot of learning styles and a lot of ways to learn Python. If you started Python through a class at work, or through an online course, or maybe an email series, it's possibly you may have learned from Reuven Lerner.</p>

<p>If your first encounter with pytest was reading an article in Linux Journal recently, that would be the writing of Reuven. </p>

<p>Reuven Lerner teaches Python.</p>

<p>This interview definitely falls into the category of talking with interesting people doing interesting things with Python.</p>

<p>We talk about how incorporating testing into teaching can add a level of clarity to the interaction and help people duirng the learning process.</p>

<p>I'm also fascinated by people who teach and train because it's a skill I'm trying to improve.</p><p>Special Guest: Reuven Lerner.</p><p>Links:</p><ul><li><a href="https://lerner.co.il/" title="Reuven's site" rel="nofollow">Reuven's site</a></li><li><a href="http://blog.lerner.co.il/" title="Reuven's blog" rel="nofollow">Reuven's blog</a></li><li><a href="https://store.lerner.co.il/" title="Reuven's online store" rel="nofollow">Reuven's online store</a></li><li><a href="https://lerner.co.il/newsletter/" title="Reuven's newsletter" rel="nofollow">Reuven's newsletter</a></li><li><a href="https://lerner.co.il/trainer-weekly/" title="newsletter for trainers" rel="nofollow">newsletter for trainers</a></li><li><a href="https://store.lerner.co.il/weekly-python-exercise-for-newbies-jan-2019-cohort?coupon=TESTANDCODE" title="Weekly Python Exercise: Newbie edition" rel="nofollow">Weekly Python Exercise: Newbie edition</a> — a 10% discount code for Test &amp; Code listeners for the late January cohort.</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>There are a lot of learning styles and a lot of ways to learn Python. If you started Python through a class at work, or through an online course, or maybe an email series, it's possibly you may have learned from Reuven Lerner.</p>

<p>If your first encounter with pytest was reading an article in Linux Journal recently, that would be the writing of Reuven. </p>

<p>Reuven Lerner teaches Python.</p>

<p>This interview definitely falls into the category of talking with interesting people doing interesting things with Python.</p>

<p>We talk about how incorporating testing into teaching can add a level of clarity to the interaction and help people duirng the learning process.</p>

<p>I'm also fascinated by people who teach and train because it's a skill I'm trying to improve.</p><p>Special Guest: Reuven Lerner.</p><p>Links:</p><ul><li><a href="https://lerner.co.il/" title="Reuven's site" rel="nofollow">Reuven's site</a></li><li><a href="http://blog.lerner.co.il/" title="Reuven's blog" rel="nofollow">Reuven's blog</a></li><li><a href="https://store.lerner.co.il/" title="Reuven's online store" rel="nofollow">Reuven's online store</a></li><li><a href="https://lerner.co.il/newsletter/" title="Reuven's newsletter" rel="nofollow">Reuven's newsletter</a></li><li><a href="https://lerner.co.il/trainer-weekly/" title="newsletter for trainers" rel="nofollow">newsletter for trainers</a></li><li><a href="https://store.lerner.co.il/weekly-python-exercise-for-newbies-jan-2019-cohort?coupon=TESTANDCODE" title="Weekly Python Exercise: Newbie edition" rel="nofollow">Weekly Python Exercise: Newbie edition</a> — a 10% discount code for Test &amp; Code listeners for the late January cohort.</li></ul>]]>
      </content:encoded>
      <pubDate>Sat, 12 Jan 2019 17:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/62.mp3" length="27420769" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1704</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>There are a lot of learning styles and a lot of ways to learn Python. If you started Python through a class at work, or through an online course, or maybe an email series, it's possibly you may have learned from Reuven Lerner.</p>

<p>If your first encounter with pytest was reading an article in Linux Journal recently, that would be the writing of Reuven. </p>

<p>Reuven Lerner teaches Python.</p>

<p>This interview definitely falls into the category of talking with interesting people doing interesting things with Python.</p>

<p>We talk about how incorporating testing into teaching can add a level of clarity to the interaction and help people duirng the learning process.</p>

<p>I'm also fascinated by people who teach and train because it's a skill I'm trying to improve.</p><p>Special Guest: Reuven Lerner.</p><p>Links:</p><ul><li><a href="https://lerner.co.il/" title="Reuven's site" rel="nofollow">Reuven's site</a></li><li><a href="http://blog.lerner.co.il/" title="Reuven's blog" rel="nofollow">Reuven's blog</a></li><li><a href="https://store.lerner.co.il/" title="Reuven's online store" rel="nofollow">Reuven's online store</a></li><li><a href="https://lerner.co.il/newsletter/" title="Reuven's newsletter" rel="nofollow">Reuven's newsletter</a></li><li><a href="https://lerner.co.il/trainer-weekly/" title="newsletter for trainers" rel="nofollow">newsletter for trainers</a></li><li><a href="https://store.lerner.co.il/weekly-python-exercise-for-newbies-jan-2019-cohort?coupon=TESTANDCODE" title="Weekly Python Exercise: Newbie edition" rel="nofollow">Weekly Python Exercise: Newbie edition</a> — a 10% discount code for Test &amp; Code listeners for the late January cohort.</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>training, teaching, Python, testing, exercises</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>A retrospective</title>
      <itunes:episode>61</itunes:episode>
      <podcast:episode>61</podcast:episode>
      <itunes:title>A retrospective</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c389e2bf-f256-4e2e-a27c-a56eb4704cb2</guid>
      <link>https://pythontest.com/testandcode/episodes/a-retrospective</link>
      <description>
        <![CDATA[<p>A look back on 3 years of podcasting, and a bit of a look forward to what to expect in 2019.</p>

<p>Top 5 episodes:</p>

<ol>
<li><a href="https://pythontest.com/testandcode/2" rel="nofollow">2: Pytest vs Unittest vs Nose</a></li>
<li><a href="https://pythontest.com/testandcode/33" rel="nofollow">33: Katharine Jarmul - Testing in Data Science</a></li>
<li><a href="https://pythontest.com/testandcode/18" rel="nofollow">18: Testing in Startups and Hiring Software Engineers with Joe Stump</a></li>
<li><a href="https://pythontest.com/testandcode45" rel="nofollow">45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA</a></li>
<li><a href="https://pythontest.com/testandcode/27" rel="nofollow">27: Mahmoud Hashemi : unit, integration, and system testing</a></li>
</ol>

<p>Honorable mention: <a href="https://pythontest.com/testandcode/32" rel="nofollow">32: David Hussman - Agile vs Agility, Dude's Law, and more</a></p>

<p>This episode also went through lots of:</p>

<ul>
<li>what went well</li>
<li>what was lacking</li>
<li>what's next</li>
</ul>

<p>Please listen and let me know where I should take this podcast.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A look back on 3 years of podcasting, and a bit of a look forward to what to expect in 2019.</p>

<p>Top 5 episodes:</p>

<ol>
<li><a href="https://pythontest.com/testandcode/2" rel="nofollow">2: Pytest vs Unittest vs Nose</a></li>
<li><a href="https://pythontest.com/testandcode/33" rel="nofollow">33: Katharine Jarmul - Testing in Data Science</a></li>
<li><a href="https://pythontest.com/testandcode/18" rel="nofollow">18: Testing in Startups and Hiring Software Engineers with Joe Stump</a></li>
<li><a href="https://pythontest.com/testandcode45" rel="nofollow">45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA</a></li>
<li><a href="https://pythontest.com/testandcode/27" rel="nofollow">27: Mahmoud Hashemi : unit, integration, and system testing</a></li>
</ol>

<p>Honorable mention: <a href="https://pythontest.com/testandcode/32" rel="nofollow">32: David Hussman - Agile vs Agility, Dude's Law, and more</a></p>

<p>This episode also went through lots of:</p>

<ul>
<li>what went well</li>
<li>what was lacking</li>
<li>what's next</li>
</ul>

<p>Please listen and let me know where I should take this podcast.</p>]]>
      </content:encoded>
      <pubDate>Mon, 31 Dec 2018 02:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/61.mp3" length="15135668" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1872</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A look back on 3 years of podcasting, and a bit of a look forward to what to expect in 2019.</p>

<p>Top 5 episodes:</p>

<ol>
<li><a href="https://pythontest.com/testandcode/2" rel="nofollow">2: Pytest vs Unittest vs Nose</a></li>
<li><a href="https://pythontest.com/testandcode/33" rel="nofollow">33: Katharine Jarmul - Testing in Data Science</a></li>
<li><a href="https://pythontest.com/testandcode/18" rel="nofollow">18: Testing in Startups and Hiring Software Engineers with Joe Stump</a></li>
<li><a href="https://pythontest.com/testandcode45" rel="nofollow">45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA</a></li>
<li><a href="https://pythontest.com/testandcode/27" rel="nofollow">27: Mahmoud Hashemi : unit, integration, and system testing</a></li>
</ol>

<p>Honorable mention: <a href="https://pythontest.com/testandcode/32" rel="nofollow">32: David Hussman - Agile vs Agility, Dude's Law, and more</a></p>

<p>This episode also went through lots of:</p>

<ul>
<li>what went well</li>
<li>what was lacking</li>
<li>what's next</li>
</ul>

<p>Please listen and let me know where I should take this podcast.</p>]]>
      </itunes:summary>
      <itunes:keywords>retrospective</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>100 Days of Code - Julian Sequeira</title>
      <itunes:episode>60</itunes:episode>
      <podcast:episode>60</podcast:episode>
      <itunes:title>100 Days of Code - Julian Sequeira</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">85fc086c-2bc8-4d70-a798-03c55adc9707</guid>
      <link>https://pythontest.com/testandcode/episodes/100-days-of-code-julian-sequeira</link>
      <description>
        <![CDATA[<p>Julian Sequeira is Co-Founder of PyBit.es (a blog/platform created to teach and learn Python) and a Python Trainer at Talk Python Training.<br>
He's also a survivor of the 100DaysOfCode in Python Challenge.</p>

<p>We talk about the 100 days challenge, about learning Python, and about how cool it is to learn within a community.</p><p>Special Guest: Julian Sequeira.</p><p>Links:</p><ul><li><a href="https://pybit.es" title="PyBites Blog" rel="nofollow">PyBites Blog</a></li><li><a href="https://codechalleng.es" title="PyBites Code Challenges Platform" rel="nofollow">PyBites Code Challenges Platform</a></li><li><a href="https://talkpython.fm/100days?s=pybites" title="TalkPython + PyBites 100 Days of Code in Python Course" rel="nofollow">TalkPython + PyBites 100 Days of Code in Python Course</a></li><li><a href="https://github.com/pybites/100DaysOfCode/blob/master/LOG.md" title="PyBites 100 Days of Code Repo" rel="nofollow">PyBites 100 Days of Code Repo</a></li><li><a href="https://join.slack.com/t/pybites/shared_invite/enQtNDAxODc0MjEyODM2LTNiZjljNTI2NGJiNWI0MTRkNjY4YzQ1ZWU4MmQzNWQyN2Q4ZTQzMTk0NzkyZTRmMThlNmQzYTk5Y2Y5ZDM4NDU" title="Pybit.es Slack Community" rel="nofollow">Pybit.es Slack Community</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Julian Sequeira is Co-Founder of PyBit.es (a blog/platform created to teach and learn Python) and a Python Trainer at Talk Python Training.<br>
He's also a survivor of the 100DaysOfCode in Python Challenge.</p>

<p>We talk about the 100 days challenge, about learning Python, and about how cool it is to learn within a community.</p><p>Special Guest: Julian Sequeira.</p><p>Links:</p><ul><li><a href="https://pybit.es" title="PyBites Blog" rel="nofollow">PyBites Blog</a></li><li><a href="https://codechalleng.es" title="PyBites Code Challenges Platform" rel="nofollow">PyBites Code Challenges Platform</a></li><li><a href="https://talkpython.fm/100days?s=pybites" title="TalkPython + PyBites 100 Days of Code in Python Course" rel="nofollow">TalkPython + PyBites 100 Days of Code in Python Course</a></li><li><a href="https://github.com/pybites/100DaysOfCode/blob/master/LOG.md" title="PyBites 100 Days of Code Repo" rel="nofollow">PyBites 100 Days of Code Repo</a></li><li><a href="https://join.slack.com/t/pybites/shared_invite/enQtNDAxODc0MjEyODM2LTNiZjljNTI2NGJiNWI0MTRkNjY4YzQ1ZWU4MmQzNWQyN2Q4ZTQzMTk0NzkyZTRmMThlNmQzYTk5Y2Y5ZDM4NDU" title="Pybit.es Slack Community" rel="nofollow">Pybit.es Slack Community</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 28 Dec 2018 10:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/60.mp3" length="16747997" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2074</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Julian Sequeira is Co-Founder of PyBit.es (a blog/platform created to teach and learn Python) and a Python Trainer at Talk Python Training.<br>
He's also a survivor of the 100DaysOfCode in Python Challenge.</p>

<p>We talk about the 100 days challenge, about learning Python, and about how cool it is to learn within a community.</p><p>Special Guest: Julian Sequeira.</p><p>Links:</p><ul><li><a href="https://pybit.es" title="PyBites Blog" rel="nofollow">PyBites Blog</a></li><li><a href="https://codechalleng.es" title="PyBites Code Challenges Platform" rel="nofollow">PyBites Code Challenges Platform</a></li><li><a href="https://talkpython.fm/100days?s=pybites" title="TalkPython + PyBites 100 Days of Code in Python Course" rel="nofollow">TalkPython + PyBites 100 Days of Code in Python Course</a></li><li><a href="https://github.com/pybites/100DaysOfCode/blob/master/LOG.md" title="PyBites 100 Days of Code Repo" rel="nofollow">PyBites 100 Days of Code Repo</a></li><li><a href="https://join.slack.com/t/pybites/shared_invite/enQtNDAxODc0MjEyODM2LTNiZjljNTI2NGJiNWI0MTRkNjY4YzQ1ZWU4MmQzNWQyN2Q4ZTQzMTk0NzkyZTRmMThlNmQzYTk5Y2Y5ZDM4NDU" title="Pybit.es Slack Community" rel="nofollow">Pybit.es Slack Community</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>100DaysOfCode, Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>Genesynth, nox, urllib3, &amp; PyCascades - Thea Flowers</title>
      <itunes:episode>59</itunes:episode>
      <podcast:episode>59</podcast:episode>
      <itunes:title>Genesynth, nox, urllib3, &amp; PyCascades - Thea Flowers</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">167dac95-3cc3-4144-bce3-991a9227b2ec</guid>
      <link>https://pythontest.com/testandcode/episodes/genesynth-nox-urllib3-pycascades-thea-flowers</link>
      <description>
        <![CDATA[<p>Thea Flowers is a Pythonista and open source advocate. She helps empower developers of all backgrounds and experience levels using Python and open source software and hardware.</p>

<p>Thea is the creator of Nox, the co-chair of PyCascades 2019, the lead maintainer of urllib3, and a member of the Python Packaging Authority and Packaging Working Group.</p>

<p>Thea works on Google Cloud Platform's wonderful Developer Relations team where she works on API client libraries and community outreach.</p>

<p>All of that is definitely cool enough. But she is also building a synthesiser based on Sega Genesis chips. So of course, that's where we'll start the conversation.</p><p>Special Guest: Thea Flowers.</p><p>Links:</p><ul><li><a href="https://blog.thea.codes/genesynth-part-1-idea-and-research/" title="Genesynth part 1: idea and research" rel="nofollow">Genesynth part 1: idea and research</a></li><li><a href="https://blog.thea.codes/genesynth-part-2-basic-communication/" title="Genesynth part 2: basic communication" rel="nofollow">Genesynth part 2: basic communication</a></li><li><a href="https://blog.thea.codes/genesynth-part-3-proper-audio/" title="Genesynth part 3: proper audio amplification" rel="nofollow">Genesynth part 3: proper audio amplification</a></li><li><a href="https://nox.thea.codes/en/stable/tutorial.html" title="nox" rel="nofollow">nox</a></li><li><a href="https://urllib3.readthedocs.io/en/latest/" title="urllib3" rel="nofollow">urllib3</a></li><li><a href="https://2019.pycascades.com/" title="PyCascades 2019" rel="nofollow">PyCascades 2019</a></li><li><a href="https://thea.codes/" title="thea.codes" rel="nofollow">thea.codes</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Thea Flowers is a Pythonista and open source advocate. She helps empower developers of all backgrounds and experience levels using Python and open source software and hardware.</p>

<p>Thea is the creator of Nox, the co-chair of PyCascades 2019, the lead maintainer of urllib3, and a member of the Python Packaging Authority and Packaging Working Group.</p>

<p>Thea works on Google Cloud Platform's wonderful Developer Relations team where she works on API client libraries and community outreach.</p>

<p>All of that is definitely cool enough. But she is also building a synthesiser based on Sega Genesis chips. So of course, that's where we'll start the conversation.</p><p>Special Guest: Thea Flowers.</p><p>Links:</p><ul><li><a href="https://blog.thea.codes/genesynth-part-1-idea-and-research/" title="Genesynth part 1: idea and research" rel="nofollow">Genesynth part 1: idea and research</a></li><li><a href="https://blog.thea.codes/genesynth-part-2-basic-communication/" title="Genesynth part 2: basic communication" rel="nofollow">Genesynth part 2: basic communication</a></li><li><a href="https://blog.thea.codes/genesynth-part-3-proper-audio/" title="Genesynth part 3: proper audio amplification" rel="nofollow">Genesynth part 3: proper audio amplification</a></li><li><a href="https://nox.thea.codes/en/stable/tutorial.html" title="nox" rel="nofollow">nox</a></li><li><a href="https://urllib3.readthedocs.io/en/latest/" title="urllib3" rel="nofollow">urllib3</a></li><li><a href="https://2019.pycascades.com/" title="PyCascades 2019" rel="nofollow">PyCascades 2019</a></li><li><a href="https://thea.codes/" title="thea.codes" rel="nofollow">thea.codes</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 21 Dec 2018 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/59.mp3" length="15083120" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1866</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Thea Flowers is a Pythonista and open source advocate. She helps empower developers of all backgrounds and experience levels using Python and open source software and hardware.</p>

<p>Thea is the creator of Nox, the co-chair of PyCascades 2019, the lead maintainer of urllib3, and a member of the Python Packaging Authority and Packaging Working Group.</p>

<p>Thea works on Google Cloud Platform's wonderful Developer Relations team where she works on API client libraries and community outreach.</p>

<p>All of that is definitely cool enough. But she is also building a synthesiser based on Sega Genesis chips. So of course, that's where we'll start the conversation.</p><p>Special Guest: Thea Flowers.</p><p>Links:</p><ul><li><a href="https://blog.thea.codes/genesynth-part-1-idea-and-research/" title="Genesynth part 1: idea and research" rel="nofollow">Genesynth part 1: idea and research</a></li><li><a href="https://blog.thea.codes/genesynth-part-2-basic-communication/" title="Genesynth part 2: basic communication" rel="nofollow">Genesynth part 2: basic communication</a></li><li><a href="https://blog.thea.codes/genesynth-part-3-proper-audio/" title="Genesynth part 3: proper audio amplification" rel="nofollow">Genesynth part 3: proper audio amplification</a></li><li><a href="https://nox.thea.codes/en/stable/tutorial.html" title="nox" rel="nofollow">nox</a></li><li><a href="https://urllib3.readthedocs.io/en/latest/" title="urllib3" rel="nofollow">urllib3</a></li><li><a href="https://2019.pycascades.com/" title="PyCascades 2019" rel="nofollow">PyCascades 2019</a></li><li><a href="https://thea.codes/" title="thea.codes" rel="nofollow">thea.codes</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>urllib3, nox, tox, Sega Genesis, PyCascades, hardware hacking</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>REST APIs, testing with Docker containers and pytest</title>
      <itunes:episode>58</itunes:episode>
      <podcast:episode>58</podcast:episode>
      <itunes:title>REST APIs, testing with Docker containers and pytest</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">65ba7b3b-e2d5-4263-ba8e-f70aade41c71</guid>
      <link>https://pythontest.com/testandcode/episodes/rest-apis-testing-with-docker-containers-and-pytest</link>
      <description>
        <![CDATA[<p>Let's say you've got a web application you need to test.<br>
It has a REST API that you want to use for testing.  </p>

<p>Can you use Python for this testing even if the application is written in some other language? Of course.<br>
Can you use pytest? duh. yes. what else?<br>
What if you want to spin up docker instances, get your app running in that, and run your tests against that environment? <br>
How would you use pytest to do that?<br>
Well, there, I'm not exactly sure. But I know someone who does.</p>

<p>Dima Spivak is the Director of Engineering at StreamSets, and he and his team are doing just that.<br>
He's also got some great advice on utilizing code reviews across teams for test code, and a whole lot more.</p><p>Special Guest: Dima Spivak.</p><p>Links:</p><ul><li><a href="https://streamsets.com/blog/introducing-the-streamsets-test-framework/" title="Introducing the StreamSets Test Framework" rel="nofollow">Introducing the StreamSets Test Framework</a></li><li><a href="https://pypi.org/project/pytest-benchmark/" title="pytest-benchmark · PyPI" rel="nofollow">pytest-benchmark · PyPI</a></li><li><a href="https://github.com/streamsets/datacollector-tests" title="StreamSets Test Framework-based tests for StreamSets Data Collector" rel="nofollow">StreamSets Test Framework-based tests for StreamSets Data Collector</a></li><li><a href="https://streamsets.com/" title="StreamSets: Where DevOps Meets Data Integration" rel="nofollow">StreamSets: Where DevOps Meets Data Integration</a></li><li><a href="https://pythontest.com/testandcode/slack" title="slack channel for Test &amp; Code" rel="nofollow">slack channel for Test &amp; Code</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Let's say you've got a web application you need to test.<br>
It has a REST API that you want to use for testing.  </p>

<p>Can you use Python for this testing even if the application is written in some other language? Of course.<br>
Can you use pytest? duh. yes. what else?<br>
What if you want to spin up docker instances, get your app running in that, and run your tests against that environment? <br>
How would you use pytest to do that?<br>
Well, there, I'm not exactly sure. But I know someone who does.</p>

<p>Dima Spivak is the Director of Engineering at StreamSets, and he and his team are doing just that.<br>
He's also got some great advice on utilizing code reviews across teams for test code, and a whole lot more.</p><p>Special Guest: Dima Spivak.</p><p>Links:</p><ul><li><a href="https://streamsets.com/blog/introducing-the-streamsets-test-framework/" title="Introducing the StreamSets Test Framework" rel="nofollow">Introducing the StreamSets Test Framework</a></li><li><a href="https://pypi.org/project/pytest-benchmark/" title="pytest-benchmark · PyPI" rel="nofollow">pytest-benchmark · PyPI</a></li><li><a href="https://github.com/streamsets/datacollector-tests" title="StreamSets Test Framework-based tests for StreamSets Data Collector" rel="nofollow">StreamSets Test Framework-based tests for StreamSets Data Collector</a></li><li><a href="https://streamsets.com/" title="StreamSets: Where DevOps Meets Data Integration" rel="nofollow">StreamSets: Where DevOps Meets Data Integration</a></li><li><a href="https://pythontest.com/testandcode/slack" title="slack channel for Test &amp; Code" rel="nofollow">slack channel for Test &amp; Code</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 14 Dec 2018 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/58.mp3" length="27190836" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1690</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Let's say you've got a web application you need to test.<br>
It has a REST API that you want to use for testing.  </p>

<p>Can you use Python for this testing even if the application is written in some other language? Of course.<br>
Can you use pytest? duh. yes. what else?<br>
What if you want to spin up docker instances, get your app running in that, and run your tests against that environment? <br>
How would you use pytest to do that?<br>
Well, there, I'm not exactly sure. But I know someone who does.</p>

<p>Dima Spivak is the Director of Engineering at StreamSets, and he and his team are doing just that.<br>
He's also got some great advice on utilizing code reviews across teams for test code, and a whole lot more.</p><p>Special Guest: Dima Spivak.</p><p>Links:</p><ul><li><a href="https://streamsets.com/blog/introducing-the-streamsets-test-framework/" title="Introducing the StreamSets Test Framework" rel="nofollow">Introducing the StreamSets Test Framework</a></li><li><a href="https://pypi.org/project/pytest-benchmark/" title="pytest-benchmark · PyPI" rel="nofollow">pytest-benchmark · PyPI</a></li><li><a href="https://github.com/streamsets/datacollector-tests" title="StreamSets Test Framework-based tests for StreamSets Data Collector" rel="nofollow">StreamSets Test Framework-based tests for StreamSets Data Collector</a></li><li><a href="https://streamsets.com/" title="StreamSets: Where DevOps Meets Data Integration" rel="nofollow">StreamSets: Where DevOps Meets Data Integration</a></li><li><a href="https://pythontest.com/testandcode/slack" title="slack channel for Test &amp; Code" rel="nofollow">slack channel for Test &amp; Code</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, REST, API, web, Docker, fixtures</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>What is Data Science? - Vicki Boykis</title>
      <itunes:episode>57</itunes:episode>
      <podcast:episode>57</podcast:episode>
      <itunes:title>What is Data Science? - Vicki Boykis</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">c037ef57-1622-4601-b3f8-8aefdfdc5d5d</guid>
      <link>https://pythontest.com/testandcode/episodes/what-is-data-science-vicki-boykis</link>
      <description>
        <![CDATA[<p>Data science, data engineering, data analysis, and machine learning are part of the recent massive growth of Python. </p>

<p>But really what is data science? </p>

<p>Vicki Boykis helps me understand questions like:</p>

<ul>
<li>No really, what is data science?</li>
<li>What does a data pipeline look like?</li>
<li>What is it like to do data science, data analysis, data engineering?</li>
<li>Can you do analysis on a laptop?</li>
<li>How big does data have to be to be considered big?</li>
<li>What are the challenges in data science?</li>
<li>Does it make sense for software engineers to learn data engineering, data science, pipelines, etc?</li>
<li>How could someone start learning data science?</li>
</ul>

<p>Also covered:</p>

<ul>
<li>A type work (analysis) vs B type work (building)</li>
<li>data lakes and data swamps</li>
<li>predictive models</li>
<li>data cleaning</li>
<li>development vs experimentation</li>
<li>Jupyter Notebooks</li>
<li>Kaggle</li>
<li>ETL pipelines</li>
</ul>

<p>I learned a lot about the broad field of data science from talking with Vicki.</p><p>Special Guest: Vicki Boykis.</p><p>Links:</p><ul><li><a href="https://amzn.to/2Pv9FfS" title="How to Lie with Statistics : Darrell Huff" rel="nofollow">How to Lie with Statistics : Darrell Huff</a></li><li><a href="https://veekaybee.github.io/2017/03/20/hadoop-or-laptop/" title="Should you replace Hadoop with your laptop?" rel="nofollow">Should you replace Hadoop with your laptop?</a></li><li><a href="https://www.kaggle.com/" title="Kaggle" rel="nofollow">Kaggle</a></li><li><a href="https://jupyter.org/" title="Project Jupyter" rel="nofollow">Project Jupyter</a></li><li><a href="https://veekaybee.github.io/soviet-art-bot/" title="Soviet Art Bot" rel="nofollow">Soviet Art Bot</a> — A bot that finds socialist realism paintings and tweets them out</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Data science, data engineering, data analysis, and machine learning are part of the recent massive growth of Python. </p>

<p>But really what is data science? </p>

<p>Vicki Boykis helps me understand questions like:</p>

<ul>
<li>No really, what is data science?</li>
<li>What does a data pipeline look like?</li>
<li>What is it like to do data science, data analysis, data engineering?</li>
<li>Can you do analysis on a laptop?</li>
<li>How big does data have to be to be considered big?</li>
<li>What are the challenges in data science?</li>
<li>Does it make sense for software engineers to learn data engineering, data science, pipelines, etc?</li>
<li>How could someone start learning data science?</li>
</ul>

<p>Also covered:</p>

<ul>
<li>A type work (analysis) vs B type work (building)</li>
<li>data lakes and data swamps</li>
<li>predictive models</li>
<li>data cleaning</li>
<li>development vs experimentation</li>
<li>Jupyter Notebooks</li>
<li>Kaggle</li>
<li>ETL pipelines</li>
</ul>

<p>I learned a lot about the broad field of data science from talking with Vicki.</p><p>Special Guest: Vicki Boykis.</p><p>Links:</p><ul><li><a href="https://amzn.to/2Pv9FfS" title="How to Lie with Statistics : Darrell Huff" rel="nofollow">How to Lie with Statistics : Darrell Huff</a></li><li><a href="https://veekaybee.github.io/2017/03/20/hadoop-or-laptop/" title="Should you replace Hadoop with your laptop?" rel="nofollow">Should you replace Hadoop with your laptop?</a></li><li><a href="https://www.kaggle.com/" title="Kaggle" rel="nofollow">Kaggle</a></li><li><a href="https://jupyter.org/" title="Project Jupyter" rel="nofollow">Project Jupyter</a></li><li><a href="https://veekaybee.github.io/soviet-art-bot/" title="Soviet Art Bot" rel="nofollow">Soviet Art Bot</a> — A bot that finds socialist realism paintings and tweets them out</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 11 Dec 2018 00:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/57.mp3" length="14944257" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1848</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Data science, data engineering, data analysis, and machine learning are part of the recent massive growth of Python. </p>

<p>But really what is data science? </p>

<p>Vicki Boykis helps me understand questions like:</p>

<ul>
<li>No really, what is data science?</li>
<li>What does a data pipeline look like?</li>
<li>What is it like to do data science, data analysis, data engineering?</li>
<li>Can you do analysis on a laptop?</li>
<li>How big does data have to be to be considered big?</li>
<li>What are the challenges in data science?</li>
<li>Does it make sense for software engineers to learn data engineering, data science, pipelines, etc?</li>
<li>How could someone start learning data science?</li>
</ul>

<p>Also covered:</p>

<ul>
<li>A type work (analysis) vs B type work (building)</li>
<li>data lakes and data swamps</li>
<li>predictive models</li>
<li>data cleaning</li>
<li>development vs experimentation</li>
<li>Jupyter Notebooks</li>
<li>Kaggle</li>
<li>ETL pipelines</li>
</ul>

<p>I learned a lot about the broad field of data science from talking with Vicki.</p><p>Special Guest: Vicki Boykis.</p><p>Links:</p><ul><li><a href="https://amzn.to/2Pv9FfS" title="How to Lie with Statistics : Darrell Huff" rel="nofollow">How to Lie with Statistics : Darrell Huff</a></li><li><a href="https://veekaybee.github.io/2017/03/20/hadoop-or-laptop/" title="Should you replace Hadoop with your laptop?" rel="nofollow">Should you replace Hadoop with your laptop?</a></li><li><a href="https://www.kaggle.com/" title="Kaggle" rel="nofollow">Kaggle</a></li><li><a href="https://jupyter.org/" title="Project Jupyter" rel="nofollow">Project Jupyter</a></li><li><a href="https://veekaybee.github.io/soviet-art-bot/" title="Soviet Art Bot" rel="nofollow">Soviet Art Bot</a> — A bot that finds socialist realism paintings and tweets them out</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>data science, data engineering, machine learning, software engineering, data pipelines, ETL</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>Being a Guest on a Podcast - Michael Kennedy</title>
      <itunes:episode>56</itunes:episode>
      <podcast:episode>56</podcast:episode>
      <itunes:title>Being a Guest on a Podcast - Michael Kennedy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">acf912d0-2028-458d-87b6-ccd77a5940ff</guid>
      <link>https://pythontest.com/testandcode/episodes/being-a-guest-on-a-podcast-michael-kennedy</link>
      <description>
        <![CDATA[<p>Michael Kennedy of Talk Python and Python Bytes fame joins Brian to talk about being a great guest and what to expect. </p>

<p>Even if you have never wanted to be on a podcast, you might learn some great tips. A few of the things we talk about will be helpful for other endeavors, like public speaking, guest blog posts, look for unsolicited job opportunities. </p>

<p>Some people have never been on a podcast before, and are possibly freaked out about some of the unknowns of being on a podcast. That's why we did this episode. </p>

<p>Michael and I discuss a bunch of the niggly details so that you can be relaxed and know what to expect.</p>

<p>Topics include:</p>

<ul>
<li>If you want to be on a podcast

<ul>
<li>How to stand out and be someone a podcast would want to have on a show.</li>
<li>How to suggest yourself as a guest and the topic you want to discuss.</li>
<li>Picking a topic for a podcast</li>
</ul></li>
<li>What to do before the show to prepare

<ul>
<li>Helping the host out with some information</li>
<li>Some hardware (not much)</li>
<li>Some software (all free)</li>
<li>Sending info like bio, headshot, links, etc.</li>
<li>What to expect the host or show to do before the recording.</li>
<li>Where to record</li>
<li>Sketching out some show topics with the host, maybe on a shared document.</li>
</ul></li>
<li>What to expect and do

<ul>
<li>Right before the show</li>
<li>During the conversation</li>
<li>After the recording</li>
<li>When it goes live (help promote it)</li>
</ul></li>
</ul><p>Special Guest: Michael Kennedy.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Michael Kennedy of Talk Python and Python Bytes fame joins Brian to talk about being a great guest and what to expect. </p>

<p>Even if you have never wanted to be on a podcast, you might learn some great tips. A few of the things we talk about will be helpful for other endeavors, like public speaking, guest blog posts, look for unsolicited job opportunities. </p>

<p>Some people have never been on a podcast before, and are possibly freaked out about some of the unknowns of being on a podcast. That's why we did this episode. </p>

<p>Michael and I discuss a bunch of the niggly details so that you can be relaxed and know what to expect.</p>

<p>Topics include:</p>

<ul>
<li>If you want to be on a podcast

<ul>
<li>How to stand out and be someone a podcast would want to have on a show.</li>
<li>How to suggest yourself as a guest and the topic you want to discuss.</li>
<li>Picking a topic for a podcast</li>
</ul></li>
<li>What to do before the show to prepare

<ul>
<li>Helping the host out with some information</li>
<li>Some hardware (not much)</li>
<li>Some software (all free)</li>
<li>Sending info like bio, headshot, links, etc.</li>
<li>What to expect the host or show to do before the recording.</li>
<li>Where to record</li>
<li>Sketching out some show topics with the host, maybe on a shared document.</li>
</ul></li>
<li>What to expect and do

<ul>
<li>Right before the show</li>
<li>During the conversation</li>
<li>After the recording</li>
<li>When it goes live (help promote it)</li>
</ul></li>
</ul><p>Special Guest: Michael Kennedy.</p>]]>
      </content:encoded>
      <pubDate>Fri, 07 Dec 2018 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/56.mp3" length="18047652" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2236</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Michael Kennedy of Talk Python and Python Bytes fame joins Brian to talk about being a great guest and what to expect. </p>

<p>Even if you have never wanted to be on a podcast, you might learn some great tips. A few of the things we talk about will be helpful for other endeavors, like public speaking, guest blog posts, look for unsolicited job opportunities. </p>

<p>Some people have never been on a podcast before, and are possibly freaked out about some of the unknowns of being on a podcast. That's why we did this episode. </p>

<p>Michael and I discuss a bunch of the niggly details so that you can be relaxed and know what to expect.</p>

<p>Topics include:</p>

<ul>
<li>If you want to be on a podcast

<ul>
<li>How to stand out and be someone a podcast would want to have on a show.</li>
<li>How to suggest yourself as a guest and the topic you want to discuss.</li>
<li>Picking a topic for a podcast</li>
</ul></li>
<li>What to do before the show to prepare

<ul>
<li>Helping the host out with some information</li>
<li>Some hardware (not much)</li>
<li>Some software (all free)</li>
<li>Sending info like bio, headshot, links, etc.</li>
<li>What to expect the host or show to do before the recording.</li>
<li>Where to record</li>
<li>Sketching out some show topics with the host, maybe on a shared document.</li>
</ul></li>
<li>What to expect and do

<ul>
<li>Right before the show</li>
<li>During the conversation</li>
<li>After the recording</li>
<li>When it goes live (help promote it)</li>
</ul></li>
</ul><p>Special Guest: Michael Kennedy.</p>]]>
      </itunes:summary>
      <itunes:keywords>podcasting, guest</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Kennedy</podcast:person>
    </item>
    <item>
      <title>55: When 100% test coverage just isn't enough - Mahmoud Hashemi</title>
      <itunes:episode>55</itunes:episode>
      <podcast:episode>55</podcast:episode>
      <itunes:title>55: When 100% test coverage just isn't enough - Mahmoud Hashemi</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7a8380bf-341d-405a-92fc-91819198cbab</guid>
      <link>https://pythontest.com/testandcode/episodes/55-when-100-test-coverage-just-isnt-enough-mahmoud-hashemi</link>
      <description>
        <![CDATA[<p>What happens when 100% test code coverage just isn't enough.<br>
In this episode, we talk with Mahmoud Hashemi about glom, a very cool project in itself, but a project that needs more coverage than 100%.<br>
This problem affects lots of projects that use higher level programming constructs, like domain specific languages (DSLs), sub languages mini languages, compilers, and db query languages.</p>

<p>Also covered:</p>

<ul>
<li>awesome Python applications</li>
<li>versioning: 0-ver vs calver vs semver</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p><p>Links:</p><ul><li><a href="https://sedimental.org/" title="Announcing glom" rel="nofollow">Announcing glom</a> — Restructured Data for Python</li><li><a href="https://en.wikipedia.org/wiki/Domain-specific_language" title="Domain-specific language - Wikipedia" rel="nofollow">Domain-specific language - Wikipedia</a></li><li><a href="https://github.com/mahmoud/awesome-python-applications" title="awesome-python-applications" rel="nofollow">awesome-python-applications</a> — Free software that works great, and also happens to be open-source Python.</li><li><a href="http://meldmerge.org/" title="Meld" rel="nofollow">Meld</a> — a visual diff and merge tool targeted at developers.</li><li><a href="https://0ver.org/" title="ZeroVer: 0-based Versioning " rel="nofollow">ZeroVer: 0-based Versioning </a></li><li><a href="https://semver.org/" title="SemVer: Semantic Versioning " rel="nofollow">SemVer: Semantic Versioning </a></li><li><a href="https://calver.org/" title="CalVer: Calendar Versioning" rel="nofollow">CalVer: Calendar Versioning</a></li><li><a href="https://pythontest.com/testandcode/27" title="episode 27: unit, integration, and system testing - Mahmoud Hashemi" rel="nofollow">episode 27: unit, integration, and system testing - Mahmoud Hashemi</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What happens when 100% test code coverage just isn't enough.<br>
In this episode, we talk with Mahmoud Hashemi about glom, a very cool project in itself, but a project that needs more coverage than 100%.<br>
This problem affects lots of projects that use higher level programming constructs, like domain specific languages (DSLs), sub languages mini languages, compilers, and db query languages.</p>

<p>Also covered:</p>

<ul>
<li>awesome Python applications</li>
<li>versioning: 0-ver vs calver vs semver</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p><p>Links:</p><ul><li><a href="https://sedimental.org/" title="Announcing glom" rel="nofollow">Announcing glom</a> — Restructured Data for Python</li><li><a href="https://en.wikipedia.org/wiki/Domain-specific_language" title="Domain-specific language - Wikipedia" rel="nofollow">Domain-specific language - Wikipedia</a></li><li><a href="https://github.com/mahmoud/awesome-python-applications" title="awesome-python-applications" rel="nofollow">awesome-python-applications</a> — Free software that works great, and also happens to be open-source Python.</li><li><a href="http://meldmerge.org/" title="Meld" rel="nofollow">Meld</a> — a visual diff and merge tool targeted at developers.</li><li><a href="https://0ver.org/" title="ZeroVer: 0-based Versioning " rel="nofollow">ZeroVer: 0-based Versioning </a></li><li><a href="https://semver.org/" title="SemVer: Semantic Versioning " rel="nofollow">SemVer: Semantic Versioning </a></li><li><a href="https://calver.org/" title="CalVer: Calendar Versioning" rel="nofollow">CalVer: Calendar Versioning</a></li><li><a href="https://pythontest.com/testandcode/27" title="episode 27: unit, integration, and system testing - Mahmoud Hashemi" rel="nofollow">episode 27: unit, integration, and system testing - Mahmoud Hashemi</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 03 Dec 2018 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/55.mp3" length="16539761" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2048</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What happens when 100% test code coverage just isn't enough.<br>
In this episode, we talk with Mahmoud Hashemi about glom, a very cool project in itself, but a project that needs more coverage than 100%.<br>
This problem affects lots of projects that use higher level programming constructs, like domain specific languages (DSLs), sub languages mini languages, compilers, and db query languages.</p>

<p>Also covered:</p>

<ul>
<li>awesome Python applications</li>
<li>versioning: 0-ver vs calver vs semver</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p><p>Links:</p><ul><li><a href="https://sedimental.org/" title="Announcing glom" rel="nofollow">Announcing glom</a> — Restructured Data for Python</li><li><a href="https://en.wikipedia.org/wiki/Domain-specific_language" title="Domain-specific language - Wikipedia" rel="nofollow">Domain-specific language - Wikipedia</a></li><li><a href="https://github.com/mahmoud/awesome-python-applications" title="awesome-python-applications" rel="nofollow">awesome-python-applications</a> — Free software that works great, and also happens to be open-source Python.</li><li><a href="http://meldmerge.org/" title="Meld" rel="nofollow">Meld</a> — a visual diff and merge tool targeted at developers.</li><li><a href="https://0ver.org/" title="ZeroVer: 0-based Versioning " rel="nofollow">ZeroVer: 0-based Versioning </a></li><li><a href="https://semver.org/" title="SemVer: Semantic Versioning " rel="nofollow">SemVer: Semantic Versioning </a></li><li><a href="https://calver.org/" title="CalVer: Calendar Versioning" rel="nofollow">CalVer: Calendar Versioning</a></li><li><a href="https://pythontest.com/testandcode/27" title="episode 27: unit, integration, and system testing - Mahmoud Hashemi" rel="nofollow">episode 27: unit, integration, and system testing - Mahmoud Hashemi</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>awesome Python applications, Python testing, DSL software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>54: Python 1994 - Paul Everitt</title>
      <itunes:episode>54</itunes:episode>
      <podcast:episode>54</podcast:episode>
      <itunes:title>54: Python 1994 - Paul Everitt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">11f1d5f3-2d83-42be-978e-56972f575ef9</guid>
      <link>https://pythontest.com/testandcode/episodes/54-python-1994-paul-everitt</link>
      <description>
        <![CDATA[<p>Paul talks about the beginning years of Python.<br>
Talking about Python's beginnings is also talking about the Python community beginnings.<br>
Yes, it's reminiscing, but it's fun.</p><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=iOUrf7WSSLc" title="Python 1994 Panel Discussion PyCon 2017" rel="nofollow">Python 1994 Panel Discussion PyCon 2017</a></li><li><a href="https://www.youtube.com/watch?v=7NrPCsH0mBU" title="" rel="nofollow">"Python 1994", PyBay2017</a></li><li><a href="https://www.youtube.com/watch?v=anwy2MPT5RE" title="Spam, Spam, Spam, ..." rel="nofollow">Spam, Spam, Spam, ...</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Paul talks about the beginning years of Python.<br>
Talking about Python's beginnings is also talking about the Python community beginnings.<br>
Yes, it's reminiscing, but it's fun.</p><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=iOUrf7WSSLc" title="Python 1994 Panel Discussion PyCon 2017" rel="nofollow">Python 1994 Panel Discussion PyCon 2017</a></li><li><a href="https://www.youtube.com/watch?v=7NrPCsH0mBU" title="" rel="nofollow">"Python 1994", PyBay2017</a></li><li><a href="https://www.youtube.com/watch?v=anwy2MPT5RE" title="Spam, Spam, Spam, ..." rel="nofollow">Spam, Spam, Spam, ...</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 25 Nov 2018 12:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/54.mp3" length="14277182" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1765</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Paul talks about the beginning years of Python.<br>
Talking about Python's beginnings is also talking about the Python community beginnings.<br>
Yes, it's reminiscing, but it's fun.</p><p>Special Guest: Paul Everitt.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=iOUrf7WSSLc" title="Python 1994 Panel Discussion PyCon 2017" rel="nofollow">Python 1994 Panel Discussion PyCon 2017</a></li><li><a href="https://www.youtube.com/watch?v=7NrPCsH0mBU" title="" rel="nofollow">"Python 1994", PyBay2017</a></li><li><a href="https://www.youtube.com/watch?v=anwy2MPT5RE" title="Spam, Spam, Spam, ..." rel="nofollow">Spam, Spam, Spam, ...</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>53: Seven Databases in Seven Weeks - Luc Perkins</title>
      <itunes:episode>53</itunes:episode>
      <podcast:episode>53</podcast:episode>
      <itunes:title>53: Seven Databases in Seven Weeks - Luc Perkins</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b9df12f7-b65d-4b39-a961-c2e3f4a05a14</guid>
      <link>https://pythontest.com/testandcode/episodes/53-seven-databases-in-seven-weeks-luc-perkins</link>
      <description>
        <![CDATA[<p>Luc Perkins joins the show to talk about "Seven Databases in Seven Weeks: A guide to modern databases and the NoSQL movement."</p>

<p>We discuss a bit about each database:  Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB.</p><p>Special Guest: Luc Perkins.</p><p>Links:</p><ul><li><a href="https://7dbs.io/" title="Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement" rel="nofollow">Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement</a></li><li><a href="https://www.postgresql.org/" title="PostgreSQL" rel="nofollow">PostgreSQL</a></li><li><a href="https://redis.io/" title="Redis" rel="nofollow">Redis</a></li><li><a href="https://neo4j.com/" title="Neo4j Graph Database" rel="nofollow">Neo4j Graph Database</a></li><li><a href="http://couchdb.apache.org/" title="CouchDB" rel="nofollow">CouchDB</a></li><li><a href="https://www.mongodb.com/" title="MongoDB" rel="nofollow">MongoDB</a></li><li><a href="https://hbase.apache.org/" title="HBase" rel="nofollow">HBase</a></li><li><a href="https://aws.amazon.com/dynamodb/" title="DynamoDB" rel="nofollow">DynamoDB</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Luc Perkins joins the show to talk about "Seven Databases in Seven Weeks: A guide to modern databases and the NoSQL movement."</p>

<p>We discuss a bit about each database:  Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB.</p><p>Special Guest: Luc Perkins.</p><p>Links:</p><ul><li><a href="https://7dbs.io/" title="Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement" rel="nofollow">Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement</a></li><li><a href="https://www.postgresql.org/" title="PostgreSQL" rel="nofollow">PostgreSQL</a></li><li><a href="https://redis.io/" title="Redis" rel="nofollow">Redis</a></li><li><a href="https://neo4j.com/" title="Neo4j Graph Database" rel="nofollow">Neo4j Graph Database</a></li><li><a href="http://couchdb.apache.org/" title="CouchDB" rel="nofollow">CouchDB</a></li><li><a href="https://www.mongodb.com/" title="MongoDB" rel="nofollow">MongoDB</a></li><li><a href="https://hbase.apache.org/" title="HBase" rel="nofollow">HBase</a></li><li><a href="https://aws.amazon.com/dynamodb/" title="DynamoDB" rel="nofollow">DynamoDB</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 18 Nov 2018 23:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/53.mp3" length="26449828" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3286</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Luc Perkins joins the show to talk about "Seven Databases in Seven Weeks: A guide to modern databases and the NoSQL movement."</p>

<p>We discuss a bit about each database:  Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB.</p><p>Special Guest: Luc Perkins.</p><p>Links:</p><ul><li><a href="https://7dbs.io/" title="Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement" rel="nofollow">Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement</a></li><li><a href="https://www.postgresql.org/" title="PostgreSQL" rel="nofollow">PostgreSQL</a></li><li><a href="https://redis.io/" title="Redis" rel="nofollow">Redis</a></li><li><a href="https://neo4j.com/" title="Neo4j Graph Database" rel="nofollow">Neo4j Graph Database</a></li><li><a href="http://couchdb.apache.org/" title="CouchDB" rel="nofollow">CouchDB</a></li><li><a href="https://www.mongodb.com/" title="MongoDB" rel="nofollow">MongoDB</a></li><li><a href="https://hbase.apache.org/" title="HBase" rel="nofollow">HBase</a></li><li><a href="https://aws.amazon.com/dynamodb/" title="DynamoDB" rel="nofollow">DynamoDB</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>databases</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>52: pyproject.toml : the future of Python packaging  - Brett Cannon</title>
      <itunes:episode>52</itunes:episode>
      <podcast:episode>52</podcast:episode>
      <itunes:title>52: pyproject.toml : the future of Python packaging  - Brett Cannon</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b655e7ca-1664-4ffe-86aa-c8b86aeec8db</guid>
      <link>https://pythontest.com/testandcode/episodes/52-pyproject-toml-the-future-of-python-packaging-brett-cannon</link>
      <description>
        <![CDATA[<p>Brett Cannon discusses the changes afoot in Python packaging as a result of PEP 517, PEP 518, starting with "How did we get here?" and "Where are we going?"</p>

<p>Discussed:</p>

<ul>
<li>flit</li>
<li>Poetry</li>
<li>tox</li>
<li>Continuous Integration</li>
<li>setup.py, MANIFEST.in, etc.</li>
<li>pipenv</li>
<li>what's with lock files</li>
<li>applications (doesn't go on PyPI) vs libraries (goes on PyPI)</li>
<li>workflows</li>
<li>dependency resolution</li>
<li>deployment dependencies vs development dependencies</li>
<li>will lock files be standarized</li>
<li>multiple lock files</li>
<li>requirements.txt</li>
</ul><p>Special Guest: Brett Cannon.</p><p>Links:</p><ul><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit" rel="nofollow">Flit</a></li><li><a href="https://poetry.eustace.io/" title="Poetry" rel="nofollow">Poetry</a></li><li><a href="https://pythonbytes.fm/episodes/show/100/the-big-100-with-special-guests" title="Python Bytes #100 : The big 100 with special guests " rel="nofollow">Python Bytes #100 : The big 100 with special guests </a></li><li><a href="https://www.python.org/dev/peps/pep-0517/" title="PEP 517 -- A build-system independent format for source trees | Python.org" rel="nofollow">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/" title="PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org" rel="nofollow">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Brett Cannon discusses the changes afoot in Python packaging as a result of PEP 517, PEP 518, starting with "How did we get here?" and "Where are we going?"</p>

<p>Discussed:</p>

<ul>
<li>flit</li>
<li>Poetry</li>
<li>tox</li>
<li>Continuous Integration</li>
<li>setup.py, MANIFEST.in, etc.</li>
<li>pipenv</li>
<li>what's with lock files</li>
<li>applications (doesn't go on PyPI) vs libraries (goes on PyPI)</li>
<li>workflows</li>
<li>dependency resolution</li>
<li>deployment dependencies vs development dependencies</li>
<li>will lock files be standarized</li>
<li>multiple lock files</li>
<li>requirements.txt</li>
</ul><p>Special Guest: Brett Cannon.</p><p>Links:</p><ul><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit" rel="nofollow">Flit</a></li><li><a href="https://poetry.eustace.io/" title="Poetry" rel="nofollow">Poetry</a></li><li><a href="https://pythonbytes.fm/episodes/show/100/the-big-100-with-special-guests" title="Python Bytes #100 : The big 100 with special guests " rel="nofollow">Python Bytes #100 : The big 100 with special guests </a></li><li><a href="https://www.python.org/dev/peps/pep-0517/" title="PEP 517 -- A build-system independent format for source trees | Python.org" rel="nofollow">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/" title="PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org" rel="nofollow">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 05 Nov 2018 12:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/52.mp3" length="24572133" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3052</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Brett Cannon discusses the changes afoot in Python packaging as a result of PEP 517, PEP 518, starting with "How did we get here?" and "Where are we going?"</p>

<p>Discussed:</p>

<ul>
<li>flit</li>
<li>Poetry</li>
<li>tox</li>
<li>Continuous Integration</li>
<li>setup.py, MANIFEST.in, etc.</li>
<li>pipenv</li>
<li>what's with lock files</li>
<li>applications (doesn't go on PyPI) vs libraries (goes on PyPI)</li>
<li>workflows</li>
<li>dependency resolution</li>
<li>deployment dependencies vs development dependencies</li>
<li>will lock files be standarized</li>
<li>multiple lock files</li>
<li>requirements.txt</li>
</ul><p>Special Guest: Brett Cannon.</p><p>Links:</p><ul><li><a href="https://flit.readthedocs.io/en/latest/" title="Flit" rel="nofollow">Flit</a></li><li><a href="https://poetry.eustace.io/" title="Poetry" rel="nofollow">Poetry</a></li><li><a href="https://pythonbytes.fm/episodes/show/100/the-big-100-with-special-guests" title="Python Bytes #100 : The big 100 with special guests " rel="nofollow">Python Bytes #100 : The big 100 with special guests </a></li><li><a href="https://www.python.org/dev/peps/pep-0517/" title="PEP 517 -- A build-system independent format for source trees | Python.org" rel="nofollow">PEP 517 -- A build-system independent format for source trees | Python.org</a></li><li><a href="https://www.python.org/dev/peps/pep-0518/" title="PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org" rel="nofollow">PEP 518 -- Specifying Minimum Build System Requirements for Python Projects | Python.org</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>Python packaging, pyproject.toml, tox, CI, pipenv, lock files, poetry, flit,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>51: Feature Testing</title>
      <itunes:episode>51</itunes:episode>
      <podcast:episode>51</podcast:episode>
      <itunes:title>51: Feature Testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6713365b-48ca-40ad-9e89-030c27076d96</guid>
      <link>https://pythontest.com/testandcode/episodes/51-feature-testing</link>
      <description>
        <![CDATA[<p>Andy Knight joins me in discussing the concept of feature testing.</p>

<p>A feature tests is "a test verifying a service or library as the customer would use it, but within a single process." That was a quote from an article that appeared on the Twitter engineering blog. The article describes a shift away from class tests towards feature tests, the benefits of the shift, and some reactions to it.</p>

<p>Feature tests are similar to  something I used to call "functional subcutaneous integration test", but it's a way better name, and I plan to use it more often.</p>

<p>The idea fits well with my testing philosophy. Andy Knight is someone still holding onto the testing pyramid. So I thought it would be fun to ask him to discuss feature testing with me. I think it's a balanced discussion. I hope you enjoy it and learn something.</p><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance.html" title="Twitter engineering blog article describing Feature Testing : The testing renaissance" rel="nofollow">Twitter engineering blog article describing Feature Testing : The testing renaissance</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Andy Knight joins me in discussing the concept of feature testing.</p>

<p>A feature tests is "a test verifying a service or library as the customer would use it, but within a single process." That was a quote from an article that appeared on the Twitter engineering blog. The article describes a shift away from class tests towards feature tests, the benefits of the shift, and some reactions to it.</p>

<p>Feature tests are similar to  something I used to call "functional subcutaneous integration test", but it's a way better name, and I plan to use it more often.</p>

<p>The idea fits well with my testing philosophy. Andy Knight is someone still holding onto the testing pyramid. So I thought it would be fun to ask him to discuss feature testing with me. I think it's a balanced discussion. I hope you enjoy it and learn something.</p><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance.html" title="Twitter engineering blog article describing Feature Testing : The testing renaissance" rel="nofollow">Twitter engineering blog article describing Feature Testing : The testing renaissance</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 30 Oct 2018 08:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/51.mp3" length="15329382" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1896</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Andy Knight joins me in discussing the concept of feature testing.</p>

<p>A feature tests is "a test verifying a service or library as the customer would use it, but within a single process." That was a quote from an article that appeared on the Twitter engineering blog. The article describes a shift away from class tests towards feature tests, the benefits of the shift, and some reactions to it.</p>

<p>Feature tests are similar to  something I used to call "functional subcutaneous integration test", but it's a way better name, and I plan to use it more often.</p>

<p>The idea fits well with my testing philosophy. Andy Knight is someone still holding onto the testing pyramid. So I thought it would be fun to ask him to discuss feature testing with me. I think it's a balanced discussion. I hope you enjoy it and learn something.</p><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://blog.twitter.com/engineering/en_us/topics/insights/2017/the-testing-renaissance.html" title="Twitter engineering blog article describing Feature Testing : The testing renaissance" rel="nofollow">Twitter engineering blog article describing Feature Testing : The testing renaissance</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>feature testing, testing pyramid, software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>50: Flaky Tests and How to Deal with Them</title>
      <itunes:episode>50</itunes:episode>
      <podcast:episode>50</podcast:episode>
      <itunes:title>50: Flaky Tests and How to Deal with Them</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5104e2ba-c27e-4e62-b4bd-6105291880d9</guid>
      <link>https://pythontest.com/testandcode/episodes/50-flaky-tests-and-how-to-deal-with-them</link>
      <description>
        <![CDATA[<p>Anthony Shaw joins Brian to discuss flaky tests and flaky test suites.</p>

<ul>
<li>What are flaky tests?</li>
<li>Is it the same as fragile tests?</li>
<li>Why are they bad?</li>
<li>How do we deal with them?</li>
<li>What causes flakiness?</li>
<li>How can we fix them?</li>
<li>How can we avoid them?</li>
<li>Proactively rooting out flakiness</li>
<li>Test design</li>
<li>GUI tests</li>
<li>Sharing solutions</li>
</ul><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://blogs.dropbox.com/tech/2018/05/how-were-winning-the-battle-against-flaky-tests/" title="Dropbox article on flaky tests" rel="nofollow">Dropbox article on flaky tests</a></li><li><a href="https://blogs.msdn.microsoft.com/bharry/2017/06/28/testing-in-a-cloud-delivery-cadence/" title="Microsoft article on flaky tests" rel="nofollow">Microsoft article on flaky tests</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures" title="pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures" rel="nofollow">pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures</a></li><li><a href="https://github.com/pytest-dev/pytest-randomly" title="pytest-randomly: Pytest plugin to randomly order tests and control random.seed" rel="nofollow">pytest-randomly: Pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/jbasko/pytest-random-order" title="pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness" rel="nofollow">pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness</a></li><li><a href="https://docs.python.org/3/library/math.html#math.isclose" title="math.isclose()" rel="nofollow">math.isclose()</a></li><li><a href="https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.isclose.html" title="numpy.isclose()" rel="nofollow">numpy.isclose()</a></li><li><a href="https://docs.pytest.org/en/latest/reference.html#pytest-approx" title="pytest.approx()" rel="nofollow">pytest.approx()</a> — approx</li><li><a href="https://realpython.com/python-testing/" title="Anthony's testing article on RealPython" rel="nofollow">Anthony's testing article on RealPython</a></li><li><a href="https://ghostinspector.com/" title="Ghost Inspector" rel="nofollow">Ghost Inspector</a></li><li><a href="https://github.com/tonybaloney/wily" title="wily: A Python application for tracking, reporting on timing and complexity in tests" rel="nofollow">wily: A Python application for tracking, reporting on timing and complexity in tests</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Anthony Shaw joins Brian to discuss flaky tests and flaky test suites.</p>

<ul>
<li>What are flaky tests?</li>
<li>Is it the same as fragile tests?</li>
<li>Why are they bad?</li>
<li>How do we deal with them?</li>
<li>What causes flakiness?</li>
<li>How can we fix them?</li>
<li>How can we avoid them?</li>
<li>Proactively rooting out flakiness</li>
<li>Test design</li>
<li>GUI tests</li>
<li>Sharing solutions</li>
</ul><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://blogs.dropbox.com/tech/2018/05/how-were-winning-the-battle-against-flaky-tests/" title="Dropbox article on flaky tests" rel="nofollow">Dropbox article on flaky tests</a></li><li><a href="https://blogs.msdn.microsoft.com/bharry/2017/06/28/testing-in-a-cloud-delivery-cadence/" title="Microsoft article on flaky tests" rel="nofollow">Microsoft article on flaky tests</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures" title="pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures" rel="nofollow">pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures</a></li><li><a href="https://github.com/pytest-dev/pytest-randomly" title="pytest-randomly: Pytest plugin to randomly order tests and control random.seed" rel="nofollow">pytest-randomly: Pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/jbasko/pytest-random-order" title="pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness" rel="nofollow">pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness</a></li><li><a href="https://docs.python.org/3/library/math.html#math.isclose" title="math.isclose()" rel="nofollow">math.isclose()</a></li><li><a href="https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.isclose.html" title="numpy.isclose()" rel="nofollow">numpy.isclose()</a></li><li><a href="https://docs.pytest.org/en/latest/reference.html#pytest-approx" title="pytest.approx()" rel="nofollow">pytest.approx()</a> — approx</li><li><a href="https://realpython.com/python-testing/" title="Anthony's testing article on RealPython" rel="nofollow">Anthony's testing article on RealPython</a></li><li><a href="https://ghostinspector.com/" title="Ghost Inspector" rel="nofollow">Ghost Inspector</a></li><li><a href="https://github.com/tonybaloney/wily" title="wily: A Python application for tracking, reporting on timing and complexity in tests" rel="nofollow">wily: A Python application for tracking, reporting on timing and complexity in tests</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 25 Oct 2018 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/50.mp3" length="15684793" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1941</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Anthony Shaw joins Brian to discuss flaky tests and flaky test suites.</p>

<ul>
<li>What are flaky tests?</li>
<li>Is it the same as fragile tests?</li>
<li>Why are they bad?</li>
<li>How do we deal with them?</li>
<li>What causes flakiness?</li>
<li>How can we fix them?</li>
<li>How can we avoid them?</li>
<li>Proactively rooting out flakiness</li>
<li>Test design</li>
<li>GUI tests</li>
<li>Sharing solutions</li>
</ul><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://blogs.dropbox.com/tech/2018/05/how-were-winning-the-battle-against-flaky-tests/" title="Dropbox article on flaky tests" rel="nofollow">Dropbox article on flaky tests</a></li><li><a href="https://blogs.msdn.microsoft.com/bharry/2017/06/28/testing-in-a-cloud-delivery-cadence/" title="Microsoft article on flaky tests" rel="nofollow">Microsoft article on flaky tests</a></li><li><a href="https://github.com/pytest-dev/pytest-rerunfailures" title="pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures" rel="nofollow">pytest-rerunfailures: a py.test plugin that re-runs failed tests up to -n times to eliminate flakey failures</a></li><li><a href="https://github.com/pytest-dev/pytest-randomly" title="pytest-randomly: Pytest plugin to randomly order tests and control random.seed" rel="nofollow">pytest-randomly: Pytest plugin to randomly order tests and control random.seed</a></li><li><a href="https://github.com/jbasko/pytest-random-order" title="pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness" rel="nofollow">pytest-random-order: pytest plugin to randomise the order of tests with some control over the randomness</a></li><li><a href="https://docs.python.org/3/library/math.html#math.isclose" title="math.isclose()" rel="nofollow">math.isclose()</a></li><li><a href="https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.isclose.html" title="numpy.isclose()" rel="nofollow">numpy.isclose()</a></li><li><a href="https://docs.pytest.org/en/latest/reference.html#pytest-approx" title="pytest.approx()" rel="nofollow">pytest.approx()</a> — approx</li><li><a href="https://realpython.com/python-testing/" title="Anthony's testing article on RealPython" rel="nofollow">Anthony's testing article on RealPython</a></li><li><a href="https://ghostinspector.com/" title="Ghost Inspector" rel="nofollow">Ghost Inspector</a></li><li><a href="https://github.com/tonybaloney/wily" title="wily: A Python application for tracking, reporting on timing and complexity in tests" rel="nofollow">wily: A Python application for tracking, reporting on timing and complexity in tests</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>software testing, selenium, pytest, test design, continuous integration</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>49: tox - Oliver Bestwalter</title>
      <itunes:episode>49</itunes:episode>
      <podcast:episode>49</podcast:episode>
      <itunes:title>49: tox - Oliver Bestwalter</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6adb50a2-9bd3-4f32-835d-85c515acfb53</guid>
      <link>https://pythontest.com/testandcode/episodes/49-tox-oliver-bestwalter</link>
      <description>
        <![CDATA[<p>tox is a simple yet powerful tool that is used by many Python projects.</p>

<p>tox is not just a tool to help you test a Python project against multiple versions of Python. In this interview, Oliver and Brian just scratch the surface of this simple yet powerful automation tool.</p>

<p>This is from the tox documentation:</p>


<p>tox is a generic virtualenv management and test command line tool you can use for:</p>

<ul>
<li>checking your package installs correctly with different Python versions and interpreters</li>
<li>running your tests in each of the environments, configuring your test tool of choice</li>
<li>acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.</li>
</ul>


<p>Yet tox is so much more. It can help create development environments, hold all of your admin scripts, ...</p>

<p>I hope you enjoy this wonderful discussion of tox with Oliver Bestwalter, one of the core maintainers of tox.</p><p>Special Guest: Oliver Bestwalter.</p><p>Links:</p><ul><li><a href="https://tox.readthedocs.io/en/latest/" title="tox project documentation" rel="nofollow">tox project documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-recreate" title="tox recreate :  " rel="nofollow">tox recreate :  "Have you turned it off and on again?" for tox</a></li><li><a href="https://twitter.com/obestwalter/status/1042830213460250630" title="" rel="nofollow">"Hello world" of tox</a></li><li><a href="https://tox.readthedocs.io/en/latest/plugins.html" title="tox also has plugins" rel="nofollow">tox also has plugins</a></li><li><a href="https://www.youtube.com/watch?v=SFqna5ilqig&amp;feature=youtu.be" title="talk by Bernát Gábor about a tox based workflow at EuroPython 2018" rel="nofollow">talk by Bernát Gábor about a tox based workflow at EuroPython 2018</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-description" title="adding a description to your environments" rel="nofollow">adding a description to your environments</a></li><li><a href="https://github.com/tox-dev/detox" title="detox - distributed tox" rel="nofollow">detox - distributed tox</a></li><li><a href="https://www.devpi.net/" title="devpi: private package index" rel="nofollow">devpi: private package index</a></li><li><a href="https://github.com/nokia/PyVenvManage" title="PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage" rel="nofollow">PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage</a></li><li><a href="https://atom.io/packages/activate-power-mode" title="power mode in atom" rel="nofollow">power mode in atom</a></li><li><a href="https://plugins.jetbrains.com/plugin/8251-power-mode-ii" title="Power Mode for PyCharm" rel="nofollow">Power Mode for PyCharm</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>tox is a simple yet powerful tool that is used by many Python projects.</p>

<p>tox is not just a tool to help you test a Python project against multiple versions of Python. In this interview, Oliver and Brian just scratch the surface of this simple yet powerful automation tool.</p>

<p>This is from the tox documentation:</p>


<p>tox is a generic virtualenv management and test command line tool you can use for:</p>

<ul>
<li>checking your package installs correctly with different Python versions and interpreters</li>
<li>running your tests in each of the environments, configuring your test tool of choice</li>
<li>acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.</li>
</ul>


<p>Yet tox is so much more. It can help create development environments, hold all of your admin scripts, ...</p>

<p>I hope you enjoy this wonderful discussion of tox with Oliver Bestwalter, one of the core maintainers of tox.</p><p>Special Guest: Oliver Bestwalter.</p><p>Links:</p><ul><li><a href="https://tox.readthedocs.io/en/latest/" title="tox project documentation" rel="nofollow">tox project documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-recreate" title="tox recreate :  " rel="nofollow">tox recreate :  "Have you turned it off and on again?" for tox</a></li><li><a href="https://twitter.com/obestwalter/status/1042830213460250630" title="" rel="nofollow">"Hello world" of tox</a></li><li><a href="https://tox.readthedocs.io/en/latest/plugins.html" title="tox also has plugins" rel="nofollow">tox also has plugins</a></li><li><a href="https://www.youtube.com/watch?v=SFqna5ilqig&amp;feature=youtu.be" title="talk by Bernát Gábor about a tox based workflow at EuroPython 2018" rel="nofollow">talk by Bernát Gábor about a tox based workflow at EuroPython 2018</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-description" title="adding a description to your environments" rel="nofollow">adding a description to your environments</a></li><li><a href="https://github.com/tox-dev/detox" title="detox - distributed tox" rel="nofollow">detox - distributed tox</a></li><li><a href="https://www.devpi.net/" title="devpi: private package index" rel="nofollow">devpi: private package index</a></li><li><a href="https://github.com/nokia/PyVenvManage" title="PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage" rel="nofollow">PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage</a></li><li><a href="https://atom.io/packages/activate-power-mode" title="power mode in atom" rel="nofollow">power mode in atom</a></li><li><a href="https://plugins.jetbrains.com/plugin/8251-power-mode-ii" title="Power Mode for PyCharm" rel="nofollow">Power Mode for PyCharm</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 15 Oct 2018 09:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/49.mp3" length="26890622" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3342</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>tox is a simple yet powerful tool that is used by many Python projects.</p>

<p>tox is not just a tool to help you test a Python project against multiple versions of Python. In this interview, Oliver and Brian just scratch the surface of this simple yet powerful automation tool.</p>

<p>This is from the tox documentation:</p>


<p>tox is a generic virtualenv management and test command line tool you can use for:</p>

<ul>
<li>checking your package installs correctly with different Python versions and interpreters</li>
<li>running your tests in each of the environments, configuring your test tool of choice</li>
<li>acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.</li>
</ul>


<p>Yet tox is so much more. It can help create development environments, hold all of your admin scripts, ...</p>

<p>I hope you enjoy this wonderful discussion of tox with Oliver Bestwalter, one of the core maintainers of tox.</p><p>Special Guest: Oliver Bestwalter.</p><p>Links:</p><ul><li><a href="https://tox.readthedocs.io/en/latest/" title="tox project documentation" rel="nofollow">tox project documentation</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-recreate" title="tox recreate :  " rel="nofollow">tox recreate :  "Have you turned it off and on again?" for tox</a></li><li><a href="https://twitter.com/obestwalter/status/1042830213460250630" title="" rel="nofollow">"Hello world" of tox</a></li><li><a href="https://tox.readthedocs.io/en/latest/plugins.html" title="tox also has plugins" rel="nofollow">tox also has plugins</a></li><li><a href="https://www.youtube.com/watch?v=SFqna5ilqig&amp;feature=youtu.be" title="talk by Bernát Gábor about a tox based workflow at EuroPython 2018" rel="nofollow">talk by Bernát Gábor about a tox based workflow at EuroPython 2018</a></li><li><a href="https://tox.readthedocs.io/en/latest/config.html#conf-description" title="adding a description to your environments" rel="nofollow">adding a description to your environments</a></li><li><a href="https://github.com/tox-dev/detox" title="detox - distributed tox" rel="nofollow">detox - distributed tox</a></li><li><a href="https://www.devpi.net/" title="devpi: private package index" rel="nofollow">devpi: private package index</a></li><li><a href="https://github.com/nokia/PyVenvManage" title="PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage" rel="nofollow">PyCharm plugin to easily set the project interpreter via context menu: PyVenvmanage</a></li><li><a href="https://atom.io/packages/activate-power-mode" title="power mode in atom" rel="nofollow">power mode in atom</a></li><li><a href="https://plugins.jetbrains.com/plugin/8251-power-mode-ii" title="Power Mode for PyCharm" rel="nofollow">Power Mode for PyCharm</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>tox, automation, testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>48: A GUI for pytest</title>
      <itunes:episode>48</itunes:episode>
      <podcast:episode>48</podcast:episode>
      <itunes:title>48: A GUI for pytest</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">7c841a63-3717-4b72-b301-2b7c60b53835</guid>
      <link>https://pythontest.com/testandcode/episodes/48-a-gui-for-pytest</link>
      <description>
        <![CDATA[<p>The story of how I came to find a good user interface for running and debugging automated tests is interleaved with a multi-year effort of mine to have a test workflow that’s works smoothly with product development and actually speeds things up. It’s also interleaved with the origins of  the blog pythontesting.net, this podcast, and the pytest book I wrote with Pragmatic.</p>

<p>It’s not a long story. And it has a happy ending. Well. It’s not over. But I’m happy with where we are now. I’m also hoping that this tale of my dedication to, or obsession with, quality and developer efficiency helps you in your own efforts to make your daily workflow better and to extend that to try to increase the efficiency of those you work with.</p><p>Links:</p><ul><li><a href="http://pythontesting.net/" title="pythontesting.net" rel="nofollow">pythontesting.net</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The story of how I came to find a good user interface for running and debugging automated tests is interleaved with a multi-year effort of mine to have a test workflow that’s works smoothly with product development and actually speeds things up. It’s also interleaved with the origins of  the blog pythontesting.net, this podcast, and the pytest book I wrote with Pragmatic.</p>

<p>It’s not a long story. And it has a happy ending. Well. It’s not over. But I’m happy with where we are now. I’m also hoping that this tale of my dedication to, or obsession with, quality and developer efficiency helps you in your own efforts to make your daily workflow better and to extend that to try to increase the efficiency of those you work with.</p><p>Links:</p><ul><li><a href="http://pythontesting.net/" title="pythontesting.net" rel="nofollow">pythontesting.net</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 07 Oct 2018 23:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/48.mp3" length="6016638" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>732</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The story of how I came to find a good user interface for running and debugging automated tests is interleaved with a multi-year effort of mine to have a test workflow that’s works smoothly with product development and actually speeds things up. It’s also interleaved with the origins of  the blog pythontesting.net, this podcast, and the pytest book I wrote with Pragmatic.</p>

<p>It’s not a long story. And it has a happy ending. Well. It’s not over. But I’m happy with where we are now. I’m also hoping that this tale of my dedication to, or obsession with, quality and developer efficiency helps you in your own efforts to make your daily workflow better and to extend that to try to increase the efficiency of those you work with.</p><p>Links:</p><ul><li><a href="http://pythontesting.net/" title="pythontesting.net" rel="nofollow">pythontesting.net</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>pytest, GUI, developer efficiency</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>47: Automation Panda - Andy Knight</title>
      <itunes:episode>47</itunes:episode>
      <podcast:episode>47</podcast:episode>
      <itunes:title>47: Automation Panda - Andy Knight</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">5d5d4aa7-b828-4e86-9036-c47d30e133ae</guid>
      <link>https://pythontest.com/testandcode/episodes/47-automation-panda-andy-knight</link>
      <description>
        <![CDATA[<p>Interview with Andy Knight, the Automation Panda. </p>

<ul>
<li>Selenium &amp; WebDriver</li>
<li>Headless Chrome</li>
<li>Gherkin</li>
<li>BDD</li>
<li>Given When Then</li>
<li>pytest-bdd</li>
<li>PyCharm</li>
<li>Writing Good Gherkin</li>
<li>Overhead of Gherkin and if it's worth it</li>
<li>When to use pytest vs pytest-bdd</li>
<li>The art of test automation</li>
</ul><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://automationpanda.com/" title="Automation Panda | A blog for software development and testing" rel="nofollow">Automation Panda | A blog for software development and testing</a></li><li><a href="https://github.com/intuit/karate" title="Karate REST API test framework" rel="nofollow">Karate REST API test framework</a></li><li><a href="https://automationpanda.com/bdd/" title="BDD | Automation Panda" rel="nofollow">BDD | Automation Panda</a></li><li><a href="https://automationpanda.com/testing/" title="Testing | Automation Panda" rel="nofollow">Testing | Automation Panda</a></li><li><a href="https://amzn.to/2IqkJZO" title="The pytest Book" rel="nofollow">The pytest Book</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Interview with Andy Knight, the Automation Panda. </p>

<ul>
<li>Selenium &amp; WebDriver</li>
<li>Headless Chrome</li>
<li>Gherkin</li>
<li>BDD</li>
<li>Given When Then</li>
<li>pytest-bdd</li>
<li>PyCharm</li>
<li>Writing Good Gherkin</li>
<li>Overhead of Gherkin and if it's worth it</li>
<li>When to use pytest vs pytest-bdd</li>
<li>The art of test automation</li>
</ul><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://automationpanda.com/" title="Automation Panda | A blog for software development and testing" rel="nofollow">Automation Panda | A blog for software development and testing</a></li><li><a href="https://github.com/intuit/karate" title="Karate REST API test framework" rel="nofollow">Karate REST API test framework</a></li><li><a href="https://automationpanda.com/bdd/" title="BDD | Automation Panda" rel="nofollow">BDD | Automation Panda</a></li><li><a href="https://automationpanda.com/testing/" title="Testing | Automation Panda" rel="nofollow">Testing | Automation Panda</a></li><li><a href="https://amzn.to/2IqkJZO" title="The pytest Book" rel="nofollow">The pytest Book</a></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 28 Sep 2018 00:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/47.mp3" length="18883900" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2341</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Interview with Andy Knight, the Automation Panda. </p>

<ul>
<li>Selenium &amp; WebDriver</li>
<li>Headless Chrome</li>
<li>Gherkin</li>
<li>BDD</li>
<li>Given When Then</li>
<li>pytest-bdd</li>
<li>PyCharm</li>
<li>Writing Good Gherkin</li>
<li>Overhead of Gherkin and if it's worth it</li>
<li>When to use pytest vs pytest-bdd</li>
<li>The art of test automation</li>
</ul><p>Special Guest: Andy Knight.</p><p>Links:</p><ul><li><a href="https://automationpanda.com/" title="Automation Panda | A blog for software development and testing" rel="nofollow">Automation Panda | A blog for software development and testing</a></li><li><a href="https://github.com/intuit/karate" title="Karate REST API test framework" rel="nofollow">Karate REST API test framework</a></li><li><a href="https://automationpanda.com/bdd/" title="BDD | Automation Panda" rel="nofollow">BDD | Automation Panda</a></li><li><a href="https://automationpanda.com/testing/" title="Testing | Automation Panda" rel="nofollow">Testing | Automation Panda</a></li><li><a href="https://amzn.to/2IqkJZO" title="The pytest Book" rel="nofollow">The pytest Book</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>BDD, Gherkin, Selenium, WebDriver</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>46: Testing Hard To Test Applications - Anthony Shaw</title>
      <itunes:episode>46</itunes:episode>
      <podcast:episode>46</podcast:episode>
      <itunes:title>46: Testing Hard To Test Applications - Anthony Shaw</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">559bed92-f561-442f-ad24-4832cf8e8b17</guid>
      <link>https://pythontest.com/testandcode/episodes/46-testing-hard-to-test-applications-anthony-shaw</link>
      <description>
        <![CDATA[<p>How do you write tests for things that aren’t that easy to write tests for?</p>

<p>That question is a possibly terrible summary of a question sent to me by a listener. And to help me start answering that question, I asked a friend of mine to help, Antony Shaw.</p>

<p>Of course, different types of applications have different test strategies, so there’s not a universal answer. But I know some of you out there have experience and expertise around how to tackle this problem.</p>

<p>Listen to the discussion Anthony and I have about it, and let me know if you have some techniques or tips to add. </p><p>Special Guest: Anthony Shaw.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How do you write tests for things that aren’t that easy to write tests for?</p>

<p>That question is a possibly terrible summary of a question sent to me by a listener. And to help me start answering that question, I asked a friend of mine to help, Antony Shaw.</p>

<p>Of course, different types of applications have different test strategies, so there’s not a universal answer. But I know some of you out there have experience and expertise around how to tackle this problem.</p>

<p>Listen to the discussion Anthony and I have about it, and let me know if you have some techniques or tips to add. </p><p>Special Guest: Anthony Shaw.</p>]]>
      </content:encoded>
      <pubDate>Sun, 02 Sep 2018 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/46.mp3" length="20689088" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2566</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How do you write tests for things that aren’t that easy to write tests for?</p>

<p>That question is a possibly terrible summary of a question sent to me by a listener. And to help me start answering that question, I asked a friend of mine to help, Antony Shaw.</p>

<p>Of course, different types of applications have different test strategies, so there’s not a universal answer. But I know some of you out there have experience and expertise around how to tackle this problem.</p>

<p>Listen to the discussion Anthony and I have about it, and let me know if you have some techniques or tips to add. </p><p>Special Guest: Anthony Shaw.</p>]]>
      </itunes:summary>
      <itunes:keywords>software testing</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA</title>
      <itunes:episode>45</itunes:episode>
      <podcast:episode>45</podcast:episode>
      <itunes:title>45: David Heinemeier Hansson - Software Development and Testing, TDD, and exploratory QA</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6ae392a5-5d07-4f34-a3ba-cce4d90ea161</guid>
      <link>https://pythontest.com/testandcode/episodes/45-david-heinemeier-hansson-software-development-and-testing-tdd-and-exploratory-qa</link>
      <description>
        <![CDATA[<p>David Heinemeier Hansson is the creator of Ruby on Rails, founder &amp; CTO at Basecamp (formerly 37signals). He's a best selling author, public speaker, and even a Le Mans class winning racing driver. </p>

<p>All of that, of course, is awesome. But that's not why I asked him on the show. In 2014, during a RailsConf keynote, he started a discussion about damage caused by TDD. This was followed by a few blog posts, and then a series of recorded hangouts with Martin Fowler and Kent Beck. This is what I wanted to talk with David about; this unconventional yet practical and intuitive view of how testing and development work together. </p>

<p>It's a great discussion. I think you'll get a lot out of it.</p><p>Special Guest: David Heinemeier Hansson.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=z9quxZsLcfo" title="Is TDD dead? - Part 1" rel="nofollow">Is TDD dead? - Part 1</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?", including links to the other parts of the video series</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube" rel="nofollow">RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube</a></li><li><a href="http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html" title="TDD is dead. Long live testing. (DHH)" rel="nofollow">TDD is dead. Long live testing. (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/test-induced-design-damage.html" title="Test-induced design damage (DHH)" rel="nofollow">Test-induced design damage (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/slow-database-test-fallacy.html" title="Slow database test fallacy (DHH)" rel="nofollow">Slow database test fallacy (DHH)</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>David Heinemeier Hansson is the creator of Ruby on Rails, founder &amp; CTO at Basecamp (formerly 37signals). He's a best selling author, public speaker, and even a Le Mans class winning racing driver. </p>

<p>All of that, of course, is awesome. But that's not why I asked him on the show. In 2014, during a RailsConf keynote, he started a discussion about damage caused by TDD. This was followed by a few blog posts, and then a series of recorded hangouts with Martin Fowler and Kent Beck. This is what I wanted to talk with David about; this unconventional yet practical and intuitive view of how testing and development work together. </p>

<p>It's a great discussion. I think you'll get a lot out of it.</p><p>Special Guest: David Heinemeier Hansson.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=z9quxZsLcfo" title="Is TDD dead? - Part 1" rel="nofollow">Is TDD dead? - Part 1</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?", including links to the other parts of the video series</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube" rel="nofollow">RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube</a></li><li><a href="http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html" title="TDD is dead. Long live testing. (DHH)" rel="nofollow">TDD is dead. Long live testing. (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/test-induced-design-damage.html" title="Test-induced design damage (DHH)" rel="nofollow">Test-induced design damage (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/slow-database-test-fallacy.html" title="Slow database test fallacy (DHH)" rel="nofollow">Slow database test fallacy (DHH)</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 13 Aug 2018 06:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/45.mp3" length="19623664" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2433</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>David Heinemeier Hansson is the creator of Ruby on Rails, founder &amp; CTO at Basecamp (formerly 37signals). He's a best selling author, public speaker, and even a Le Mans class winning racing driver. </p>

<p>All of that, of course, is awesome. But that's not why I asked him on the show. In 2014, during a RailsConf keynote, he started a discussion about damage caused by TDD. This was followed by a few blog posts, and then a series of recorded hangouts with Martin Fowler and Kent Beck. This is what I wanted to talk with David about; this unconventional yet practical and intuitive view of how testing and development work together. </p>

<p>It's a great discussion. I think you'll get a lot out of it.</p><p>Special Guest: David Heinemeier Hansson.</p><p>Links:</p><ul><li><a href="https://www.youtube.com/watch?v=z9quxZsLcfo" title="Is TDD dead? - Part 1" rel="nofollow">Is TDD dead? - Part 1</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?", including links to the other parts of the video series</a></li><li><a href="https://www.youtube.com/watch?v=9LfmrkyP81M" title="RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube" rel="nofollow">RailsConf 2014 - Keynote: Writing Software by David Heinemeier Hansson - YouTube</a></li><li><a href="http://david.heinemeierhansson.com/2014/tdd-is-dead-long-live-testing.html" title="TDD is dead. Long live testing. (DHH)" rel="nofollow">TDD is dead. Long live testing. (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/test-induced-design-damage.html" title="Test-induced design damage (DHH)" rel="nofollow">Test-induced design damage (DHH)</a></li><li><a href="http://david.heinemeierhansson.com/2014/slow-database-test-fallacy.html" title="Slow database test fallacy (DHH)" rel="nofollow">Slow database test fallacy (DHH)</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>TDD, software testing, exploratory QA, DHH</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>44: Mentoring - Nina Zakharenko</title>
      <itunes:episode>44</itunes:episode>
      <podcast:episode>44</podcast:episode>
      <itunes:title>44: Mentoring - Nina Zakharenko</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d843818f-bf2b-486a-acb6-7f9505200136</guid>
      <link>https://pythontest.com/testandcode/episodes/44-mentoring-nina-zakharenko</link>
      <description>
        <![CDATA[<p>Nina Zakharenko is a cloud developer advocate at Microsoft focusing on Python. She's also an excellent public speaker. We talk about her experience with mentoring, both being a mentor, and utilizing mentors. We also talk about public speaking, her move to Microsoft, and to Portland, and the Microsoft/GitHub merge.</p><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://www.recurse.com/" title="The Recurse Center" rel="nofollow">The Recurse Center</a></li><li><a href="https://hackernoon.com/the-best-career-advice-ive-received-so-far-is-never-turn-down-an-interview-7586ca5b7ef8" title="Why I joined Microsoft – Hacker Noon" rel="nofollow">Why I joined Microsoft – Hacker Noon</a></li><li><a href="https://getbootstrap.com/" title="Bootstrap · The most popular HTML, CSS, and JS library in the world." rel="nofollow">Bootstrap · The most popular HTML, CSS, and JS library in the world.</a></li><li><a href="https://twitter.com/holtbt/status/977419276251430912" title="Brian Holt on Twitter: " rel="nofollow">Brian Holt on Twitter: "“Fullstack” developer.… "</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Nina Zakharenko is a cloud developer advocate at Microsoft focusing on Python. She's also an excellent public speaker. We talk about her experience with mentoring, both being a mentor, and utilizing mentors. We also talk about public speaking, her move to Microsoft, and to Portland, and the Microsoft/GitHub merge.</p><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://www.recurse.com/" title="The Recurse Center" rel="nofollow">The Recurse Center</a></li><li><a href="https://hackernoon.com/the-best-career-advice-ive-received-so-far-is-never-turn-down-an-interview-7586ca5b7ef8" title="Why I joined Microsoft – Hacker Noon" rel="nofollow">Why I joined Microsoft – Hacker Noon</a></li><li><a href="https://getbootstrap.com/" title="Bootstrap · The most popular HTML, CSS, and JS library in the world." rel="nofollow">Bootstrap · The most popular HTML, CSS, and JS library in the world.</a></li><li><a href="https://twitter.com/holtbt/status/977419276251430912" title="Brian Holt on Twitter: " rel="nofollow">Brian Holt on Twitter: "“Fullstack” developer.… "</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sat, 21 Jul 2018 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/44.mp3" length="12984162" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1603</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Nina Zakharenko is a cloud developer advocate at Microsoft focusing on Python. She's also an excellent public speaker. We talk about her experience with mentoring, both being a mentor, and utilizing mentors. We also talk about public speaking, her move to Microsoft, and to Portland, and the Microsoft/GitHub merge.</p><p>Special Guest: Nina Zakharenko.</p><p>Links:</p><ul><li><a href="https://www.recurse.com/" title="The Recurse Center" rel="nofollow">The Recurse Center</a></li><li><a href="https://hackernoon.com/the-best-career-advice-ive-received-so-far-is-never-turn-down-an-interview-7586ca5b7ef8" title="Why I joined Microsoft – Hacker Noon" rel="nofollow">Why I joined Microsoft – Hacker Noon</a></li><li><a href="https://getbootstrap.com/" title="Bootstrap · The most popular HTML, CSS, and JS library in the world." rel="nofollow">Bootstrap · The most popular HTML, CSS, and JS library in the world.</a></li><li><a href="https://twitter.com/holtbt/status/977419276251430912" title="Brian Holt on Twitter: " rel="nofollow">Brian Holt on Twitter: "“Fullstack” developer.… "</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>mentoring, public speaking, developer advocate, Microsoft, GitHub</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>Preparing for Technical Talks with Kelsey Hightower - bonus episode</title>
      <itunes:episode>44</itunes:episode>
      <podcast:episode>44</podcast:episode>
      <itunes:title>Preparing for Technical Talks with Kelsey Hightower - bonus episode</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">d2ee0013-f5a9-4c2b-9461-f6c48ffbdfbc</guid>
      <link>https://pythontest.com/testandcode/episodes/preparing-for-technical-talks-with-kelsey-hightower-bonus-episode</link>
      <description>
        <![CDATA[<p>After I had wrapped up the interview with <a href="http://testandcode.com/43" rel="nofollow">Kelsey Hightower for episode 43</a>, I asked him one last question.</p>

<p>You see, I admire the his presentation style. <br>
So I asked him if he would share with me how he prepared for his presentations.</p>

<p>His answer is so thoughtful and makes so much sense, I couldn't keep it to myself.</p>

<p>I'm releasing this as a bonus mini-episode so that it's easy to refer back to the next time you or I have a chance to do a technical talk.</p><p>Special Guest: Kelsey Hightower.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>After I had wrapped up the interview with <a href="http://testandcode.com/43" rel="nofollow">Kelsey Hightower for episode 43</a>, I asked him one last question.</p>

<p>You see, I admire the his presentation style. <br>
So I asked him if he would share with me how he prepared for his presentations.</p>

<p>His answer is so thoughtful and makes so much sense, I couldn't keep it to myself.</p>

<p>I'm releasing this as a bonus mini-episode so that it's easy to refer back to the next time you or I have a chance to do a technical talk.</p><p>Special Guest: Kelsey Hightower.</p>]]>
      </content:encoded>
      <pubDate>Mon, 16 Jul 2018 22:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/44.mp3" length="4244255" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>511</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>After I had wrapped up the interview with <a href="http://testandcode.com/43" rel="nofollow">Kelsey Hightower for episode 43</a>, I asked him one last question.</p>

<p>You see, I admire the his presentation style. <br>
So I asked him if he would share with me how he prepared for his presentations.</p>

<p>His answer is so thoughtful and makes so much sense, I couldn't keep it to myself.</p>

<p>I'm releasing this as a bonus mini-episode so that it's easy to refer back to the next time you or I have a chance to do a technical talk.</p><p>Special Guest: Kelsey Hightower.</p>]]>
      </itunes:summary>
      <itunes:keywords>public speaking, technical presentations, talks</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>43: Kelsey Hightower - End to End &amp; Integration Testing</title>
      <itunes:episode>43</itunes:episode>
      <podcast:episode>43</podcast:episode>
      <itunes:title>43: Kelsey Hightower - End to End &amp; Integration Testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">4c0ea1b8-31a9-49ff-ab14-ef08fb3306eb</guid>
      <link>https://pythontest.com/testandcode/episodes/43-kelsey-hightower-end-to-end-integration-testing</link>
      <description>
        <![CDATA[<p>I first heard Kelsey speak during his 2017 PyCon keynote.<br>
He's an amazing speaker, and I knew right then I wanted to hear more about what he does and hear more of his story. </p>

<p>We discuss testing, of course, but we take it further and discuss:</p>

<ul>
<li>tests for large systems, like kubernetes</li>
<li>Testing in real world scenarios with all the configuration and everything</li>
<li>Becoming a complete engineer by thinking about the end to end flow from the users perspective</li>
<li>Learning from other roles, and the value of roles to allow focus and expertise</li>
<li>We even get into Chaos Engineering and testing live systems.</li>
</ul><p>Special Guest: Kelsey Hightower.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I first heard Kelsey speak during his 2017 PyCon keynote.<br>
He's an amazing speaker, and I knew right then I wanted to hear more about what he does and hear more of his story. </p>

<p>We discuss testing, of course, but we take it further and discuss:</p>

<ul>
<li>tests for large systems, like kubernetes</li>
<li>Testing in real world scenarios with all the configuration and everything</li>
<li>Becoming a complete engineer by thinking about the end to end flow from the users perspective</li>
<li>Learning from other roles, and the value of roles to allow focus and expertise</li>
<li>We even get into Chaos Engineering and testing live systems.</li>
</ul><p>Special Guest: Kelsey Hightower.</p>]]>
      </content:encoded>
      <pubDate>Thu, 05 Jul 2018 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/43.mp3" length="20221206" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2508</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I first heard Kelsey speak during his 2017 PyCon keynote.<br>
He's an amazing speaker, and I knew right then I wanted to hear more about what he does and hear more of his story. </p>

<p>We discuss testing, of course, but we take it further and discuss:</p>

<ul>
<li>tests for large systems, like kubernetes</li>
<li>Testing in real world scenarios with all the configuration and everything</li>
<li>Becoming a complete engineer by thinking about the end to end flow from the users perspective</li>
<li>Learning from other roles, and the value of roles to allow focus and expertise</li>
<li>We even get into Chaos Engineering and testing live systems.</li>
</ul><p>Special Guest: Kelsey Hightower.</p>]]>
      </itunes:summary>
      <itunes:keywords>kubernetes, distributed systems, network testing, chaos engineering,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>42: Using Automated Tests to Help Teach Python - Trey Hunner</title>
      <itunes:episode>42</itunes:episode>
      <podcast:episode>42</podcast:episode>
      <itunes:title>42: Using Automated Tests to Help Teach Python - Trey Hunner</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">db7bb17e-c25a-4ae0-890b-7f55bc291ad5</guid>
      <link>https://pythontest.com/testandcode/episodes/42-using-automated-tests-to-help-teach-python-trey-hunner</link>
      <description>
        <![CDATA[<p>This interview with Trey Hunner discusses his use of automated tests to help teach programming.</p>

<p>Automated testing is a huge part of developing great software. But many new developers don't get exposed to testing for quite a while. But this is changing.</p>

<p>New ways to teach programming include automated tests from the beginning.</p>

<p>Trey Hunner is one of the PSF directors and a Python and Django team trainer, and he has been using automated tests to help people learn Python.</p><p>Special Guest: Trey Hunner.</p><p>Links:</p><ul><li><a href="http://treyhunner.com/" title="Trey Hunner" rel="nofollow">Trey Hunner</a></li><li><a href="http://try.pythonmorsels.com/" title="Python Morsels - write better Python code" rel="nofollow">Python Morsels - write better Python code</a></li><li><a href="http://www.weeklypython.chat/" title="Trey's Weekly Python Chat" rel="nofollow">Trey's Weekly Python Chat</a></li><li><a href="http://truthful.technology/" title="Trey's Training business: Truthful Technology" rel="nofollow">Trey's Training business: Truthful Technology</a></li><li><a href="http://exercism.io/" title="exercism.io" rel="nofollow">exercism.io</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges " rel="nofollow">PyBites Code Challenges </a></li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This interview with Trey Hunner discusses his use of automated tests to help teach programming.</p>

<p>Automated testing is a huge part of developing great software. But many new developers don't get exposed to testing for quite a while. But this is changing.</p>

<p>New ways to teach programming include automated tests from the beginning.</p>

<p>Trey Hunner is one of the PSF directors and a Python and Django team trainer, and he has been using automated tests to help people learn Python.</p><p>Special Guest: Trey Hunner.</p><p>Links:</p><ul><li><a href="http://treyhunner.com/" title="Trey Hunner" rel="nofollow">Trey Hunner</a></li><li><a href="http://try.pythonmorsels.com/" title="Python Morsels - write better Python code" rel="nofollow">Python Morsels - write better Python code</a></li><li><a href="http://www.weeklypython.chat/" title="Trey's Weekly Python Chat" rel="nofollow">Trey's Weekly Python Chat</a></li><li><a href="http://truthful.technology/" title="Trey's Training business: Truthful Technology" rel="nofollow">Trey's Training business: Truthful Technology</a></li><li><a href="http://exercism.io/" title="exercism.io" rel="nofollow">exercism.io</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges " rel="nofollow">PyBites Code Challenges </a></li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 27 Jun 2018 21:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/42.mp3" length="28257179" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3512</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This interview with Trey Hunner discusses his use of automated tests to help teach programming.</p>

<p>Automated testing is a huge part of developing great software. But many new developers don't get exposed to testing for quite a while. But this is changing.</p>

<p>New ways to teach programming include automated tests from the beginning.</p>

<p>Trey Hunner is one of the PSF directors and a Python and Django team trainer, and he has been using automated tests to help people learn Python.</p><p>Special Guest: Trey Hunner.</p><p>Links:</p><ul><li><a href="http://treyhunner.com/" title="Trey Hunner" rel="nofollow">Trey Hunner</a></li><li><a href="http://try.pythonmorsels.com/" title="Python Morsels - write better Python code" rel="nofollow">Python Morsels - write better Python code</a></li><li><a href="http://www.weeklypython.chat/" title="Trey's Weekly Python Chat" rel="nofollow">Trey's Weekly Python Chat</a></li><li><a href="http://truthful.technology/" title="Trey's Training business: Truthful Technology" rel="nofollow">Trey's Training business: Truthful Technology</a></li><li><a href="http://exercism.io/" title="exercism.io" rel="nofollow">exercism.io</a></li><li><a href="https://codechalleng.es/" title="PyBites Code Challenges " rel="nofollow">PyBites Code Challenges </a></li><li><a href="https://checkio.org/" title="CheckiO" rel="nofollow">CheckiO</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://www.pythonmorsels.com/">Trey Hunner</podcast:person>
    </item>
    <item>
      <title>41: Testing in DevOps and Agile - Anthony Shaw</title>
      <itunes:episode>41</itunes:episode>
      <podcast:episode>41</podcast:episode>
      <itunes:title>41: Testing in DevOps and Agile - Anthony Shaw</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">848420df-9575-4472-95f5-239b3bf535ae</guid>
      <link>https://pythontest.com/testandcode/episodes/41-testing-in-devops-and-agile-anthony-shaw</link>
      <description>
        <![CDATA[<p>We talk with Anthony Shaw about some of the testing problems facing both DevOps teams, and Agile teams. We also talk about his recent pull request accepted into pytest.</p><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://tonybaloney.github.io/" title="Anthony Shaw on github.io" rel="nofollow">Anthony Shaw on github.io</a></li><li><a href="https://github.com/pytest-dev/pytest/pull/3331" title="Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest" rel="nofollow">Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>We talk with Anthony Shaw about some of the testing problems facing both DevOps teams, and Agile teams. We also talk about his recent pull request accepted into pytest.</p><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://tonybaloney.github.io/" title="Anthony Shaw on github.io" rel="nofollow">Anthony Shaw on github.io</a></li><li><a href="https://github.com/pytest-dev/pytest/pull/3331" title="Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest" rel="nofollow">Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 18 Apr 2018 00:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/41.mp3" length="21665188" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2688</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>We talk with Anthony Shaw about some of the testing problems facing both DevOps teams, and Agile teams. We also talk about his recent pull request accepted into pytest.</p><p>Special Guest: Anthony Shaw.</p><p>Links:</p><ul><li><a href="https://tonybaloney.github.io/" title="Anthony Shaw on github.io" rel="nofollow">Anthony Shaw on github.io</a></li><li><a href="https://github.com/pytest-dev/pytest/pull/3331" title="Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest" rel="nofollow">Support for the new builtin breakpoint function in Python 3.7 by tonybaloney · Pull Request #3331 · pytest-dev/pytest</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>40: On Podcasting - Adam Clark</title>
      <itunes:episode>40</itunes:episode>
      <podcast:episode>40</podcast:episode>
      <itunes:title>40: On Podcasting - Adam Clark</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">658acefb-de48-45b4-a789-056408398292</guid>
      <link>https://pythontest.com/testandcode/episodes/40-on-podcasting-adam-clark</link>
      <description>
        <![CDATA[<p>Adam is the host of <a href="https://thegentlymad.com/" rel="nofollow">The Gently Mad</a> podcast, and teaches the steps in creating and growing a podcast in his course <a href="https://irresistiblepodcasting.com" rel="nofollow">Irresistible Podcasting</a>.</p>

<p>He was one of the people who inspired Brian to get the Test &amp; Code podcast started in the first place. Brian took his course in 2015. Adam is in the process of updating the course, and building a community around it.</p>

<p><em>Warning: This may be an episode to listen to with headphones if you have kids around. There is swearing.</em></p>

<p>I wanted to get Adam's help to convince many of you to either come on this show as a guest, or start your own podcast. We did some of that. But we also cover a lot of issues like self doubt and the importance of community.</p><p>Special Guest: Adam Clark.</p><p>Links:</p><ul><li><a href="https://irresistiblepodcasting.com/" title="Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored" rel="nofollow">Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored</a></li><li><a href="https://thegentlymad.com/" title="The Gently Mad – Life, business &amp; entrepreneurship without the bullshit." rel="nofollow">The Gently Mad – Life, business &amp; entrepreneurship without the bullshit.</a></li><li><a href="http://avclark.com/about/" title="avclark.com" rel="nofollow">avclark.com</a></li><li><a href="https://buildandlaunch.net/1/" title="Justin Jacksons episodes on minimal podcasting | Build and Launch" rel="nofollow">Justin Jacksons episodes on minimal podcasting | Build and Launch</a></li><li><a href="http://5by5.tv/podcastmethod" title="Dan Benjamin's Podcast Method podcast" rel="nofollow">Dan Benjamin's Podcast Method podcast</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="https://amzn.to/2HqGM1W" title="ATR2100 Mic" rel="nofollow">ATR2100 Mic</a></li><li><a href="https://amzn.to/2EBtRan" title="Shure SM57 Mic" rel="nofollow">Shure SM57 Mic</a></li><li><a href="https://amzn.to/2qrif5J" title="Shure SM7B mic" rel="nofollow">Shure SM7B mic</a></li><li><a href="https://amzn.to/2GPOMbz" title="dbx 286s Microphone Preamp Processor" rel="nofollow">dbx 286s Microphone Preamp Processor</a></li><li><a href="https://amzn.to/2Hoadl2" title="Focusrite Scarlett 2i2 USB Audio Interface" rel="nofollow">Focusrite Scarlett 2i2 USB Audio Interface</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Adam is the host of <a href="https://thegentlymad.com/" rel="nofollow">The Gently Mad</a> podcast, and teaches the steps in creating and growing a podcast in his course <a href="https://irresistiblepodcasting.com" rel="nofollow">Irresistible Podcasting</a>.</p>

<p>He was one of the people who inspired Brian to get the Test &amp; Code podcast started in the first place. Brian took his course in 2015. Adam is in the process of updating the course, and building a community around it.</p>

<p><em>Warning: This may be an episode to listen to with headphones if you have kids around. There is swearing.</em></p>

<p>I wanted to get Adam's help to convince many of you to either come on this show as a guest, or start your own podcast. We did some of that. But we also cover a lot of issues like self doubt and the importance of community.</p><p>Special Guest: Adam Clark.</p><p>Links:</p><ul><li><a href="https://irresistiblepodcasting.com/" title="Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored" rel="nofollow">Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored</a></li><li><a href="https://thegentlymad.com/" title="The Gently Mad – Life, business &amp; entrepreneurship without the bullshit." rel="nofollow">The Gently Mad – Life, business &amp; entrepreneurship without the bullshit.</a></li><li><a href="http://avclark.com/about/" title="avclark.com" rel="nofollow">avclark.com</a></li><li><a href="https://buildandlaunch.net/1/" title="Justin Jacksons episodes on minimal podcasting | Build and Launch" rel="nofollow">Justin Jacksons episodes on minimal podcasting | Build and Launch</a></li><li><a href="http://5by5.tv/podcastmethod" title="Dan Benjamin's Podcast Method podcast" rel="nofollow">Dan Benjamin's Podcast Method podcast</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="https://amzn.to/2HqGM1W" title="ATR2100 Mic" rel="nofollow">ATR2100 Mic</a></li><li><a href="https://amzn.to/2EBtRan" title="Shure SM57 Mic" rel="nofollow">Shure SM57 Mic</a></li><li><a href="https://amzn.to/2qrif5J" title="Shure SM7B mic" rel="nofollow">Shure SM7B mic</a></li><li><a href="https://amzn.to/2GPOMbz" title="dbx 286s Microphone Preamp Processor" rel="nofollow">dbx 286s Microphone Preamp Processor</a></li><li><a href="https://amzn.to/2Hoadl2" title="Focusrite Scarlett 2i2 USB Audio Interface" rel="nofollow">Focusrite Scarlett 2i2 USB Audio Interface</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 10 Apr 2018 14:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/40.mp3" length="23584550" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2928</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Adam is the host of <a href="https://thegentlymad.com/" rel="nofollow">The Gently Mad</a> podcast, and teaches the steps in creating and growing a podcast in his course <a href="https://irresistiblepodcasting.com" rel="nofollow">Irresistible Podcasting</a>.</p>

<p>He was one of the people who inspired Brian to get the Test &amp; Code podcast started in the first place. Brian took his course in 2015. Adam is in the process of updating the course, and building a community around it.</p>

<p><em>Warning: This may be an episode to listen to with headphones if you have kids around. There is swearing.</em></p>

<p>I wanted to get Adam's help to convince many of you to either come on this show as a guest, or start your own podcast. We did some of that. But we also cover a lot of issues like self doubt and the importance of community.</p><p>Special Guest: Adam Clark.</p><p>Links:</p><ul><li><a href="https://irresistiblepodcasting.com/" title="Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored" rel="nofollow">Irresistible Podcasting – A Step by Step Guide to Launching and Growing a Podcast that Can’t Be Ignored</a></li><li><a href="https://thegentlymad.com/" title="The Gently Mad – Life, business &amp; entrepreneurship without the bullshit." rel="nofollow">The Gently Mad – Life, business &amp; entrepreneurship without the bullshit.</a></li><li><a href="http://avclark.com/about/" title="avclark.com" rel="nofollow">avclark.com</a></li><li><a href="https://buildandlaunch.net/1/" title="Justin Jacksons episodes on minimal podcasting | Build and Launch" rel="nofollow">Justin Jacksons episodes on minimal podcasting | Build and Launch</a></li><li><a href="http://5by5.tv/podcastmethod" title="Dan Benjamin's Podcast Method podcast" rel="nofollow">Dan Benjamin's Podcast Method podcast</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="https://amzn.to/2HqGM1W" title="ATR2100 Mic" rel="nofollow">ATR2100 Mic</a></li><li><a href="https://amzn.to/2EBtRan" title="Shure SM57 Mic" rel="nofollow">Shure SM57 Mic</a></li><li><a href="https://amzn.to/2qrif5J" title="Shure SM7B mic" rel="nofollow">Shure SM7B mic</a></li><li><a href="https://amzn.to/2GPOMbz" title="dbx 286s Microphone Preamp Processor" rel="nofollow">dbx 286s Microphone Preamp Processor</a></li><li><a href="https://amzn.to/2Hoadl2" title="Focusrite Scarlett 2i2 USB Audio Interface" rel="nofollow">Focusrite Scarlett 2i2 USB Audio Interface</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>Yes</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>39: Thorough software testing for critical features</title>
      <itunes:episode>39</itunes:episode>
      <podcast:episode>39</podcast:episode>
      <itunes:title>39: Thorough software testing for critical features</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">aa7cbdc5-6b08-4099-9218-c24aae0263da</guid>
      <link>https://pythontest.com/testandcode/episodes/39-thorough-software-testing-for-critical-features</link>
      <description>
        <![CDATA[<p>Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.</p>

<p>However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.</p>

<p>In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest.</p>

<p>The techniques covered are:</p>

<ul>
<li>equivalence partitioning</li>
<li>boundary value analysis</li>
<li>decision tables </li>
</ul>

<p>We discuss how to use these to generate test cases for a new list filter functionality in the cards application.</p>

<p>The resulting tests:</p>

<ul>
<li>1 UI test to make sure the options are able to be passed in correctly.</li>
<li>1 small parametrized test function with 16 single line parameter sets representing the different test cases.</li>
</ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards/tree/v0.1.11" title="github cards project (version 0.1.11)" rel="nofollow">github cards project (version 0.1.11)</a></li><li><a href="https://en.wikipedia.org/wiki/Equivalence_partitioning" title="Equivalence partitioning - Wikipedia" rel="nofollow">Equivalence partitioning - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Boundary-value_analysis" title="Boundary-value analysis - Wikipedia" rel="nofollow">Boundary-value analysis - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Decision_table" title="Decision table - Wikipedia" rel="nofollow">Decision table - Wikipedia</a></li><li><a href="http://testandcode.com/slack" title="Slack Channel for Test and Code" rel="nofollow">Slack Channel for Test and Code</a></li><li><a href="http://dj-yanic.com/" title="DJ YANiC - The awesome listener that contributed our theme music." rel="nofollow">DJ YANiC - The awesome listener that contributed our theme music.</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.</p>

<p>However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.</p>

<p>In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest.</p>

<p>The techniques covered are:</p>

<ul>
<li>equivalence partitioning</li>
<li>boundary value analysis</li>
<li>decision tables </li>
</ul>

<p>We discuss how to use these to generate test cases for a new list filter functionality in the cards application.</p>

<p>The resulting tests:</p>

<ul>
<li>1 UI test to make sure the options are able to be passed in correctly.</li>
<li>1 small parametrized test function with 16 single line parameter sets representing the different test cases.</li>
</ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards/tree/v0.1.11" title="github cards project (version 0.1.11)" rel="nofollow">github cards project (version 0.1.11)</a></li><li><a href="https://en.wikipedia.org/wiki/Equivalence_partitioning" title="Equivalence partitioning - Wikipedia" rel="nofollow">Equivalence partitioning - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Boundary-value_analysis" title="Boundary-value analysis - Wikipedia" rel="nofollow">Boundary-value analysis - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Decision_table" title="Decision table - Wikipedia" rel="nofollow">Decision table - Wikipedia</a></li><li><a href="http://testandcode.com/slack" title="Slack Channel for Test and Code" rel="nofollow">Slack Channel for Test and Code</a></li><li><a href="http://dj-yanic.com/" title="DJ YANiC - The awesome listener that contributed our theme music." rel="nofollow">DJ YANiC - The awesome listener that contributed our theme music.</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 29 Mar 2018 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/39.mp3" length="9278481" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1140</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.</p>

<p>However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.</p>

<p>In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest.</p>

<p>The techniques covered are:</p>

<ul>
<li>equivalence partitioning</li>
<li>boundary value analysis</li>
<li>decision tables </li>
</ul>

<p>We discuss how to use these to generate test cases for a new list filter functionality in the cards application.</p>

<p>The resulting tests:</p>

<ul>
<li>1 UI test to make sure the options are able to be passed in correctly.</li>
<li>1 small parametrized test function with 16 single line parameter sets representing the different test cases.</li>
</ul><p>Links:</p><ul><li><a href="https://github.com/okken/cards/tree/v0.1.11" title="github cards project (version 0.1.11)" rel="nofollow">github cards project (version 0.1.11)</a></li><li><a href="https://en.wikipedia.org/wiki/Equivalence_partitioning" title="Equivalence partitioning - Wikipedia" rel="nofollow">Equivalence partitioning - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Boundary-value_analysis" title="Boundary-value analysis - Wikipedia" rel="nofollow">Boundary-value analysis - Wikipedia</a></li><li><a href="https://en.wikipedia.org/wiki/Decision_table" title="Decision table - Wikipedia" rel="nofollow">Decision table - Wikipedia</a></li><li><a href="http://testandcode.com/slack" title="Slack Channel for Test and Code" rel="nofollow">Slack Channel for Test and Code</a></li><li><a href="http://dj-yanic.com/" title="DJ YANiC - The awesome listener that contributed our theme music." rel="nofollow">DJ YANiC - The awesome listener that contributed our theme music.</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>38: Prioritize software tests with RCRCRC</title>
      <itunes:episode>38</itunes:episode>
      <podcast:episode>38</podcast:episode>
      <itunes:title>38: Prioritize software tests with RCRCRC</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">cefb6ff7-ad1d-4a8a-b40a-2c849065f18d</guid>
      <link>https://pythontest.com/testandcode/episodes/38-prioritize-software-tests-with-rcrcrc</link>
      <description>
        <![CDATA[<p>RCRCRC was developed by Karen Nicole Johnson.</p>

<p>In this episode we discuss the mnemonic/heuristic and use it to prioritize tests for the cards application.</p>

<ul>
<li>Recent: new features, new areas of code</li>
<li>Core: essential functions must continue to work, your products USPs (Unique Selling Propositions)</li>
<li>Risk: some areas of an application pose more risk, perhaps areas important to customers but not used regularly by the development team.</li>
<li>Configuration sensitive: code that’s dependent on environment settings or operating system specifics</li>
<li>Repaired: tests to reproduce bugs, tests for functionality that has been recently repaired.</li>
<li>Chronic: functionality that frequently breaks</li>
</ul><p>Links:</p><ul><li><a href="http://karennicolejohnson.com/2009/11/a-heuristic-for-regression-testing/" title="A heuristic for regression testing, by Karen Nicole Johnson" rel="nofollow">A heuristic for regression testing, by Karen Nicole Johnson</a></li><li><a href="https://twitter.com/karennjohnson" title="@karennjohnson" rel="nofollow">@karennjohnson</a></li><li><a href="https://github.com/okken/cards" title="cards on github" rel="nofollow">cards on github</a></li><li><a href="https://travis-ci.org/okken/cards" title="cards on Travis CI" rel="nofollow">cards on Travis CI</a></li><li><a href="https://ci.appveyor.com/project/okken/cards" title="cards on AppVeyor" rel="nofollow">cards on AppVeyor</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>RCRCRC was developed by Karen Nicole Johnson.</p>

<p>In this episode we discuss the mnemonic/heuristic and use it to prioritize tests for the cards application.</p>

<ul>
<li>Recent: new features, new areas of code</li>
<li>Core: essential functions must continue to work, your products USPs (Unique Selling Propositions)</li>
<li>Risk: some areas of an application pose more risk, perhaps areas important to customers but not used regularly by the development team.</li>
<li>Configuration sensitive: code that’s dependent on environment settings or operating system specifics</li>
<li>Repaired: tests to reproduce bugs, tests for functionality that has been recently repaired.</li>
<li>Chronic: functionality that frequently breaks</li>
</ul><p>Links:</p><ul><li><a href="http://karennicolejohnson.com/2009/11/a-heuristic-for-regression-testing/" title="A heuristic for regression testing, by Karen Nicole Johnson" rel="nofollow">A heuristic for regression testing, by Karen Nicole Johnson</a></li><li><a href="https://twitter.com/karennjohnson" title="@karennjohnson" rel="nofollow">@karennjohnson</a></li><li><a href="https://github.com/okken/cards" title="cards on github" rel="nofollow">cards on github</a></li><li><a href="https://travis-ci.org/okken/cards" title="cards on Travis CI" rel="nofollow">cards on Travis CI</a></li><li><a href="https://ci.appveyor.com/project/okken/cards" title="cards on AppVeyor" rel="nofollow">cards on AppVeyor</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 13 Mar 2018 11:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/38.mp3" length="5553409" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>674</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>RCRCRC was developed by Karen Nicole Johnson.</p>

<p>In this episode we discuss the mnemonic/heuristic and use it to prioritize tests for the cards application.</p>

<ul>
<li>Recent: new features, new areas of code</li>
<li>Core: essential functions must continue to work, your products USPs (Unique Selling Propositions)</li>
<li>Risk: some areas of an application pose more risk, perhaps areas important to customers but not used regularly by the development team.</li>
<li>Configuration sensitive: code that’s dependent on environment settings or operating system specifics</li>
<li>Repaired: tests to reproduce bugs, tests for functionality that has been recently repaired.</li>
<li>Chronic: functionality that frequently breaks</li>
</ul><p>Links:</p><ul><li><a href="http://karennicolejohnson.com/2009/11/a-heuristic-for-regression-testing/" title="A heuristic for regression testing, by Karen Nicole Johnson" rel="nofollow">A heuristic for regression testing, by Karen Nicole Johnson</a></li><li><a href="https://twitter.com/karennjohnson" title="@karennjohnson" rel="nofollow">@karennjohnson</a></li><li><a href="https://github.com/okken/cards" title="cards on github" rel="nofollow">cards on github</a></li><li><a href="https://travis-ci.org/okken/cards" title="cards on Travis CI" rel="nofollow">cards on Travis CI</a></li><li><a href="https://ci.appveyor.com/project/okken/cards" title="cards on AppVeyor" rel="nofollow">cards on AppVeyor</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>37: What tests to write first</title>
      <itunes:episode>37</itunes:episode>
      <podcast:episode>37</podcast:episode>
      <itunes:title>37: What tests to write first</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">182af42c-2371-4e56-a5bb-903643b177b9</guid>
      <link>https://pythontest.com/testandcode/episodes/37-what-tests-to-write-first</link>
      <description>
        <![CDATA[<p>This episode starts down the path of test strategy with the first tests to write in either a legacy system or a project just getting off it's feet.</p>

<p>We cover:</p>

<ul>
<li>My approach to testing existing systems.</li>
<li>Put names to strategies so we can refer to them later.</li>
<li>Explain the strategies in general terms and explain why they are useful.</li>
<li>Discuss how these strategies are used in an example project. (The code is available on github).</li>
</ul>

<p>Strategies covered today:</p>

<ul>
<li>Dog Fooding</li>
<li>Exploratory Testing</li>
<li>Tracer Bullet Tests</li>
<li>Act Like A Customer (ALAC) Tests</li>
<li>Manual Procedures</li>
<li>Initial automated tests at 2 levels, API and UI.</li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This episode starts down the path of test strategy with the first tests to write in either a legacy system or a project just getting off it's feet.</p>

<p>We cover:</p>

<ul>
<li>My approach to testing existing systems.</li>
<li>Put names to strategies so we can refer to them later.</li>
<li>Explain the strategies in general terms and explain why they are useful.</li>
<li>Discuss how these strategies are used in an example project. (The code is available on github).</li>
</ul>

<p>Strategies covered today:</p>

<ul>
<li>Dog Fooding</li>
<li>Exploratory Testing</li>
<li>Tracer Bullet Tests</li>
<li>Act Like A Customer (ALAC) Tests</li>
<li>Manual Procedures</li>
<li>Initial automated tests at 2 levels, API and UI.</li>
</ul>]]>
      </content:encoded>
      <pubDate>Thu, 08 Mar 2018 00:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/37.mp3" length="10203969" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1256</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This episode starts down the path of test strategy with the first tests to write in either a legacy system or a project just getting off it's feet.</p>

<p>We cover:</p>

<ul>
<li>My approach to testing existing systems.</li>
<li>Put names to strategies so we can refer to them later.</li>
<li>Explain the strategies in general terms and explain why they are useful.</li>
<li>Discuss how these strategies are used in an example project. (The code is available on github).</li>
</ul>

<p>Strategies covered today:</p>

<ul>
<li>Dog Fooding</li>
<li>Exploratory Testing</li>
<li>Tracer Bullet Tests</li>
<li>Act Like A Customer (ALAC) Tests</li>
<li>Manual Procedures</li>
<li>Initial automated tests at 2 levels, API and UI.</li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>36: Stephanie Hurlburt - Mentoring and Open Office Hours</title>
      <itunes:episode>36</itunes:episode>
      <podcast:episode>36</podcast:episode>
      <itunes:title>36: Stephanie Hurlburt - Mentoring and Open Office Hours</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6fc71a8a-8d25-4b97-bbd1-02cc8b4a6c66</guid>
      <link>https://pythontest.com/testandcode/episodes/36-stephanie-hurlburt-mentoring-and-open-office-hours</link>
      <description>
        <![CDATA[<p>Stephanie is a co-founder and graphics engineer at Binomial.</p>

<p>She works on Basis, an image compressor, and has customers in games, video, mapping, and any application that has lots of image data.</p>

<p>Stephanie has also been encouraging experienced engineers to open up their twitter DMs to questions from anyone, to help mentor people not only in technical questions, but in career questions as well.</p>

<p>She also sets aside some time to mentor people through skype when written form just doesn't cut it.</p>

<p>That's the primary reason I have Stephanie on today, to talk about mentoring and open office hours.</p>

<p>But we also talk about</p>

<ul>
<li>Binomial</li>
<li>image compression</li>
<li>texture mapping</li>
<li>the use of both manual and automated testing for complex systems</li>
<li>sane work hours</li>
<li>work life balance</li>
<li>and how long hours have led her to the opinions she holds today</li>
</ul><p>Special Guest: Stephanie Hurlburt.</p><p>Links:</p><ul><li><a href="http://www.binomial.info/" title="Binomial" rel="nofollow">Binomial</a></li><li><a href="http://stephaniehurlburt.com/blog/2016/11/14/list-of-engineers-willing-to-mentor-you" title="List of Engineers Willing to Mentor You — Stephanie Hurlburt" rel="nofollow">List of Engineers Willing to Mentor You — Stephanie Hurlburt</a></li><li><a href="https://twitter.com/sehurlburt" title="Stephanie Hurlburt (@sehurlburt) | Twitter" rel="nofollow">Stephanie Hurlburt (@sehurlburt) | Twitter</a></li><li><a href="http://pythontesting.net/slack/" title="Slack - Python Testing / Test &amp; Code" rel="nofollow">Slack - Python Testing / Test &amp; Code</a> — A super nice group of folks who are great at answering test related questions.</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Stephanie is a co-founder and graphics engineer at Binomial.</p>

<p>She works on Basis, an image compressor, and has customers in games, video, mapping, and any application that has lots of image data.</p>

<p>Stephanie has also been encouraging experienced engineers to open up their twitter DMs to questions from anyone, to help mentor people not only in technical questions, but in career questions as well.</p>

<p>She also sets aside some time to mentor people through skype when written form just doesn't cut it.</p>

<p>That's the primary reason I have Stephanie on today, to talk about mentoring and open office hours.</p>

<p>But we also talk about</p>

<ul>
<li>Binomial</li>
<li>image compression</li>
<li>texture mapping</li>
<li>the use of both manual and automated testing for complex systems</li>
<li>sane work hours</li>
<li>work life balance</li>
<li>and how long hours have led her to the opinions she holds today</li>
</ul><p>Special Guest: Stephanie Hurlburt.</p><p>Links:</p><ul><li><a href="http://www.binomial.info/" title="Binomial" rel="nofollow">Binomial</a></li><li><a href="http://stephaniehurlburt.com/blog/2016/11/14/list-of-engineers-willing-to-mentor-you" title="List of Engineers Willing to Mentor You — Stephanie Hurlburt" rel="nofollow">List of Engineers Willing to Mentor You — Stephanie Hurlburt</a></li><li><a href="https://twitter.com/sehurlburt" title="Stephanie Hurlburt (@sehurlburt) | Twitter" rel="nofollow">Stephanie Hurlburt (@sehurlburt) | Twitter</a></li><li><a href="http://pythontesting.net/slack/" title="Slack - Python Testing / Test &amp; Code" rel="nofollow">Slack - Python Testing / Test &amp; Code</a> — A super nice group of folks who are great at answering test related questions.</li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 13 Feb 2018 00:15:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/36.mp3" length="15213988" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1882</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Stephanie is a co-founder and graphics engineer at Binomial.</p>

<p>She works on Basis, an image compressor, and has customers in games, video, mapping, and any application that has lots of image data.</p>

<p>Stephanie has also been encouraging experienced engineers to open up their twitter DMs to questions from anyone, to help mentor people not only in technical questions, but in career questions as well.</p>

<p>She also sets aside some time to mentor people through skype when written form just doesn't cut it.</p>

<p>That's the primary reason I have Stephanie on today, to talk about mentoring and open office hours.</p>

<p>But we also talk about</p>

<ul>
<li>Binomial</li>
<li>image compression</li>
<li>texture mapping</li>
<li>the use of both manual and automated testing for complex systems</li>
<li>sane work hours</li>
<li>work life balance</li>
<li>and how long hours have led her to the opinions she holds today</li>
</ul><p>Special Guest: Stephanie Hurlburt.</p><p>Links:</p><ul><li><a href="http://www.binomial.info/" title="Binomial" rel="nofollow">Binomial</a></li><li><a href="http://stephaniehurlburt.com/blog/2016/11/14/list-of-engineers-willing-to-mentor-you" title="List of Engineers Willing to Mentor You — Stephanie Hurlburt" rel="nofollow">List of Engineers Willing to Mentor You — Stephanie Hurlburt</a></li><li><a href="https://twitter.com/sehurlburt" title="Stephanie Hurlburt (@sehurlburt) | Twitter" rel="nofollow">Stephanie Hurlburt (@sehurlburt) | Twitter</a></li><li><a href="http://pythontesting.net/slack/" title="Slack - Python Testing / Test &amp; Code" rel="nofollow">Slack - Python Testing / Test &amp; Code</a> — A super nice group of folks who are great at answering test related questions.</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>35: Continuing Education and Certificate Programs at UW</title>
      <itunes:episode>35</itunes:episode>
      <podcast:episode>35</podcast:episode>
      <itunes:title>35: Continuing Education and Certificate Programs at UW</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">890e4ef8-6624-4b9f-b46e-e1be986313c6</guid>
      <link>https://pythontest.com/testandcode/episodes/35-continuing-education-and-certificate-programs-at-uw</link>
      <description>
        <![CDATA[<p>There are lots of ways to up your skills.<br>
Of course, I'm a big fan of learning through reading books, such as upping your testing skills by reading Python Testing with pytest.<br>
And then there are online learning systems and MOOCs.</p>

<p>At the other end of the spectrum is a full blown university degree.</p>

<p>One option kind of in the middle is continuing education programs available through some universities, such as University of Washington.</p>

<p>To discuss this option with me in more depth, we've got Andrew Hoover, <br>
Senior Director, Program Strategy, University of Washington Continuum College</p><p>Special Guest: Andrew Hoover.</p><p>Links:</p><ul><li><a href="https://www.pce.uw.edu/" title="UW Professional &amp; Continuing Education" rel="nofollow">UW Professional &amp; Continuing Education</a></li><li><a href="https://www.pce.uw.edu/career-accelerator-certificates" title="UW Career Accelerator Certificates" rel="nofollow">UW Career Accelerator Certificates</a></li><li><a href="https://www.pce.uw.edu/certificates/data-analytics-techniques-for-decision-making" title="Certificate in Data Analytics" rel="nofollow">Certificate in Data Analytics</a></li><li><a href="https://www.pce.uw.edu/certificates/data-science" title="Certificate in Data Science" rel="nofollow">Certificate in Data Science</a></li><li><a href="https://www.pce.uw.edu/certificates/machine-learning" title="Certificate in Machine Learning" rel="nofollow">Certificate in Machine Learning</a></li><li><a href="https://www.pce.uw.edu/certificates/project-management" title="Certificate in Project Management" rel="nofollow">Certificate in Project Management</a></li><li><a href="https://www.pce.uw.edu/certificates/python-programming" title="Certificate in Python Programming" rel="nofollow">Certificate in Python Programming</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>There are lots of ways to up your skills.<br>
Of course, I'm a big fan of learning through reading books, such as upping your testing skills by reading Python Testing with pytest.<br>
And then there are online learning systems and MOOCs.</p>

<p>At the other end of the spectrum is a full blown university degree.</p>

<p>One option kind of in the middle is continuing education programs available through some universities, such as University of Washington.</p>

<p>To discuss this option with me in more depth, we've got Andrew Hoover, <br>
Senior Director, Program Strategy, University of Washington Continuum College</p><p>Special Guest: Andrew Hoover.</p><p>Links:</p><ul><li><a href="https://www.pce.uw.edu/" title="UW Professional &amp; Continuing Education" rel="nofollow">UW Professional &amp; Continuing Education</a></li><li><a href="https://www.pce.uw.edu/career-accelerator-certificates" title="UW Career Accelerator Certificates" rel="nofollow">UW Career Accelerator Certificates</a></li><li><a href="https://www.pce.uw.edu/certificates/data-analytics-techniques-for-decision-making" title="Certificate in Data Analytics" rel="nofollow">Certificate in Data Analytics</a></li><li><a href="https://www.pce.uw.edu/certificates/data-science" title="Certificate in Data Science" rel="nofollow">Certificate in Data Science</a></li><li><a href="https://www.pce.uw.edu/certificates/machine-learning" title="Certificate in Machine Learning" rel="nofollow">Certificate in Machine Learning</a></li><li><a href="https://www.pce.uw.edu/certificates/project-management" title="Certificate in Project Management" rel="nofollow">Certificate in Project Management</a></li><li><a href="https://www.pce.uw.edu/certificates/python-programming" title="Certificate in Python Programming" rel="nofollow">Certificate in Python Programming</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 01 Feb 2018 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/35.mp3" length="12312600" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1519</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>There are lots of ways to up your skills.<br>
Of course, I'm a big fan of learning through reading books, such as upping your testing skills by reading Python Testing with pytest.<br>
And then there are online learning systems and MOOCs.</p>

<p>At the other end of the spectrum is a full blown university degree.</p>

<p>One option kind of in the middle is continuing education programs available through some universities, such as University of Washington.</p>

<p>To discuss this option with me in more depth, we've got Andrew Hoover, <br>
Senior Director, Program Strategy, University of Washington Continuum College</p><p>Special Guest: Andrew Hoover.</p><p>Links:</p><ul><li><a href="https://www.pce.uw.edu/" title="UW Professional &amp; Continuing Education" rel="nofollow">UW Professional &amp; Continuing Education</a></li><li><a href="https://www.pce.uw.edu/career-accelerator-certificates" title="UW Career Accelerator Certificates" rel="nofollow">UW Career Accelerator Certificates</a></li><li><a href="https://www.pce.uw.edu/certificates/data-analytics-techniques-for-decision-making" title="Certificate in Data Analytics" rel="nofollow">Certificate in Data Analytics</a></li><li><a href="https://www.pce.uw.edu/certificates/data-science" title="Certificate in Data Science" rel="nofollow">Certificate in Data Science</a></li><li><a href="https://www.pce.uw.edu/certificates/machine-learning" title="Certificate in Machine Learning" rel="nofollow">Certificate in Machine Learning</a></li><li><a href="https://www.pce.uw.edu/certificates/project-management" title="Certificate in Project Management" rel="nofollow">Certificate in Project Management</a></li><li><a href="https://www.pce.uw.edu/certificates/python-programming" title="Certificate in Python Programming" rel="nofollow">Certificate in Python Programming</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>34: TDD and Test First</title>
      <itunes:episode>34</itunes:episode>
      <podcast:episode>34</podcast:episode>
      <itunes:title>34: TDD and Test First</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">2ca0f73f-2f9f-4238-8f39-805faa406910</guid>
      <link>https://pythontest.com/testandcode/episodes/34-tdd-and-test-first</link>
      <description>
        <![CDATA[<p>An in depth discussion of Test Driven Development (TDD) should include a discussion of Test First. So that's where we start.</p>

<ul>
<li>Why write tests first?</li>
<li>How do you know what tests to write?</li>
<li>What are the steps for test first?</li>
<li>Isn't this just TDD?</li>
<li>Functional Tests vs Unit Tests</li>
</ul><p>Links:</p><ul><li><a href="http://pythontesting.net/agile/test-first-programming/" title="Test First Programming / Test First Development - Python Testing" rel="nofollow">Test First Programming / Test First Development - Python Testing</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="http://testandcode.com/23" title="Episode 23: Lessons about testing and TDD from Kent Beck" rel="nofollow">Episode 23: Lessons about testing and TDD from Kent Beck</a></li><li><a href="https://talkpython.fm/episodes/show/145/2017-python-year-in-review" title="Talk Python, Episode #145 2017 Python Year in Review" rel="nofollow">Talk Python, Episode #145 2017 Python Year in Review</a></li><li><a href="https://us.pycon.org/2018/" title="PyCon 2018 in Cleveland, Ohio | May 9-17" rel="nofollow">PyCon 2018 in Cleveland, Ohio | May 9-17</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="http://amzn.to/2C2gvUa" title="Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books" rel="nofollow">Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>An in depth discussion of Test Driven Development (TDD) should include a discussion of Test First. So that's where we start.</p>

<ul>
<li>Why write tests first?</li>
<li>How do you know what tests to write?</li>
<li>What are the steps for test first?</li>
<li>Isn't this just TDD?</li>
<li>Functional Tests vs Unit Tests</li>
</ul><p>Links:</p><ul><li><a href="http://pythontesting.net/agile/test-first-programming/" title="Test First Programming / Test First Development - Python Testing" rel="nofollow">Test First Programming / Test First Development - Python Testing</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="http://testandcode.com/23" title="Episode 23: Lessons about testing and TDD from Kent Beck" rel="nofollow">Episode 23: Lessons about testing and TDD from Kent Beck</a></li><li><a href="https://talkpython.fm/episodes/show/145/2017-python-year-in-review" title="Talk Python, Episode #145 2017 Python Year in Review" rel="nofollow">Talk Python, Episode #145 2017 Python Year in Review</a></li><li><a href="https://us.pycon.org/2018/" title="PyCon 2018 in Cleveland, Ohio | May 9-17" rel="nofollow">PyCon 2018 in Cleveland, Ohio | May 9-17</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="http://amzn.to/2C2gvUa" title="Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books" rel="nofollow">Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books</a></li></ul>]]>
      </content:encoded>
      <pubDate>Sun, 31 Dec 2017 16:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/34.mp3" length="12167971" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1501</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>An in depth discussion of Test Driven Development (TDD) should include a discussion of Test First. So that's where we start.</p>

<ul>
<li>Why write tests first?</li>
<li>How do you know what tests to write?</li>
<li>What are the steps for test first?</li>
<li>Isn't this just TDD?</li>
<li>Functional Tests vs Unit Tests</li>
</ul><p>Links:</p><ul><li><a href="http://pythontesting.net/agile/test-first-programming/" title="Test First Programming / Test First Development - Python Testing" rel="nofollow">Test First Programming / Test First Development - Python Testing</a></li><li><a href="http://pythontesting.net/agile/is-tdd-dead/" title="My reaction to " rel="nofollow">My reaction to "Is TDD Dead?" - Python Testing</a></li><li><a href="http://testandcode.com/23" title="Episode 23: Lessons about testing and TDD from Kent Beck" rel="nofollow">Episode 23: Lessons about testing and TDD from Kent Beck</a></li><li><a href="https://talkpython.fm/episodes/show/145/2017-python-year-in-review" title="Talk Python, Episode #145 2017 Python Year in Review" rel="nofollow">Talk Python, Episode #145 2017 Python Year in Review</a></li><li><a href="https://us.pycon.org/2018/" title="PyCon 2018 in Cleveland, Ohio | May 9-17" rel="nofollow">PyCon 2018 in Cleveland, Ohio | May 9-17</a></li><li><a href="https://pythonbytes.fm/" title="Python Bytes Podcast" rel="nofollow">Python Bytes Podcast</a></li><li><a href="http://amzn.to/2C2gvUa" title="Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books" rel="nofollow">Python Testing with pytest: Simple, Rapid, Effective, and Scalable: Brian Okken: 9781680502404: Amazon.com: Books</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>33: Katharine Jarmul - Testing in Data Science</title>
      <itunes:episode>33</itunes:episode>
      <podcast:episode>33</podcast:episode>
      <itunes:title>33: Katharine Jarmul - Testing in Data Science</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">436ba191-dc40-4df7-8007-121181da59cf</guid>
      <link>https://pythontest.com/testandcode/episodes/33-katharine-jarmul-testing-in-data-science</link>
      <description>
        <![CDATA[<p>A discussion with Katharine Jarmul, aka kjam, about some of the challenges of data science with respect to testing.</p>

<p>Some of the topics we discuss:</p>

<ul>
<li>experimentation vs testing</li>
<li>testing pipelines and pipeline changes</li>
<li>automating data validation</li>
<li>property based testing</li>
<li>schema validation and detecting schema changes</li>
<li>using unit test techniques to test data pipeline stages</li>
<li>testing nodes and transitions in DAGs</li>
<li>testing expected and unexpected data</li>
<li>missing data and non-signals</li>
<li>corrupting a dataset with noise</li>
<li>fuzz testing for both data pipelines and web APIs</li>
<li>datafuzz</li>
<li>hypothesis</li>
<li>testing internal interfaces</li>
<li>documenting and sharing domain expertise to build good reasonableness </li>
<li>intermediary data and stages </li>
<li>neural networks</li>
<li>speaking at conferences</li>
</ul><p>Special Guest: Katharine Jarmul.</p><p>Links:</p><ul><li><a href="https://twitter.com/kjam" title="@kjam on Twitter" rel="nofollow">@kjam on Twitter</a> — Data Magic and Computer Sorcery</li><li><a href="http://kjamistan.com/" title="Kjamistan: Data Science" rel="nofollow">Kjamistan: Data Science</a></li><li><a href="https://datafuzz.readthedocs.io/en/latest/" title="datafuzz’s Python library" rel="nofollow">datafuzz’s Python library</a> — The goal of datafuzz is to give you the ability to test your data science code and models with BAD data.</li><li><a href="https://hypothesis.readthedocs.io/en/latest/" title="Hypothesis Python library" rel="nofollow">Hypothesis Python library</a> — Hypothesis is a Python library for finding edge cases in your code you wouldn’t have thought to look for.</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A discussion with Katharine Jarmul, aka kjam, about some of the challenges of data science with respect to testing.</p>

<p>Some of the topics we discuss:</p>

<ul>
<li>experimentation vs testing</li>
<li>testing pipelines and pipeline changes</li>
<li>automating data validation</li>
<li>property based testing</li>
<li>schema validation and detecting schema changes</li>
<li>using unit test techniques to test data pipeline stages</li>
<li>testing nodes and transitions in DAGs</li>
<li>testing expected and unexpected data</li>
<li>missing data and non-signals</li>
<li>corrupting a dataset with noise</li>
<li>fuzz testing for both data pipelines and web APIs</li>
<li>datafuzz</li>
<li>hypothesis</li>
<li>testing internal interfaces</li>
<li>documenting and sharing domain expertise to build good reasonableness </li>
<li>intermediary data and stages </li>
<li>neural networks</li>
<li>speaking at conferences</li>
</ul><p>Special Guest: Katharine Jarmul.</p><p>Links:</p><ul><li><a href="https://twitter.com/kjam" title="@kjam on Twitter" rel="nofollow">@kjam on Twitter</a> — Data Magic and Computer Sorcery</li><li><a href="http://kjamistan.com/" title="Kjamistan: Data Science" rel="nofollow">Kjamistan: Data Science</a></li><li><a href="https://datafuzz.readthedocs.io/en/latest/" title="datafuzz’s Python library" rel="nofollow">datafuzz’s Python library</a> — The goal of datafuzz is to give you the ability to test your data science code and models with BAD data.</li><li><a href="https://hypothesis.readthedocs.io/en/latest/" title="Hypothesis Python library" rel="nofollow">Hypothesis Python library</a> — Hypothesis is a Python library for finding edge cases in your code you wouldn’t have thought to look for.</li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 30 Nov 2017 10:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/33.mp3" length="18041263" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2235</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A discussion with Katharine Jarmul, aka kjam, about some of the challenges of data science with respect to testing.</p>

<p>Some of the topics we discuss:</p>

<ul>
<li>experimentation vs testing</li>
<li>testing pipelines and pipeline changes</li>
<li>automating data validation</li>
<li>property based testing</li>
<li>schema validation and detecting schema changes</li>
<li>using unit test techniques to test data pipeline stages</li>
<li>testing nodes and transitions in DAGs</li>
<li>testing expected and unexpected data</li>
<li>missing data and non-signals</li>
<li>corrupting a dataset with noise</li>
<li>fuzz testing for both data pipelines and web APIs</li>
<li>datafuzz</li>
<li>hypothesis</li>
<li>testing internal interfaces</li>
<li>documenting and sharing domain expertise to build good reasonableness </li>
<li>intermediary data and stages </li>
<li>neural networks</li>
<li>speaking at conferences</li>
</ul><p>Special Guest: Katharine Jarmul.</p><p>Links:</p><ul><li><a href="https://twitter.com/kjam" title="@kjam on Twitter" rel="nofollow">@kjam on Twitter</a> — Data Magic and Computer Sorcery</li><li><a href="http://kjamistan.com/" title="Kjamistan: Data Science" rel="nofollow">Kjamistan: Data Science</a></li><li><a href="https://datafuzz.readthedocs.io/en/latest/" title="datafuzz’s Python library" rel="nofollow">datafuzz’s Python library</a> — The goal of datafuzz is to give you the ability to test your data science code and models with BAD data.</li><li><a href="https://hypothesis.readthedocs.io/en/latest/" title="Hypothesis Python library" rel="nofollow">Hypothesis Python library</a> — Hypothesis is a Python library for finding edge cases in your code you wouldn’t have thought to look for.</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>32: David Hussman - Agile vs Agility, Dude's Law, and more</title>
      <itunes:episode>32</itunes:episode>
      <podcast:episode>32</podcast:episode>
      <itunes:title>32: David Hussman - Agile vs Agility, Dude's Law, and more</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">07d0aa98-8895-4d4d-9ed3-4c4ddfaf15f7</guid>
      <link>https://pythontest.com/testandcode/episodes/32-david-hussman-agile-vs-agility-dudes-law-and-more</link>
      <description>
        <![CDATA[<p>A wonderful discussion with David Hussman. David and Brian look back at what all we've learned in XP, TDD, and other Agile methodologies, where things have gone awry, how to bring the value back, and where testing fits into all of this.</p>

<ul>
<li>How to build the wrong thing faster</li>
<li>Agile vs Agility</li>
<li>Product vs Process </li>
<li>Where testing fits into software development practices.</li>
<li>"Integration tests, there's a name that needs to be refactored desperately." </li>
<li>Integration tests are "story tests". They tell the story of the product.</li>
<li>XP and TDD and the relationship with tests</li>
<li>To test for design, use microtests, xUnit style.</li>
<li>User Advocy tests are often lacking, but are needed to learn about the product.</li>
<li>"I just keep writing tests until I'm not scared anymore." - Kent Beck</li>
<li>Dude's Law: Value = Why/How</li>
<li>People often focus so much on the how that they forget about why they are doing something.</li>
<li>Subcutaneous Tests</li>
<li>"The hardest part of programming is thinking."</li>
<li>Refactoring vs Repaving</li>
<li>Agility means being able to quickly change direction</li>
<li>During experimentation and learning, what matters isn't how much you got done, but how much you learn.</li>
<li>"The best way to get automation is to make developers do manual tests."</li>
</ul><p>Special Guest: David Hussman.</p><p>Links:</p><ul><li><a href="http://devjam.com/" title="DevJam" rel="nofollow">DevJam</a></li><li><a href="https://www.pnsqc.org/how-to-build-the-wrong-thing-faster-and-learn-from-it/" title="PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It" rel="nofollow">PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It</a></li><li><a href="https://www.youtube.com/watch?v=WboggjN_G-4" title="People's Front of Judea" rel="nofollow">People's Front of Judea</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment" title="TDD on c2" rel="nofollow">TDD on c2</a></li><li><a href="http://testandcode.com/7" title="The waterfall model" rel="nofollow">The waterfall model</a></li><li><a href="http://pythontesting.net/agile/test-first-programming" title="Test First Programming" rel="nofollow">Test First Programming</a></li><li><a href="https://dudeslaw.com/" title="Dude's Law" rel="nofollow">Dude's Law</a></li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A wonderful discussion with David Hussman. David and Brian look back at what all we've learned in XP, TDD, and other Agile methodologies, where things have gone awry, how to bring the value back, and where testing fits into all of this.</p>

<ul>
<li>How to build the wrong thing faster</li>
<li>Agile vs Agility</li>
<li>Product vs Process </li>
<li>Where testing fits into software development practices.</li>
<li>"Integration tests, there's a name that needs to be refactored desperately." </li>
<li>Integration tests are "story tests". They tell the story of the product.</li>
<li>XP and TDD and the relationship with tests</li>
<li>To test for design, use microtests, xUnit style.</li>
<li>User Advocy tests are often lacking, but are needed to learn about the product.</li>
<li>"I just keep writing tests until I'm not scared anymore." - Kent Beck</li>
<li>Dude's Law: Value = Why/How</li>
<li>People often focus so much on the how that they forget about why they are doing something.</li>
<li>Subcutaneous Tests</li>
<li>"The hardest part of programming is thinking."</li>
<li>Refactoring vs Repaving</li>
<li>Agility means being able to quickly change direction</li>
<li>During experimentation and learning, what matters isn't how much you got done, but how much you learn.</li>
<li>"The best way to get automation is to make developers do manual tests."</li>
</ul><p>Special Guest: David Hussman.</p><p>Links:</p><ul><li><a href="http://devjam.com/" title="DevJam" rel="nofollow">DevJam</a></li><li><a href="https://www.pnsqc.org/how-to-build-the-wrong-thing-faster-and-learn-from-it/" title="PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It" rel="nofollow">PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It</a></li><li><a href="https://www.youtube.com/watch?v=WboggjN_G-4" title="People's Front of Judea" rel="nofollow">People's Front of Judea</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment" title="TDD on c2" rel="nofollow">TDD on c2</a></li><li><a href="http://testandcode.com/7" title="The waterfall model" rel="nofollow">The waterfall model</a></li><li><a href="http://pythontesting.net/agile/test-first-programming" title="Test First Programming" rel="nofollow">Test First Programming</a></li><li><a href="https://dudeslaw.com/" title="Dude's Law" rel="nofollow">Dude's Law</a></li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a></li></ul>]]>
      </content:encoded>
      <pubDate>Tue, 03 Oct 2017 08:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/32.mp3" length="22943562" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2848</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A wonderful discussion with David Hussman. David and Brian look back at what all we've learned in XP, TDD, and other Agile methodologies, where things have gone awry, how to bring the value back, and where testing fits into all of this.</p>

<ul>
<li>How to build the wrong thing faster</li>
<li>Agile vs Agility</li>
<li>Product vs Process </li>
<li>Where testing fits into software development practices.</li>
<li>"Integration tests, there's a name that needs to be refactored desperately." </li>
<li>Integration tests are "story tests". They tell the story of the product.</li>
<li>XP and TDD and the relationship with tests</li>
<li>To test for design, use microtests, xUnit style.</li>
<li>User Advocy tests are often lacking, but are needed to learn about the product.</li>
<li>"I just keep writing tests until I'm not scared anymore." - Kent Beck</li>
<li>Dude's Law: Value = Why/How</li>
<li>People often focus so much on the how that they forget about why they are doing something.</li>
<li>Subcutaneous Tests</li>
<li>"The hardest part of programming is thinking."</li>
<li>Refactoring vs Repaving</li>
<li>Agility means being able to quickly change direction</li>
<li>During experimentation and learning, what matters isn't how much you got done, but how much you learn.</li>
<li>"The best way to get automation is to make developers do manual tests."</li>
</ul><p>Special Guest: David Hussman.</p><p>Links:</p><ul><li><a href="http://devjam.com/" title="DevJam" rel="nofollow">DevJam</a></li><li><a href="https://www.pnsqc.org/how-to-build-the-wrong-thing-faster-and-learn-from-it/" title="PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It" rel="nofollow">PNSQC 2015 How to Build the Wrong Thing Faster and Learn From It</a></li><li><a href="https://www.youtube.com/watch?v=WboggjN_G-4" title="People's Front of Judea" rel="nofollow">People's Front of Judea</a></li><li><a href="http://wiki.c2.com/?TestDrivenDevelopment" title="TDD on c2" rel="nofollow">TDD on c2</a></li><li><a href="http://testandcode.com/7" title="The waterfall model" rel="nofollow">The waterfall model</a></li><li><a href="http://pythontesting.net/agile/test-first-programming" title="Test First Programming" rel="nofollow">Test First Programming</a></li><li><a href="https://dudeslaw.com/" title="Dude's Law" rel="nofollow">Dude's Law</a></li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>31: I'm so sick of the testing pyramid</title>
      <itunes:episode>31</itunes:episode>
      <podcast:episode>31</podcast:episode>
      <itunes:title>31: I'm so sick of the testing pyramid</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">699acab0-ba20-4b41-92c1-3372d45c326e</guid>
      <link>https://pythontest.com/testandcode/episodes/31-im-so-sick-of-the-testing-pyramid</link>
      <description>
        <![CDATA[<p>What started as a twitter disagreement carries over into this civil discussion of software testing. <br>
Brian and Paul discuss testing practices such as the testing pyramid, TDD, unit testing, system testing, and balancing test effort. </p>

<ul>
<li>the Testing Pyramid</li>
<li>the Testing Column</li>
<li>TDD</li>
<li>unit testing</li>
<li>balancing unit with system tests, functional tests</li>
<li>API testing</li>
<li>subcutaneous testing</li>
<li>customer facing tests</li>
</ul><p>Special Guest: Paul Merrill.</p><<p>Links:</p><ul><li><a href="http://reflectionasaservice.com/2017/01/episode-34-software-testing-models-guest-host-brian-okken/" title="Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service" rel="nofollow">Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service</a> — Cross posted to RaaS</li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a> — I use subcutaneous test to mean a test that operates just under the UI of an application.</li><li><a href="https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid" title="The Forgotten Layer of the Test Automation Pyramid" rel="nofollow">The Forgotten Layer of the Test Automation Pyramid</a> — At the base of the test automation pyramid is unit testing.</li><li><a href="http://www.bumc.bu.edu/facdev-medicine/files/2012/03/Dreyfus-skill-level.pdf" title="The Dreyfus model of skill acquisition" rel="nofollow">The Dreyfus model of skill acquisition</a> — The Five-Stage Model of Adult Skill Acquisition</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What started as a twitter disagreement carries over into this civil discussion of software testing. <br>
Brian and Paul discuss testing practices such as the testing pyramid, TDD, unit testing, system testing, and balancing test effort. </p>

<ul>
<li>the Testing Pyramid</li>
<li>the Testing Column</li>
<li>TDD</li>
<li>unit testing</li>
<li>balancing unit with system tests, functional tests</li>
<li>API testing</li>
<li>subcutaneous testing</li>
<li>customer facing tests</li>
</ul><p>Special Guest: Paul Merrill.</p><<p>Links:</p><ul><li><a href="http://reflectionasaservice.com/2017/01/episode-34-software-testing-models-guest-host-brian-okken/" title="Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service" rel="nofollow">Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service</a> — Cross posted to RaaS</li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a> — I use subcutaneous test to mean a test that operates just under the UI of an application.</li><li><a href="https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid" title="The Forgotten Layer of the Test Automation Pyramid" rel="nofollow">The Forgotten Layer of the Test Automation Pyramid</a> — At the base of the test automation pyramid is unit testing.</li><li><a href="http://www.bumc.bu.edu/facdev-medicine/files/2012/03/Dreyfus-skill-level.pdf" title="The Dreyfus model of skill acquisition" rel="nofollow">The Dreyfus model of skill acquisition</a> — The Five-Stage Model of Adult Skill Acquisition</li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 27 Sep 2017 05:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/31.mp3" length="19342168" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2398</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What started as a twitter disagreement carries over into this civil discussion of software testing. <br>
Brian and Paul discuss testing practices such as the testing pyramid, TDD, unit testing, system testing, and balancing test effort. </p>

<ul>
<li>the Testing Pyramid</li>
<li>the Testing Column</li>
<li>TDD</li>
<li>unit testing</li>
<li>balancing unit with system tests, functional tests</li>
<li>API testing</li>
<li>subcutaneous testing</li>
<li>customer facing tests</li>
</ul><p>Special Guest: Paul Merrill.</p><<p>Links:</p><ul><li><a href="http://reflectionasaservice.com/2017/01/episode-34-software-testing-models-guest-host-brian-okken/" title="Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service" rel="nofollow">Episode 34 - Software and Testing Models with Guest Host Brian Okken - Reflection As A Service</a> — Cross posted to RaaS</li><li><a href="https://martinfowler.com/bliki/SubcutaneousTest.html" title="Subcutaneous Test" rel="nofollow">Subcutaneous Test</a> — I use subcutaneous test to mean a test that operates just under the UI of an application.</li><li><a href="https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid" title="The Forgotten Layer of the Test Automation Pyramid" rel="nofollow">The Forgotten Layer of the Test Automation Pyramid</a> — At the base of the test automation pyramid is unit testing.</li><li><a href="http://www.bumc.bu.edu/facdev-medicine/files/2012/03/Dreyfus-skill-level.pdf" title="The Dreyfus model of skill acquisition" rel="nofollow">The Dreyfus model of skill acquisition</a> — The Five-Stage Model of Adult Skill Acquisition</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>30: Legacy Code - M. Scott Ford</title>
      <itunes:episode>30</itunes:episode>
      <podcast:episode>30</podcast:episode>
      <itunes:title>30: Legacy Code - M. Scott Ford</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">68a05c86-6b9a-4dc4-8856-8a692d105a43</guid>
      <link>https://pythontest.com/testandcode/episodes/30-legacy-code-m-scott-ford</link>
      <description>
        <![CDATA[<p>M. Scott Ford is the founder and chief code whisperer at Corgibytes, a company focused on helping other companies with legacy code. </p>

<p>Topics include:</p>

<ul>
<li>How M. Scott Ford got into forming a company that works on legacy code.</li>
<li>Technical debt</li>
<li>Process debt</li>
<li>Software testing</li>
<li>The testing pyramid</li>
<li>iterative development</li>
<li>kanban</li>
<li>readable code and readable test code</li>
</ul><p>Special Guest: M. Scott Ford.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>M. Scott Ford is the founder and chief code whisperer at Corgibytes, a company focused on helping other companies with legacy code. </p>

<p>Topics include:</p>

<ul>
<li>How M. Scott Ford got into forming a company that works on legacy code.</li>
<li>Technical debt</li>
<li>Process debt</li>
<li>Software testing</li>
<li>The testing pyramid</li>
<li>iterative development</li>
<li>kanban</li>
<li>readable code and readable test code</li>
</ul><p>Special Guest: M. Scott Ford.</p>]]>
      </content:encoded>
      <pubDate>Mon, 31 Jul 2017 22:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/30.mp3" length="20224721" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2508</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>M. Scott Ford is the founder and chief code whisperer at Corgibytes, a company focused on helping other companies with legacy code. </p>

<p>Topics include:</p>

<ul>
<li>How M. Scott Ford got into forming a company that works on legacy code.</li>
<li>Technical debt</li>
<li>Process debt</li>
<li>Software testing</li>
<li>The testing pyramid</li>
<li>iterative development</li>
<li>kanban</li>
<li>readable code and readable test code</li>
</ul><p>Special Guest: M. Scott Ford.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>29: Kobiton &amp; QASymphony - Josh Lieberman</title>
      <itunes:episode>29</itunes:episode>
      <podcast:episode>29</podcast:episode>
      <itunes:title>29: Kobiton &amp; QASymphony - Josh Lieberman</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">b933a900-32a9-41a5-ad6b-50ed9b222661</guid>
      <link>https://pythontest.com/testandcode/episodes/29-kobiton-qasymphony-josh-lieberman</link>
      <description>
        <![CDATA[<p>Kobiton is a service to test mobile apps on real devices. <br>
QASymphony offers software testing and QA tools.</p><p>Special Guest: Josh Lieberman.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Kobiton is a service to test mobile apps on real devices. <br>
QASymphony offers software testing and QA tools.</p><p>Special Guest: Josh Lieberman.</p>]]>
      </content:encoded>
      <pubDate>Fri, 30 Jun 2017 19:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/29.mp3" length="8817990" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1083</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Kobiton is a service to test mobile apps on real devices. <br>
QASymphony offers software testing and QA tools.</p><p>Special Guest: Josh Lieberman.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>28: Chaos Engineering &amp; Experimentation at Netflix - Casey Rosenthal</title>
      <itunes:episode>28</itunes:episode>
      <podcast:episode>28</podcast:episode>
      <itunes:title>28: Chaos Engineering &amp; Experimentation at Netflix - Casey Rosenthal</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">6c728117-eae1-4c4d-a93e-1714c2e2d5c9</guid>
      <link>https://pythontest.com/testandcode/episodes/28-chaos-engineering-experimentation-at-netflix-casey-rosenthal</link>
      <description>
        <![CDATA[<p>Today we have an interview with Casey Rosenthal of Netflix.</p>

<p>One of the people making sure Netflix runs smoothly is Casey Rosenthall. <br>
He is the manager for the Traffic, Intuition, and Chaos teams at Netflix.<br>
He's got a great perspective on quality and large systems. </p>

<p>We talk about </p>

<ul>
<li>Chaos Engineering</li>
<li>Experimentation vs Testing</li>
<li>Testing Strategy</li>
<li>Visualization of large amounts of data representing Steady State</li>
</ul><p>Special Guest: Casey Rosenthal.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Today we have an interview with Casey Rosenthal of Netflix.</p>

<p>One of the people making sure Netflix runs smoothly is Casey Rosenthall. <br>
He is the manager for the Traffic, Intuition, and Chaos teams at Netflix.<br>
He's got a great perspective on quality and large systems. </p>

<p>We talk about </p>

<ul>
<li>Chaos Engineering</li>
<li>Experimentation vs Testing</li>
<li>Testing Strategy</li>
<li>Visualization of large amounts of data representing Steady State</li>
</ul><p>Special Guest: Casey Rosenthal.</p>]]>
      </content:encoded>
      <pubDate>Fri, 07 Apr 2017 08:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/28.mp3" length="15965963" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1976</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Today we have an interview with Casey Rosenthal of Netflix.</p>

<p>One of the people making sure Netflix runs smoothly is Casey Rosenthall. <br>
He is the manager for the Traffic, Intuition, and Chaos teams at Netflix.<br>
He's got a great perspective on quality and large systems. </p>

<p>We talk about </p>

<ul>
<li>Chaos Engineering</li>
<li>Experimentation vs Testing</li>
<li>Testing Strategy</li>
<li>Visualization of large amounts of data representing Steady State</li>
</ul><p>Special Guest: Casey Rosenthal.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>27: Mahmoud Hashemi : unit, integration, and system testing</title>
      <itunes:episode>27</itunes:episode>
      <podcast:episode>27</podcast:episode>
      <itunes:title>27: Mahmoud Hashemi : unit, integration, and system testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">e1919bb1-844d-4620-a962-555b03b74537</guid>
      <link>https://pythontest.com/testandcode/episodes/27-mahmoud-hashemi-unit-integration-and-system-testing</link>
      <description>
        <![CDATA[<p>What is the difference between a unit test, an integration test, and a system test? Mahmoud Hashemi helps me to define these terms, as well as discuss the role of all testing variants in software development.</p>

<ul>
<li>What is the difference between a unit test, an integration test, and a system test? </li>
<li>TDD</li>
<li>testing pyramid vs testing column</li>
<li>the role of testing in software development</li>
<li>web frameworks</li>
<li>listen to wikipedia</li>
<li>hatnote</li>
<li>the world’s largest photo competition</li>
<li>Enterprise Software with Python</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li>Mahmoud on twitter: <a href="https://twitter.com/mhashemi" rel="nofollow">@mhashemi</a></li>
<li>Mahmoud on <a href="http://sedimental.org/" rel="nofollow">sedimental</a> </li>
<li><a href="http://blog.hatnote.com/" rel="nofollow">hatnote</a></li>
<li><a href="http://listen.hatnote.com/" rel="nofollow">listen to wikipedia</a></li>
<li><a href="https://blog.wikimedia.org/2016/12/22/montage-platform-wiki-loves-monuments/" rel="nofollow">Montage</a>, the web platform used to help judge the world’s largest photo competition</li>
<li><a href="https://pypi.python.org/pypi/clastic" rel="nofollow">clastic</a></li>
<li><a href="http://sedimental.org/10_myths_of_enterprise_python.html" rel="nofollow">10 Myths of Enterprise Python</a></li>
<li><a href="http://shop.oreilly.com/product/0636920047346.do?code=authd" rel="nofollow">Enterprise Software with Python</a> course</li>
<li><a href="http://sedimental.org/esp.html" rel="nofollow">Enterprise Software with Python</a> blog post.</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>What is the difference between a unit test, an integration test, and a system test? Mahmoud Hashemi helps me to define these terms, as well as discuss the role of all testing variants in software development.</p>

<ul>
<li>What is the difference between a unit test, an integration test, and a system test? </li>
<li>TDD</li>
<li>testing pyramid vs testing column</li>
<li>the role of testing in software development</li>
<li>web frameworks</li>
<li>listen to wikipedia</li>
<li>hatnote</li>
<li>the world’s largest photo competition</li>
<li>Enterprise Software with Python</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li>Mahmoud on twitter: <a href="https://twitter.com/mhashemi" rel="nofollow">@mhashemi</a></li>
<li>Mahmoud on <a href="http://sedimental.org/" rel="nofollow">sedimental</a> </li>
<li><a href="http://blog.hatnote.com/" rel="nofollow">hatnote</a></li>
<li><a href="http://listen.hatnote.com/" rel="nofollow">listen to wikipedia</a></li>
<li><a href="https://blog.wikimedia.org/2016/12/22/montage-platform-wiki-loves-monuments/" rel="nofollow">Montage</a>, the web platform used to help judge the world’s largest photo competition</li>
<li><a href="https://pypi.python.org/pypi/clastic" rel="nofollow">clastic</a></li>
<li><a href="http://sedimental.org/10_myths_of_enterprise_python.html" rel="nofollow">10 Myths of Enterprise Python</a></li>
<li><a href="http://shop.oreilly.com/product/0636920047346.do?code=authd" rel="nofollow">Enterprise Software with Python</a> course</li>
<li><a href="http://sedimental.org/esp.html" rel="nofollow">Enterprise Software with Python</a> blog post.</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p>]]>
      </content:encoded>
      <pubDate>Sun, 26 Feb 2017 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/27.mp3" length="20293390" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2517</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>What is the difference between a unit test, an integration test, and a system test? Mahmoud Hashemi helps me to define these terms, as well as discuss the role of all testing variants in software development.</p>

<ul>
<li>What is the difference between a unit test, an integration test, and a system test? </li>
<li>TDD</li>
<li>testing pyramid vs testing column</li>
<li>the role of testing in software development</li>
<li>web frameworks</li>
<li>listen to wikipedia</li>
<li>hatnote</li>
<li>the world’s largest photo competition</li>
<li>Enterprise Software with Python</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li>Mahmoud on twitter: <a href="https://twitter.com/mhashemi" rel="nofollow">@mhashemi</a></li>
<li>Mahmoud on <a href="http://sedimental.org/" rel="nofollow">sedimental</a> </li>
<li><a href="http://blog.hatnote.com/" rel="nofollow">hatnote</a></li>
<li><a href="http://listen.hatnote.com/" rel="nofollow">listen to wikipedia</a></li>
<li><a href="https://blog.wikimedia.org/2016/12/22/montage-platform-wiki-loves-monuments/" rel="nofollow">Montage</a>, the web platform used to help judge the world’s largest photo competition</li>
<li><a href="https://pypi.python.org/pypi/clastic" rel="nofollow">clastic</a></li>
<li><a href="http://sedimental.org/10_myths_of_enterprise_python.html" rel="nofollow">10 Myths of Enterprise Python</a></li>
<li><a href="http://shop.oreilly.com/product/0636920047346.do?code=authd" rel="nofollow">Enterprise Software with Python</a> course</li>
<li><a href="http://sedimental.org/esp.html" rel="nofollow">Enterprise Software with Python</a> blog post.</li>
</ul><p>Special Guest: Mahmoud Hashemi.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>26: pyresttest – Sam Van Oort</title>
      <itunes:episode>26</itunes:episode>
      <podcast:episode>26</podcast:episode>
      <itunes:title>26: pyresttest – Sam Van Oort</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50683</guid>
      <link>https://pythontest.com/testandcode/episodes/26-pyresttest-sam-van-oort</link>
      <description>
        <![CDATA[<p>Interview with Sam Van Oort about <a href="https://github.com/svanoort/pyresttest" rel="nofollow">pyresttest</a>,  "A REST testing and API microbenchmarking tool"</p>

<p><b>pyresttest</b></p>

<p>A question in the <a href="http://pythontesting.net/slack" rel="nofollow">Test &amp; Code Slack channel</a> was raised about testing REST APIs. There were answers such as pytest + requests, of course, but there was also a mention of <strong>pyresttest</strong>, <a href="https://github.com/svanoort/pyresttest" rel="nofollow">https://github.com/svanoort/pyresttest</a>, which I hadn't heard of. I checked out the github repo, and was struck by how user friendly the user facing test definitions were. So I contacted the developer, Sam Van Oort, and asked him to come on the show and tell me about this tool and why he developed it.</p>

<p>Here's the "What is it?" section from the pyresttest README:</p>

<ul>
<li>A REST testing and API microbenchmarking tool</li>
<li>Tests are defined in basic YAML or JSON config files, no code needed</li>
<li>Minimal dependencies (pycurl, pyyaml, optionally future), making it easy to deploy on-server for smoketests/healthchecks</li>
<li>Supports generate/extract/validate mechanisms to create full test scenarios</li>
<li>Returns exit codes on failure, to slot into automated configuration management/orchestration tools (also supplies parseable logs)</li>
<li>Logic is written and extensible in Python</li>
</ul>

<p><b>Support</b></p>

<p>Special thanks to my wonderful <a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters</a> and those who have supported the show by purchasing <a href="http://pythontesting.net/book" rel="nofollow">Python Testing with unittest, nose, pytest</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Interview with Sam Van Oort about <a href="https://github.com/svanoort/pyresttest" rel="nofollow">pyresttest</a>,  "A REST testing and API microbenchmarking tool"</p>

<p><b>pyresttest</b></p>

<p>A question in the <a href="http://pythontesting.net/slack" rel="nofollow">Test &amp; Code Slack channel</a> was raised about testing REST APIs. There were answers such as pytest + requests, of course, but there was also a mention of <strong>pyresttest</strong>, <a href="https://github.com/svanoort/pyresttest" rel="nofollow">https://github.com/svanoort/pyresttest</a>, which I hadn't heard of. I checked out the github repo, and was struck by how user friendly the user facing test definitions were. So I contacted the developer, Sam Van Oort, and asked him to come on the show and tell me about this tool and why he developed it.</p>

<p>Here's the "What is it?" section from the pyresttest README:</p>

<ul>
<li>A REST testing and API microbenchmarking tool</li>
<li>Tests are defined in basic YAML or JSON config files, no code needed</li>
<li>Minimal dependencies (pycurl, pyyaml, optionally future), making it easy to deploy on-server for smoketests/healthchecks</li>
<li>Supports generate/extract/validate mechanisms to create full test scenarios</li>
<li>Returns exit codes on failure, to slot into automated configuration management/orchestration tools (also supplies parseable logs)</li>
<li>Logic is written and extensible in Python</li>
</ul>

<p><b>Support</b></p>

<p>Special thanks to my wonderful <a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters</a> and those who have supported the show by purchasing <a href="http://pythontesting.net/book" rel="nofollow">Python Testing with unittest, nose, pytest</a></p>]]>
      </content:encoded>
      <pubDate>Thu, 01 Dec 2016 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/26.mp3" length="27964641" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3476</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Interview with Sam Van Oort about <a href="https://github.com/svanoort/pyresttest" rel="nofollow">pyresttest</a>,  "A REST testing and API microbenchmarking tool"</p>

<p><b>pyresttest</b></p>

<p>A question in the <a href="http://pythontesting.net/slack" rel="nofollow">Test &amp; Code Slack channel</a> was raised about testing REST APIs. There were answers such as pytest + requests, of course, but there was also a mention of <strong>pyresttest</strong>, <a href="https://github.com/svanoort/pyresttest" rel="nofollow">https://github.com/svanoort/pyresttest</a>, which I hadn't heard of. I checked out the github repo, and was struck by how user friendly the user facing test definitions were. So I contacted the developer, Sam Van Oort, and asked him to come on the show and tell me about this tool and why he developed it.</p>

<p>Here's the "What is it?" section from the pyresttest README:</p>

<ul>
<li>A REST testing and API microbenchmarking tool</li>
<li>Tests are defined in basic YAML or JSON config files, no code needed</li>
<li>Minimal dependencies (pycurl, pyyaml, optionally future), making it easy to deploy on-server for smoketests/healthchecks</li>
<li>Supports generate/extract/validate mechanisms to create full test scenarios</li>
<li>Returns exit codes on failure, to slot into automated configuration management/orchestration tools (also supplies parseable logs)</li>
<li>Logic is written and extensible in Python</li>
</ul>

<p><b>Support</b></p>

<p>Special thanks to my wonderful <a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters</a> and those who have supported the show by purchasing <a href="http://pythontesting.net/book" rel="nofollow">Python Testing with unittest, nose, pytest</a></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>25: Selenium, pytest, Mozilla – Dave Hunt</title>
      <itunes:episode>25</itunes:episode>
      <podcast:episode>25</podcast:episode>
      <itunes:title>25: Selenium, pytest, Mozilla – Dave Hunt</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50677</guid>
      <link>https://pythontest.com/testandcode/episodes/25-selenium-pytest-mozilla-dave-hunt</link>
      <description>
        <![CDATA[<p>Interview with Dave Hunt<br>d</p><p>We Cover:</p><ul><li><a href="http://www.seleniumhq.org/">Selenium Driver</a></li><li><a href="http://docs.pytest.org/">pytest</a></li><li>pytest plugins: <ul><li><a href="http://pytest-selenium.readthedocs.io/">pytest-selenium</a></li><li><a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a></li><li><a href="https://pypi.python.org/pypi/pytest-variables">pytest-variables</a></li></ul></li><li><a href="https://tox.readthedocs.io">tox</a></li><li><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=author%3Adavehunt+type%3Aissue+label%3A%22help+wanted%22+state%3Aopen+no%3Aassignee">Dave Hunt’s “help wanted” list on github</a></li><li><a href="https://www.mozilla.org">Mozilla</a></li></ul><p>Also:</p><ul><li>fixtures</li><li>xfail</li><li>CI and xfail and html reports</li><li>CI and capturing </li><li>pytest code sprint</li><li>working remotely for Mozilla</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Interview with Dave Hunt<br>d</p><p>We Cover:</p><ul><li><a href="http://www.seleniumhq.org/">Selenium Driver</a></li><li><a href="http://docs.pytest.org/">pytest</a></li><li>pytest plugins: <ul><li><a href="http://pytest-selenium.readthedocs.io/">pytest-selenium</a></li><li><a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a></li><li><a href="https://pypi.python.org/pypi/pytest-variables">pytest-variables</a></li></ul></li><li><a href="https://tox.readthedocs.io">tox</a></li><li><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=author%3Adavehunt+type%3Aissue+label%3A%22help+wanted%22+state%3Aopen+no%3Aassignee">Dave Hunt’s “help wanted” list on github</a></li><li><a href="https://www.mozilla.org">Mozilla</a></li></ul><p>Also:</p><ul><li>fixtures</li><li>xfail</li><li>CI and xfail and html reports</li><li>CI and capturing </li><li>pytest code sprint</li><li>working remotely for Mozilla</li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 01 Dec 2016 00:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/25.mp3" length="20485245" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2541</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Interview with Dave Hunt<br>d</p><p>We Cover:</p><ul><li><a href="http://www.seleniumhq.org/">Selenium Driver</a></li><li><a href="http://docs.pytest.org/">pytest</a></li><li>pytest plugins: <ul><li><a href="http://pytest-selenium.readthedocs.io/">pytest-selenium</a></li><li><a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a></li><li><a href="https://pypi.python.org/pypi/pytest-variables">pytest-variables</a></li></ul></li><li><a href="https://tox.readthedocs.io">tox</a></li><li><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=author%3Adavehunt+type%3Aissue+label%3A%22help+wanted%22+state%3Aopen+no%3Aassignee">Dave Hunt’s “help wanted” list on github</a></li><li><a href="https://www.mozilla.org">Mozilla</a></li></ul><p>Also:</p><ul><li>fixtures</li><li>xfail</li><li>CI and xfail and html reports</li><li>CI and capturing </li><li>pytest code sprint</li><li>working remotely for Mozilla</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://davehunt.uk/">Dave Hunt</podcast:person>
    </item>
    <item>
      <title>24: pytest - Raphael Aurich</title>
      <itunes:episode>24</itunes:episode>
      <podcast:episode>24</podcast:episode>
      <itunes:title>24: pytest - Raphael Aurich</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50666</guid>
      <link>https://pythontest.com/testandcode/episodes/24-pytest-with-raphael-pierzina</link>
      <description>
        <![CDATA[<p>pytest is an extremely popular test framework used by many projects and companies. </p><p>In this episode, I interview Raphael Aurich (<a href="https://twitter.com/hackebrot">@hackebrot</a>), a core contributor to both pytest and cookiecutter. We discuss how Raphael got involved with both projects, his involvement in cookiecutter, pytest, "adopt pytest month", the pytest code sprint, and of course some of the cool new features in pytest 3.</p><p><br><em>Links:</em></p><ul><li>pytest - <a href="http://doc.pytest.org/en/latest/">http://doc.pytest.org</a></li><li>cookie cutter - <a href="https://github.com/audreyr/cookiecutter">https://github.com/audreyr/cookiecutter</a></li><li>cookiecutter-pytest-plugin - <a href="https://github.com/pytest-dev/cookiecutter-pytest-plugin">https://github.com/pytest-dev/cookiecutter-pytest-plugin</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>pytest is an extremely popular test framework used by many projects and companies. </p><p>In this episode, I interview Raphael Aurich (<a href="https://twitter.com/hackebrot">@hackebrot</a>), a core contributor to both pytest and cookiecutter. We discuss how Raphael got involved with both projects, his involvement in cookiecutter, pytest, "adopt pytest month", the pytest code sprint, and of course some of the cool new features in pytest 3.</p><p><br><em>Links:</em></p><ul><li>pytest - <a href="http://doc.pytest.org/en/latest/">http://doc.pytest.org</a></li><li>cookie cutter - <a href="https://github.com/audreyr/cookiecutter">https://github.com/audreyr/cookiecutter</a></li><li>cookiecutter-pytest-plugin - <a href="https://github.com/pytest-dev/cookiecutter-pytest-plugin">https://github.com/pytest-dev/cookiecutter-pytest-plugin</a></li></ul>]]>
      </content:encoded>
      <pubDate>Thu, 10 Nov 2016 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/24.mp3" length="17141342" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2116</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>pytest is an extremely popular test framework used by many projects and companies. </p><p>In this episode, I interview Raphael Aurich (<a href="https://twitter.com/hackebrot">@hackebrot</a>), a core contributor to both pytest and cookiecutter. We discuss how Raphael got involved with both projects, his involvement in cookiecutter, pytest, "adopt pytest month", the pytest code sprint, and of course some of the cool new features in pytest 3.</p><p><br><em>Links:</em></p><ul><li>pytest - <a href="http://doc.pytest.org/en/latest/">http://doc.pytest.org</a></li><li>cookie cutter - <a href="https://github.com/audreyr/cookiecutter">https://github.com/audreyr/cookiecutter</a></li><li>cookiecutter-pytest-plugin - <a href="https://github.com/pytest-dev/cookiecutter-pytest-plugin">https://github.com/pytest-dev/cookiecutter-pytest-plugin</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://raphael.codes">Raphael Aurich</podcast:person>
    </item>
    <item>
      <title>23: Lessons about testing and TDD from Kent Beck</title>
      <itunes:episode>23</itunes:episode>
      <podcast:episode>23</podcast:episode>
      <itunes:title>23: Lessons about testing and TDD from Kent Beck</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50653</guid>
      <link>https://pythontest.com/testandcode/episodes/23-lessons-about-testing-and-tdd-from-kent-beck</link>
      <description>
        <![CDATA[<p>Kent Beck's twitter profile says "Programmer, author, father, husband, goat farmer". But I know him best from his work on extreme programming, test first programming, and test driven development. He's the one. The reason you know about TDD is because of Kent Beck.</p>

<p>I first ran across writings from Kent Beck as started exploring Extreme Programming in the early 2000's.</p>

<p>Although I don't agree with all of the views he's expressed in his long and verbose career, I respect him as one of the best sources of information about software development, engineering practices, and software testing.</p>

<p>Along with Test First Programming and Test Driven Development, Kent started an automated test framework that turned into jUnit. jUnit and it's model of setup and teardown wrapping test functions, as well base test class driven test frameworks became what we know of as xUnit style frameworks now, which includes Python's unittest.</p>

<p>He discussed this history and a lot more on episode 122 of Software Engineering Radio. The episode is titled "The History of JUnit and the Future of Testing with Kent Beck", and is from Sept 26, 2010.</p>

<p><a href="http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/" rel="nofollow">http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/</a></p>

<p>I urge you to download it and listen to the whole thing. It's a great interview, still relevant, and applicable to testing in any language, including Python.</p>

<p>What I've done in this podcast is take a handful of clips from the interview (with permission from IEEE and SERadio), and discuss the clips and my opinions a bit.</p>

<p>The lessons are:</p>

<ol>
<li>You're tests should tell a story.</li>
<li>Be careful of DRY, inheritance, and other software development practices that might get in the way of keeping your tests easy to understand.</li>
<li>All test should help differentiate good programs from bad programs and not be redundant.</li>
<li>Test at multiple levels and multiple scales where it makes sense.</li>
<li>Differentiating between TDD, BDD, ATDD, etc. isn't as important as testing your software to learn about it. Who cares what you call it.</li>
</ol>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Kent Beck's twitter profile says "Programmer, author, father, husband, goat farmer". But I know him best from his work on extreme programming, test first programming, and test driven development. He's the one. The reason you know about TDD is because of Kent Beck.</p>

<p>I first ran across writings from Kent Beck as started exploring Extreme Programming in the early 2000's.</p>

<p>Although I don't agree with all of the views he's expressed in his long and verbose career, I respect him as one of the best sources of information about software development, engineering practices, and software testing.</p>

<p>Along with Test First Programming and Test Driven Development, Kent started an automated test framework that turned into jUnit. jUnit and it's model of setup and teardown wrapping test functions, as well base test class driven test frameworks became what we know of as xUnit style frameworks now, which includes Python's unittest.</p>

<p>He discussed this history and a lot more on episode 122 of Software Engineering Radio. The episode is titled "The History of JUnit and the Future of Testing with Kent Beck", and is from Sept 26, 2010.</p>

<p><a href="http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/" rel="nofollow">http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/</a></p>

<p>I urge you to download it and listen to the whole thing. It's a great interview, still relevant, and applicable to testing in any language, including Python.</p>

<p>What I've done in this podcast is take a handful of clips from the interview (with permission from IEEE and SERadio), and discuss the clips and my opinions a bit.</p>

<p>The lessons are:</p>

<ol>
<li>You're tests should tell a story.</li>
<li>Be careful of DRY, inheritance, and other software development practices that might get in the way of keeping your tests easy to understand.</li>
<li>All test should help differentiate good programs from bad programs and not be redundant.</li>
<li>Test at multiple levels and multiple scales where it makes sense.</li>
<li>Differentiating between TDD, BDD, ATDD, etc. isn't as important as testing your software to learn about it. Who cares what you call it.</li>
</ol>]]>
      </content:encoded>
      <pubDate>Fri, 30 Sep 2016 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/23.mp3" length="6827753" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>827</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Kent Beck's twitter profile says "Programmer, author, father, husband, goat farmer". But I know him best from his work on extreme programming, test first programming, and test driven development. He's the one. The reason you know about TDD is because of Kent Beck.</p>

<p>I first ran across writings from Kent Beck as started exploring Extreme Programming in the early 2000's.</p>

<p>Although I don't agree with all of the views he's expressed in his long and verbose career, I respect him as one of the best sources of information about software development, engineering practices, and software testing.</p>

<p>Along with Test First Programming and Test Driven Development, Kent started an automated test framework that turned into jUnit. jUnit and it's model of setup and teardown wrapping test functions, as well base test class driven test frameworks became what we know of as xUnit style frameworks now, which includes Python's unittest.</p>

<p>He discussed this history and a lot more on episode 122 of Software Engineering Radio. The episode is titled "The History of JUnit and the Future of Testing with Kent Beck", and is from Sept 26, 2010.</p>

<p><a href="http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/" rel="nofollow">http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/</a></p>

<p>I urge you to download it and listen to the whole thing. It's a great interview, still relevant, and applicable to testing in any language, including Python.</p>

<p>What I've done in this podcast is take a handful of clips from the interview (with permission from IEEE and SERadio), and discuss the clips and my opinions a bit.</p>

<p>The lessons are:</p>

<ol>
<li>You're tests should tell a story.</li>
<li>Be careful of DRY, inheritance, and other software development practices that might get in the way of keeping your tests easy to understand.</li>
<li>All test should help differentiate good programs from bad programs and not be redundant.</li>
<li>Test at multiple levels and multiple scales where it makes sense.</li>
<li>Differentiating between TDD, BDD, ATDD, etc. isn't as important as testing your software to learn about it. Who cares what you call it.</li>
</ol>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>22: Converting Manual Tests to Automated Tests</title>
      <itunes:episode>22</itunes:episode>
      <podcast:episode>22</podcast:episode>
      <itunes:title>22: Converting Manual Tests to Automated Tests</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50641</guid>
      <link>https://pythontest.com/testandcode/episodes/22-converting-manual-tests-to-automated-tests</link>
      <description>
        <![CDATA[<p>How do you convert manual tests to automated tests?</p>

<p>This episode looks at the differences between manual and automated tests and presents two strategies for converting manual to automated.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How do you convert manual tests to automated tests?</p>

<p>This episode looks at the differences between manual and automated tests and presents two strategies for converting manual to automated.</p>]]>
      </content:encoded>
      <pubDate>Sat, 24 Sep 2016 01:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/22.mp3" length="5466703" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>657</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How do you convert manual tests to automated tests?</p>

<p>This episode looks at the differences between manual and automated tests and presents two strategies for converting manual to automated.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>21: Terminology: test fixtures, subcutaneous testing, end to end testing, system testing</title>
      <itunes:episode>21</itunes:episode>
      <podcast:episode>21</podcast:episode>
      <itunes:title>21: Terminology: test fixtures, subcutaneous testing, end to end testing, system testing</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50625</guid>
      <link>https://pythontest.com/testandcode/episodes/21-terminology-test-fixtures-subcutaneous-testing-end-to-end-testing-system-testing</link>
      <description>
        <![CDATA[<p>A listener requested that I start covering some terminology. <br> I think it's a great idea.</p><p>Covered in this episode:</p><ul><li>Test Fixtures</li><li>Subcutaneous Testing</li><li>End to End Testing (System Testing)</li></ul><p>I also discuss:</p><ul><li>A book rewrite</li><li>Progress on transcripts</li><li>A story from the slack channel</li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>A listener requested that I start covering some terminology. <br> I think it's a great idea.</p><p>Covered in this episode:</p><ul><li>Test Fixtures</li><li>Subcutaneous Testing</li><li>End to End Testing (System Testing)</li></ul><p>I also discuss:</p><ul><li>A book rewrite</li><li>Progress on transcripts</li><li>A story from the slack channel</li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 31 Aug 2016 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/21.mp3" length="8850552" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1087</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>A listener requested that I start covering some terminology. <br> I think it's a great idea.</p><p>Covered in this episode:</p><ul><li>Test Fixtures</li><li>Subcutaneous Testing</li><li>End to End Testing (System Testing)</li></ul><p>I also discuss:</p><ul><li>A book rewrite</li><li>Progress on transcripts</li><li>A story from the slack channel</li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>20: Talk Python To Me - Michael Kennedy</title>
      <itunes:episode>20</itunes:episode>
      <podcast:episode>20</podcast:episode>
      <itunes:title>20: Talk Python To Me - Michael Kennedy</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50612</guid>
      <link>https://pythontest.com/testandcode/episodes/20-talk-python-to-me-host-michael-kennedy</link>
      <description>
        <![CDATA[<p>I talk with Michael about:</p><ul><li>Episodes of his show having to do with testing.</li><li>His transition from employee to podcast host and online training entrepreneur.</li><li>His Python training courses.</li><li>The Pyramid Web framework.</li></ul><p>Courses by Michael</p><ul><li><a href="https://talkpython.fm/course">Explore Python Jumpstart by Building 10 Apps</a></li><li><a href="https://talkpython.fm/pythonic">Explore Write Pythonic Code Like a Seasoned Developer</a></li><li><a href="https://talkpython.fm/launch">Python for Entrepreneurs</a></li></ul><p>Testing related podcast Episodes from Talk Python To Me:</p><ul><li><a href="https://talkpython.fm/episodes/show/10">episode 10: Harry Percival, TDD for the Web in Python, and PythonAnywhere</a><ul><li><a href="https://www.pythonanywhere.com/">PythonAnywhere</a></li><li><a href="http://www.obeythetestinggoat.com/">Harry's book, TDD with Python</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/45">episode 45: Brian Okken, Pragmatic testing and the Testing Column</a><ul><li>Talk Python To Me podcast</li></ul></li><li><a href="https://talkpython.fm/episodes/show/63">episode 63: Austin Bingham, Mutation Testing, Cosmic Ray</a><ul><li><a href="https://github.com/sixty-north/cosmic-ray">Cosmic Ray</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/67"> episode 67: David MacIver, Hypothesis</a><ul><li><a href="http://hypothesis.works/">Hypothesis</a></li></ul></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I talk with Michael about:</p><ul><li>Episodes of his show having to do with testing.</li><li>His transition from employee to podcast host and online training entrepreneur.</li><li>His Python training courses.</li><li>The Pyramid Web framework.</li></ul><p>Courses by Michael</p><ul><li><a href="https://talkpython.fm/course">Explore Python Jumpstart by Building 10 Apps</a></li><li><a href="https://talkpython.fm/pythonic">Explore Write Pythonic Code Like a Seasoned Developer</a></li><li><a href="https://talkpython.fm/launch">Python for Entrepreneurs</a></li></ul><p>Testing related podcast Episodes from Talk Python To Me:</p><ul><li><a href="https://talkpython.fm/episodes/show/10">episode 10: Harry Percival, TDD for the Web in Python, and PythonAnywhere</a><ul><li><a href="https://www.pythonanywhere.com/">PythonAnywhere</a></li><li><a href="http://www.obeythetestinggoat.com/">Harry's book, TDD with Python</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/45">episode 45: Brian Okken, Pragmatic testing and the Testing Column</a><ul><li>Talk Python To Me podcast</li></ul></li><li><a href="https://talkpython.fm/episodes/show/63">episode 63: Austin Bingham, Mutation Testing, Cosmic Ray</a><ul><li><a href="https://github.com/sixty-north/cosmic-ray">Cosmic Ray</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/67"> episode 67: David MacIver, Hypothesis</a><ul><li><a href="http://hypothesis.works/">Hypothesis</a></li></ul></li></ul>]]>
      </content:encoded>
      <pubDate>Fri, 29 Jul 2016 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/20.mp3" length="22889935" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2834</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I talk with Michael about:</p><ul><li>Episodes of his show having to do with testing.</li><li>His transition from employee to podcast host and online training entrepreneur.</li><li>His Python training courses.</li><li>The Pyramid Web framework.</li></ul><p>Courses by Michael</p><ul><li><a href="https://talkpython.fm/course">Explore Python Jumpstart by Building 10 Apps</a></li><li><a href="https://talkpython.fm/pythonic">Explore Write Pythonic Code Like a Seasoned Developer</a></li><li><a href="https://talkpython.fm/launch">Python for Entrepreneurs</a></li></ul><p>Testing related podcast Episodes from Talk Python To Me:</p><ul><li><a href="https://talkpython.fm/episodes/show/10">episode 10: Harry Percival, TDD for the Web in Python, and PythonAnywhere</a><ul><li><a href="https://www.pythonanywhere.com/">PythonAnywhere</a></li><li><a href="http://www.obeythetestinggoat.com/">Harry's book, TDD with Python</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/45">episode 45: Brian Okken, Pragmatic testing and the Testing Column</a><ul><li>Talk Python To Me podcast</li></ul></li><li><a href="https://talkpython.fm/episodes/show/63">episode 63: Austin Bingham, Mutation Testing, Cosmic Ray</a><ul><li><a href="https://github.com/sixty-north/cosmic-ray">Cosmic Ray</a></li></ul></li><li><a href="https://talkpython.fm/episodes/show/67"> episode 67: David MacIver, Hypothesis</a><ul><li><a href="http://hypothesis.works/">Hypothesis</a></li></ul></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Michael Kennedy</podcast:person>
    </item>
    <item>
      <title>19: Python unittest - Robert Collins</title>
      <itunes:episode>19</itunes:episode>
      <podcast:episode>19</podcast:episode>
      <itunes:title>19: Python unittest - Robert Collins</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50598</guid>
      <link>https://pythontest.com/testandcode/episodes/19-python-unittest-with-robert-collins</link>
      <description>
        <![CDATA[<p>Interview with Robert Collins, current core maintainer of Python's unittest module.</p><p>Some of the topics covered</p><ul><li>How did Robert become the maintainer of unittest?</li><li>unittest2 as a rolling backport of unittest</li><li>test and class parametrization with subtest and testscenarios</li><li>Which extension to unittest most closely resembles Pytest fixtures?</li><li>Comparing Pytest and unittest</li><li>Will unittest ever get assert rewriting?</li><li>Future changes to unittest</li></ul><p>I've been re-studying unittest recently and I mostly wanted to ask Robert a bunch of clarifying questions.</p><p>This is an intermediate to advanced discussion of unittest.<br> Many great features of unittest go by quickly in this talk.<br> Please let me know if there's something you'd like me to cover in more depth as a blog post or a future episode.</p><p>Links</p><ul><li><a href="https://docs.python.org/3.5/library/unittest.html">unittest</a></li><li><a href="https://pypi.python.org/pypi/unittest2">unittest2</a></li><li><a href="https://docs.python.org/3.5/installing/">pip</a></li><li><a href="https://docs.python.org/dev/library/unittest.mock.html">mock</a></li><li><a href="https://testtools.readthedocs.io/en/latest/">testtools</a></li><li><a href="https://pypi.python.org/pypi/fixtures">fixtures</a></li><li><a href="https://pypi.python.org/pypi/testscenarios">testscenarios</a></li><li><a href="https://pypi.python.org/pypi/python-subunit">subunit</a></li><li><a href="https://pypi.python.org/pypi/pypiserver">pipserver</a></li><li><a href="https://pypi.python.org/pypi/devpi-server">devpi</a></li><li><a href="https://pypi.python.org/pypi/testresources">testresources</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">TIP (testing in python) mailing list</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Interview with Robert Collins, current core maintainer of Python's unittest module.</p><p>Some of the topics covered</p><ul><li>How did Robert become the maintainer of unittest?</li><li>unittest2 as a rolling backport of unittest</li><li>test and class parametrization with subtest and testscenarios</li><li>Which extension to unittest most closely resembles Pytest fixtures?</li><li>Comparing Pytest and unittest</li><li>Will unittest ever get assert rewriting?</li><li>Future changes to unittest</li></ul><p>I've been re-studying unittest recently and I mostly wanted to ask Robert a bunch of clarifying questions.</p><p>This is an intermediate to advanced discussion of unittest.<br> Many great features of unittest go by quickly in this talk.<br> Please let me know if there's something you'd like me to cover in more depth as a blog post or a future episode.</p><p>Links</p><ul><li><a href="https://docs.python.org/3.5/library/unittest.html">unittest</a></li><li><a href="https://pypi.python.org/pypi/unittest2">unittest2</a></li><li><a href="https://docs.python.org/3.5/installing/">pip</a></li><li><a href="https://docs.python.org/dev/library/unittest.mock.html">mock</a></li><li><a href="https://testtools.readthedocs.io/en/latest/">testtools</a></li><li><a href="https://pypi.python.org/pypi/fixtures">fixtures</a></li><li><a href="https://pypi.python.org/pypi/testscenarios">testscenarios</a></li><li><a href="https://pypi.python.org/pypi/python-subunit">subunit</a></li><li><a href="https://pypi.python.org/pypi/pypiserver">pipserver</a></li><li><a href="https://pypi.python.org/pypi/devpi-server">devpi</a></li><li><a href="https://pypi.python.org/pypi/testresources">testresources</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">TIP (testing in python) mailing list</a></li></ul>]]>
      </content:encoded>
      <pubDate>Wed, 15 Jun 2016 13:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/19.mp3" length="19625528" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2426</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Interview with Robert Collins, current core maintainer of Python's unittest module.</p><p>Some of the topics covered</p><ul><li>How did Robert become the maintainer of unittest?</li><li>unittest2 as a rolling backport of unittest</li><li>test and class parametrization with subtest and testscenarios</li><li>Which extension to unittest most closely resembles Pytest fixtures?</li><li>Comparing Pytest and unittest</li><li>Will unittest ever get assert rewriting?</li><li>Future changes to unittest</li></ul><p>I've been re-studying unittest recently and I mostly wanted to ask Robert a bunch of clarifying questions.</p><p>This is an intermediate to advanced discussion of unittest.<br> Many great features of unittest go by quickly in this talk.<br> Please let me know if there's something you'd like me to cover in more depth as a blog post or a future episode.</p><p>Links</p><ul><li><a href="https://docs.python.org/3.5/library/unittest.html">unittest</a></li><li><a href="https://pypi.python.org/pypi/unittest2">unittest2</a></li><li><a href="https://docs.python.org/3.5/installing/">pip</a></li><li><a href="https://docs.python.org/dev/library/unittest.mock.html">mock</a></li><li><a href="https://testtools.readthedocs.io/en/latest/">testtools</a></li><li><a href="https://pypi.python.org/pypi/fixtures">fixtures</a></li><li><a href="https://pypi.python.org/pypi/testscenarios">testscenarios</a></li><li><a href="https://pypi.python.org/pypi/python-subunit">subunit</a></li><li><a href="https://pypi.python.org/pypi/pypiserver">pipserver</a></li><li><a href="https://pypi.python.org/pypi/devpi-server">devpi</a></li><li><a href="https://pypi.python.org/pypi/testresources">testresources</a></li><li><a href="http://lists.idyll.org/listinfo/testing-in-python">TIP (testing in python) mailing list</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Robert Collins</podcast:person>
    </item>
    <item>
      <title>18: Testing in Startups and Hiring Software Engineers - Joe Stump</title>
      <itunes:episode>18</itunes:episode>
      <podcast:episode>18</podcast:episode>
      <itunes:title>18: Testing in Startups and Hiring Software Engineers - Joe Stump</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50556</guid>
      <link>https://pythontest.com/testandcode/episodes/18-testing-in-startups-and-hiring-software-engineers-with-joe-stump</link>
      <description>
        <![CDATA[<p>In this episode, I interview with Joe Stump, cofounder of Sprintly (<a href="https://sprint.ly">https://sprint.ly</a>), to give the startup perspective to development and testing.</p><p>Joe has spent his career in startups. <br> He's also been involved with hiring and talent acquisition for several startups.</p><p>We talk about testing, continuous integration, code reviews, deployment, tolerance to defects, and how some of those differ between large companies and small companies and startups.</p><p>Then we get into hiring. Specifically, finding and evaluating good engineers, and then getting them to be interested in working for you.</p><p>If you ever want to grow your team size, you need to listen to this.</p><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode, I interview with Joe Stump, cofounder of Sprintly (<a href="https://sprint.ly">https://sprint.ly</a>), to give the startup perspective to development and testing.</p><p>Joe has spent his career in startups. <br> He's also been involved with hiring and talent acquisition for several startups.</p><p>We talk about testing, continuous integration, code reviews, deployment, tolerance to defects, and how some of those differ between large companies and small companies and startups.</p><p>Then we get into hiring. Specifically, finding and evaluating good engineers, and then getting them to be interested in working for you.</p><p>If you ever want to grow your team size, you need to listen to this.</p><p><br></p>]]>
      </content:encoded>
      <pubDate>Tue, 19 Apr 2016 23:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/18.mp3" length="25883633" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3209</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode, I interview with Joe Stump, cofounder of Sprintly (<a href="https://sprint.ly">https://sprint.ly</a>), to give the startup perspective to development and testing.</p><p>Joe has spent his career in startups. <br> He's also been involved with hiring and talent acquisition for several startups.</p><p>We talk about testing, continuous integration, code reviews, deployment, tolerance to defects, and how some of those differ between large companies and small companies and startups.</p><p>Then we get into hiring. Specifically, finding and evaluating good engineers, and then getting them to be interested in working for you.</p><p>If you ever want to grow your team size, you need to listen to this.</p><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://stu.mp">Joe Stump</podcast:person>
    </item>
    <item>
      <title>17: The Travis Foundation - Laura Gaetano</title>
      <itunes:episode>17</itunes:episode>
      <podcast:episode>17</podcast:episode>
      <itunes:title>17: The Travis Foundation - Laura Gaetano</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50539</guid>
      <link>https://pythontest.com/testandcode/episodes/17-the-travis-foundation</link>
      <description>
        <![CDATA[<p>The Travis Foundation. Interview with Laura Gaetano</p><p><strong>Links and things we talked about:</strong></p><ul><li><a href="http://foundation.travis-ci.org">Travis Foundation</a></li><li><a href="http://foundation.travis-ci.org/grants/">Open Source Grants</a></li><li><a href="http://foundation.travis-ci.org/2016/01/25/exercism/">The Foundation's support of Katrina Owen from exercism.io</a></li><li><a href="http://Exercism.io">Exercism.io</a></li><li><a href="http://railsgirlssummerofcode.org/campaign/">Rails Girls summer of code</a></li><li><a href="http://diversitytickets.org">Diversity Tickets</a></li><li>Conference support</li><li><a href="http://speakerinnen.org">Speakerinnen</a></li><li><a href="http://mhprompt.org/">Prompt</a></li></ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The Travis Foundation. Interview with Laura Gaetano</p><p><strong>Links and things we talked about:</strong></p><ul><li><a href="http://foundation.travis-ci.org">Travis Foundation</a></li><li><a href="http://foundation.travis-ci.org/grants/">Open Source Grants</a></li><li><a href="http://foundation.travis-ci.org/2016/01/25/exercism/">The Foundation's support of Katrina Owen from exercism.io</a></li><li><a href="http://Exercism.io">Exercism.io</a></li><li><a href="http://railsgirlssummerofcode.org/campaign/">Rails Girls summer of code</a></li><li><a href="http://diversitytickets.org">Diversity Tickets</a></li><li>Conference support</li><li><a href="http://speakerinnen.org">Speakerinnen</a></li><li><a href="http://mhprompt.org/">Prompt</a></li></ul>]]>
      </content:encoded>
      <pubDate>Mon, 11 Apr 2016 06:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/17.mp3" length="12997597" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1598</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The Travis Foundation. Interview with Laura Gaetano</p><p><strong>Links and things we talked about:</strong></p><ul><li><a href="http://foundation.travis-ci.org">Travis Foundation</a></li><li><a href="http://foundation.travis-ci.org/grants/">Open Source Grants</a></li><li><a href="http://foundation.travis-ci.org/2016/01/25/exercism/">The Foundation's support of Katrina Owen from exercism.io</a></li><li><a href="http://Exercism.io">Exercism.io</a></li><li><a href="http://railsgirlssummerofcode.org/campaign/">Rails Girls summer of code</a></li><li><a href="http://diversitytickets.org">Diversity Tickets</a></li><li>Conference support</li><li><a href="http://speakerinnen.org">Speakerinnen</a></li><li><a href="http://mhprompt.org/">Prompt</a></li></ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Laura ✨🎨</podcast:person>
    </item>
    <item>
      <title>16: Welcome to Test and Code</title>
      <itunes:episode>16</itunes:episode>
      <podcast:episode>16</podcast:episode>
      <itunes:title>16: Welcome to Test and Code</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50516</guid>
      <link>https://pythontest.com/testandcode/episodes/16-welcome-to-test-and-code</link>
      <description>
        <![CDATA[<p>This is a small episode. </p>

<p>I'm changing the name from the "Python Test Podcast" to "Test &amp; Code".<br>
I just want to discuss the reasons behind this change, and take a peek at what's coming up in the future for this podcast.</p>

<p><strong>Links</strong></p>

<ul>
<li><a href="http://testandcode.com/7" rel="nofollow">The Waterfall Model and "Managing the Development of Large Software Systems"</a></li>
<li><a href="http://tesatandcode.com/14" rel="nofollow">Josh Kalderimis from Travis CI</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>This is a small episode. </p>

<p>I'm changing the name from the "Python Test Podcast" to "Test &amp; Code".<br>
I just want to discuss the reasons behind this change, and take a peek at what's coming up in the future for this podcast.</p>

<p><strong>Links</strong></p>

<ul>
<li><a href="http://testandcode.com/7" rel="nofollow">The Waterfall Model and "Managing the Development of Large Software Systems"</a></li>
<li><a href="http://tesatandcode.com/14" rel="nofollow">Josh Kalderimis from Travis CI</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Thu, 31 Mar 2016 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/16.mp3" length="4323161" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>514</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>This is a small episode. </p>

<p>I'm changing the name from the "Python Test Podcast" to "Test &amp; Code".<br>
I just want to discuss the reasons behind this change, and take a peek at what's coming up in the future for this podcast.</p>

<p><strong>Links</strong></p>

<ul>
<li><a href="http://testandcode.com/7" rel="nofollow">The Waterfall Model and "Managing the Development of Large Software Systems"</a></li>
<li><a href="http://tesatandcode.com/14" rel="nofollow">Josh Kalderimis from Travis CI</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>15: Lean Software Development</title>
      <itunes:episode>15</itunes:episode>
      <podcast:episode>15</podcast:episode>
      <itunes:title>15: Lean Software Development</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50503</guid>
      <link>https://pythontest.com/testandcode/episodes/15-lean-software-development</link>
      <description>
        <![CDATA[<p><b>An introduction to Lean Software Development</b></p>

<p>This is a quick intro to the concepts of Lean Software Development.</p>

<p>I'm starting a journey of trying to figure out how to apply lean principles to software development in the context of 2016/2017.</p>

<p><b>Links</b></p>

<ul>
<li><a href="http://amzn.to/223fkLo" rel="nofollow">Lean Software Development</a> book by Mary &amp; Tom Poppendieck</li>
<li><a href="https://en.wikipedia.org/wiki/Lean_software_development" rel="nofollow">wikipedia</a> entry for Lean Software Development</li>
<li><a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters of the show</a></li>
<li><a href="https://talkpython.fm/" rel="nofollow">Talk Python to Me</a> Podcast</li>
<li><a href="https://www.kickstarter.com/projects/mikeckennedy/python-jumpstart-by-building-10-apps-video-course?ref=card" rel="nofollow">Python Jumpstart by Building 10 Apps - video course</a></li>
<li><a href="http://pytest.org/latest/announce/sprint2016.html" rel="nofollow">pytest sprint</a></li>
<li><a href="http://pytest.org" rel="nofollow">pytest.org</a></li>
<li><a href="https://www.indiegogo.com/projects/python-testing-sprint-mid-2016#/" rel="nofollow">pytest/tox indiegogo campaign</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p><b>An introduction to Lean Software Development</b></p>

<p>This is a quick intro to the concepts of Lean Software Development.</p>

<p>I'm starting a journey of trying to figure out how to apply lean principles to software development in the context of 2016/2017.</p>

<p><b>Links</b></p>

<ul>
<li><a href="http://amzn.to/223fkLo" rel="nofollow">Lean Software Development</a> book by Mary &amp; Tom Poppendieck</li>
<li><a href="https://en.wikipedia.org/wiki/Lean_software_development" rel="nofollow">wikipedia</a> entry for Lean Software Development</li>
<li><a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters of the show</a></li>
<li><a href="https://talkpython.fm/" rel="nofollow">Talk Python to Me</a> Podcast</li>
<li><a href="https://www.kickstarter.com/projects/mikeckennedy/python-jumpstart-by-building-10-apps-video-course?ref=card" rel="nofollow">Python Jumpstart by Building 10 Apps - video course</a></li>
<li><a href="http://pytest.org/latest/announce/sprint2016.html" rel="nofollow">pytest sprint</a></li>
<li><a href="http://pytest.org" rel="nofollow">pytest.org</a></li>
<li><a href="https://www.indiegogo.com/projects/python-testing-sprint-mid-2016#/" rel="nofollow">pytest/tox indiegogo campaign</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Wed, 09 Mar 2016 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/15.mp3" length="5488766" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>659</itunes:duration>
      <itunes:summary>
        <![CDATA[<p><b>An introduction to Lean Software Development</b></p>

<p>This is a quick intro to the concepts of Lean Software Development.</p>

<p>I'm starting a journey of trying to figure out how to apply lean principles to software development in the context of 2016/2017.</p>

<p><b>Links</b></p>

<ul>
<li><a href="http://amzn.to/223fkLo" rel="nofollow">Lean Software Development</a> book by Mary &amp; Tom Poppendieck</li>
<li><a href="https://en.wikipedia.org/wiki/Lean_software_development" rel="nofollow">wikipedia</a> entry for Lean Software Development</li>
<li><a href="http://patreon.com/testpodcast" rel="nofollow">Patreon supporters of the show</a></li>
<li><a href="https://talkpython.fm/" rel="nofollow">Talk Python to Me</a> Podcast</li>
<li><a href="https://www.kickstarter.com/projects/mikeckennedy/python-jumpstart-by-building-10-apps-video-course?ref=card" rel="nofollow">Python Jumpstart by Building 10 Apps - video course</a></li>
<li><a href="http://pytest.org/latest/announce/sprint2016.html" rel="nofollow">pytest sprint</a></li>
<li><a href="http://pytest.org" rel="nofollow">pytest.org</a></li>
<li><a href="https://www.indiegogo.com/projects/python-testing-sprint-mid-2016#/" rel="nofollow">pytest/tox indiegogo campaign</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>14: Continuous Integration with Travis CI – Josh Kalderimis</title>
      <itunes:episode>14</itunes:episode>
      <podcast:episode>14</podcast:episode>
      <itunes:title>14: Continuous Integration with Travis CI – Josh Kalderimis</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50469</guid>
      <link>https://pythontest.com/testandcode/episodes/14-continuous-integration-with-travis-ci-josh-kalderimis</link>
      <description>
        <![CDATA[<p><b>Interview with Josh Kalderimis from Travis CI.</b></p>

<p>Josh is a co-founder and Chief Post-It Officer at Travis CI. </p>

<p><strong>Topics</strong></p>

<ul>
<li>What is Continuous Integration, CI</li>
<li>What is Travis CI</li>
<li>Some history of the company</li>
<li>travis-ci.org vs travis-ci.com and merging the two</li>
<li>Enterprise and the importance of security</li>
<li>Feature questions

<ul>
<li>Travis vs Jenkins</li>
<li>Travis notification through Slack</li>
<li>Reporting history of Travis results</li>
<li>Dealing with pytest results status other than pass/fail</li>
<li>Capturing std out and stderr logging from tests</li>
<li>Build artifacts</li>
<li>Tox and Travis</li>
<li>Using Selenium</li>
</ul></li>
<li>What does a Chief Post-It Officer do</li>
<li>Differentiation between Travis and other CI options</li>
<li>Using Slack to keep remote teams communicating well</li>
<li>Travis team</li>
<li>Funding open source projects</li>
<li>Travis Foundation</li>
<li>Rails Girls Summer of Code</li>
<li>Open source grants</li>
<li>Mustaches and beards</li>
<li>Shite shirts</li>
<li>New Zealand</li>
<li>What does Team Periwinkle do</li>
</ul>

<p><strong>Links</strong></p>

<ul>
<li><a href="https://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/" rel="nofollow">Jeff Knupp's Open Sourcing a Python Project the Right Way</a></li>
<li><a href="http://svenfuchs.com/2011/2/5/travis-a-distributed-build-server-tool-for-the-ruby-community" rel="nofollow">Sven's blog post when Travis started</a></li>
<li><a href="https://travis-ci.com/about" rel="nofollow">Sven's mustache and Josh's beard</a></li>
<li><a href="http://travis-ci.org" rel="nofollow">Travis CI for open source </a></li>
<li><a href="http://travis-ci.com" rel="nofollow">Travis CI for private repositories and enterprise</a></li>
<li><a href="https://slack.com/" rel="nofollow">Slack</a></li>
<li><a href="http://foundation.travis-ci.org/" rel="nofollow">Travis Foundation</a></li>
<li><a href="http://railsgirlssummerofcode.org/" rel="nofollow">Rails Girls Summer of Code</a></li>
<li><a href="https://talkpython.fm/episodes/show/45/the-python-testing-column-now-a-thing" rel="nofollow">Talk Python to Me Podcast</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p><b>Interview with Josh Kalderimis from Travis CI.</b></p>

<p>Josh is a co-founder and Chief Post-It Officer at Travis CI. </p>

<p><strong>Topics</strong></p>

<ul>
<li>What is Continuous Integration, CI</li>
<li>What is Travis CI</li>
<li>Some history of the company</li>
<li>travis-ci.org vs travis-ci.com and merging the two</li>
<li>Enterprise and the importance of security</li>
<li>Feature questions

<ul>
<li>Travis vs Jenkins</li>
<li>Travis notification through Slack</li>
<li>Reporting history of Travis results</li>
<li>Dealing with pytest results status other than pass/fail</li>
<li>Capturing std out and stderr logging from tests</li>
<li>Build artifacts</li>
<li>Tox and Travis</li>
<li>Using Selenium</li>
</ul></li>
<li>What does a Chief Post-It Officer do</li>
<li>Differentiation between Travis and other CI options</li>
<li>Using Slack to keep remote teams communicating well</li>
<li>Travis team</li>
<li>Funding open source projects</li>
<li>Travis Foundation</li>
<li>Rails Girls Summer of Code</li>
<li>Open source grants</li>
<li>Mustaches and beards</li>
<li>Shite shirts</li>
<li>New Zealand</li>
<li>What does Team Periwinkle do</li>
</ul>

<p><strong>Links</strong></p>

<ul>
<li><a href="https://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/" rel="nofollow">Jeff Knupp's Open Sourcing a Python Project the Right Way</a></li>
<li><a href="http://svenfuchs.com/2011/2/5/travis-a-distributed-build-server-tool-for-the-ruby-community" rel="nofollow">Sven's blog post when Travis started</a></li>
<li><a href="https://travis-ci.com/about" rel="nofollow">Sven's mustache and Josh's beard</a></li>
<li><a href="http://travis-ci.org" rel="nofollow">Travis CI for open source </a></li>
<li><a href="http://travis-ci.com" rel="nofollow">Travis CI for private repositories and enterprise</a></li>
<li><a href="https://slack.com/" rel="nofollow">Slack</a></li>
<li><a href="http://foundation.travis-ci.org/" rel="nofollow">Travis Foundation</a></li>
<li><a href="http://railsgirlssummerofcode.org/" rel="nofollow">Rails Girls Summer of Code</a></li>
<li><a href="https://talkpython.fm/episodes/show/45/the-python-testing-column-now-a-thing" rel="nofollow">Talk Python to Me Podcast</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Thu, 25 Feb 2016 03:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/14.mp3" length="28200603" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>3498</itunes:duration>
      <itunes:summary>
        <![CDATA[<p><b>Interview with Josh Kalderimis from Travis CI.</b></p>

<p>Josh is a co-founder and Chief Post-It Officer at Travis CI. </p>

<p><strong>Topics</strong></p>

<ul>
<li>What is Continuous Integration, CI</li>
<li>What is Travis CI</li>
<li>Some history of the company</li>
<li>travis-ci.org vs travis-ci.com and merging the two</li>
<li>Enterprise and the importance of security</li>
<li>Feature questions

<ul>
<li>Travis vs Jenkins</li>
<li>Travis notification through Slack</li>
<li>Reporting history of Travis results</li>
<li>Dealing with pytest results status other than pass/fail</li>
<li>Capturing std out and stderr logging from tests</li>
<li>Build artifacts</li>
<li>Tox and Travis</li>
<li>Using Selenium</li>
</ul></li>
<li>What does a Chief Post-It Officer do</li>
<li>Differentiation between Travis and other CI options</li>
<li>Using Slack to keep remote teams communicating well</li>
<li>Travis team</li>
<li>Funding open source projects</li>
<li>Travis Foundation</li>
<li>Rails Girls Summer of Code</li>
<li>Open source grants</li>
<li>Mustaches and beards</li>
<li>Shite shirts</li>
<li>New Zealand</li>
<li>What does Team Periwinkle do</li>
</ul>

<p><strong>Links</strong></p>

<ul>
<li><a href="https://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/" rel="nofollow">Jeff Knupp's Open Sourcing a Python Project the Right Way</a></li>
<li><a href="http://svenfuchs.com/2011/2/5/travis-a-distributed-build-server-tool-for-the-ruby-community" rel="nofollow">Sven's blog post when Travis started</a></li>
<li><a href="https://travis-ci.com/about" rel="nofollow">Sven's mustache and Josh's beard</a></li>
<li><a href="http://travis-ci.org" rel="nofollow">Travis CI for open source </a></li>
<li><a href="http://travis-ci.com" rel="nofollow">Travis CI for private repositories and enterprise</a></li>
<li><a href="https://slack.com/" rel="nofollow">Slack</a></li>
<li><a href="http://foundation.travis-ci.org/" rel="nofollow">Travis Foundation</a></li>
<li><a href="http://railsgirlssummerofcode.org/" rel="nofollow">Rails Girls Summer of Code</a></li>
<li><a href="https://talkpython.fm/episodes/show/45/the-python-testing-column-now-a-thing" rel="nofollow">Talk Python to Me Podcast</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest">Josh Kalderimis</podcast:person>
    </item>
    <item>
      <title>13: Ian Cordasco – Betamax</title>
      <itunes:episode>13</itunes:episode>
      <podcast:episode>13</podcast:episode>
      <itunes:title>13: Ian Cordasco – Betamax</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50451</guid>
      <link>https://pythontest.com/testandcode/episodes/13-ian-cordasco-betamax</link>
      <description>
        <![CDATA[<p><b>Testing apps that use requests without using mock.</b></p>

<p>Interview with Ian Cordasco (<a href="https://github.com/sigmavirus24" rel="nofollow">@sigmavirus24</a>)</p>

<p><strong>Topics:</strong></p>

<ul>
<li>Betamax - python library for replaying requests interactions for use in testing.</li>
<li>requests</li>
<li>github3.py</li>
<li>Pycon 2015 talk: Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</li>
<li>Pytest and using Betamax with pytest fixtures</li>
<li>The utility (or uselessness) of teaching programming with Java (My own rant mainly)</li>
<li>Rackspace and Ian’s role at Rackspace and OpenStack</li>
<li>Python Code Quality Authority: flake8, pep8, mccabe, pylint, astroid, …</li>
<li>Static code analysis and what to use which tool when.</li>
<li>Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li><a href="https://semaphoreci.com/community/tutorials/testing-python-requests-with-betamax" rel="nofollow">Testing Python-Requests with Betamax</a></li>
<li><a href="https://youtu.be/YHbKxFcDltM?t=1m55s" rel="nofollow">Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</a></li>
<li><a href="https://pypi.python.org/pypi/github3.py" rel="nofollow">github3.py</a></li>
<li><a href="http://docs.python-requests.org/en/master/" rel="nofollow">requests</a></li>
<li><a href="https://www.rackspace.com/" rel="nofollow">Rackspace</a></li>
<li><a href="https://www.openstack.org/" rel="nofollow">Openstack</a></li>
<li><a href="https://github.com/PyCQA" rel="nofollow">Python Code Quality Authority</a> and <a href="http://meta.pycqa.org/en/latest/" rel="nofollow">documentation</a></li>
<li><a href="https://about.gitlab.com/" rel="nofollow">GitLab</a></li>
<li><a href="https://www.youtube.com/watch?v=wf-BqAjZb8M" rel="nofollow">Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</a></li>
</ul>

<p><strong>Other Betamax resources:</strong></p>

<ul>
<li><a href="http://www.roadsi.de/betamaxing-boto3.html" rel="nofollow">Betamaxing Boto3</a></li>
<li><a href="http://www.coglib.com/%7Eicordasc/blog/2015/07/betamax-050-now-with-a-pytest-fixture.html" rel="nofollow">Using Betamax with pytest fixtures</a></li>
<li><a href="http://nedbatchelder.com/blog/201601/isolated_memoize.html" rel="nofollow">Isolated @memoize</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p><b>Testing apps that use requests without using mock.</b></p>

<p>Interview with Ian Cordasco (<a href="https://github.com/sigmavirus24" rel="nofollow">@sigmavirus24</a>)</p>

<p><strong>Topics:</strong></p>

<ul>
<li>Betamax - python library for replaying requests interactions for use in testing.</li>
<li>requests</li>
<li>github3.py</li>
<li>Pycon 2015 talk: Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</li>
<li>Pytest and using Betamax with pytest fixtures</li>
<li>The utility (or uselessness) of teaching programming with Java (My own rant mainly)</li>
<li>Rackspace and Ian’s role at Rackspace and OpenStack</li>
<li>Python Code Quality Authority: flake8, pep8, mccabe, pylint, astroid, …</li>
<li>Static code analysis and what to use which tool when.</li>
<li>Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li><a href="https://semaphoreci.com/community/tutorials/testing-python-requests-with-betamax" rel="nofollow">Testing Python-Requests with Betamax</a></li>
<li><a href="https://youtu.be/YHbKxFcDltM?t=1m55s" rel="nofollow">Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</a></li>
<li><a href="https://pypi.python.org/pypi/github3.py" rel="nofollow">github3.py</a></li>
<li><a href="http://docs.python-requests.org/en/master/" rel="nofollow">requests</a></li>
<li><a href="https://www.rackspace.com/" rel="nofollow">Rackspace</a></li>
<li><a href="https://www.openstack.org/" rel="nofollow">Openstack</a></li>
<li><a href="https://github.com/PyCQA" rel="nofollow">Python Code Quality Authority</a> and <a href="http://meta.pycqa.org/en/latest/" rel="nofollow">documentation</a></li>
<li><a href="https://about.gitlab.com/" rel="nofollow">GitLab</a></li>
<li><a href="https://www.youtube.com/watch?v=wf-BqAjZb8M" rel="nofollow">Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</a></li>
</ul>

<p><strong>Other Betamax resources:</strong></p>

<ul>
<li><a href="http://www.roadsi.de/betamaxing-boto3.html" rel="nofollow">Betamaxing Boto3</a></li>
<li><a href="http://www.coglib.com/%7Eicordasc/blog/2015/07/betamax-050-now-with-a-pytest-fixture.html" rel="nofollow">Using Betamax with pytest fixtures</a></li>
<li><a href="http://nedbatchelder.com/blog/201601/isolated_memoize.html" rel="nofollow">Isolated @memoize</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Wed, 17 Feb 2016 12:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/13.mp3" length="10113326" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1244</itunes:duration>
      <itunes:summary>
        <![CDATA[<p><b>Testing apps that use requests without using mock.</b></p>

<p>Interview with Ian Cordasco (<a href="https://github.com/sigmavirus24" rel="nofollow">@sigmavirus24</a>)</p>

<p><strong>Topics:</strong></p>

<ul>
<li>Betamax - python library for replaying requests interactions for use in testing.</li>
<li>requests</li>
<li>github3.py</li>
<li>Pycon 2015 talk: Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</li>
<li>Pytest and using Betamax with pytest fixtures</li>
<li>The utility (or uselessness) of teaching programming with Java (My own rant mainly)</li>
<li>Rackspace and Ian’s role at Rackspace and OpenStack</li>
<li>Python Code Quality Authority: flake8, pep8, mccabe, pylint, astroid, …</li>
<li>Static code analysis and what to use which tool when.</li>
<li>Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</li>
</ul>

<p><strong>Links:</strong></p>

<ul>
<li><a href="https://semaphoreci.com/community/tutorials/testing-python-requests-with-betamax" rel="nofollow">Testing Python-Requests with Betamax</a></li>
<li><a href="https://youtu.be/YHbKxFcDltM?t=1m55s" rel="nofollow">Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015</a></li>
<li><a href="https://pypi.python.org/pypi/github3.py" rel="nofollow">github3.py</a></li>
<li><a href="http://docs.python-requests.org/en/master/" rel="nofollow">requests</a></li>
<li><a href="https://www.rackspace.com/" rel="nofollow">Rackspace</a></li>
<li><a href="https://www.openstack.org/" rel="nofollow">Openstack</a></li>
<li><a href="https://github.com/PyCQA" rel="nofollow">Python Code Quality Authority</a> and <a href="http://meta.pycqa.org/en/latest/" rel="nofollow">documentation</a></li>
<li><a href="https://about.gitlab.com/" rel="nofollow">GitLab</a></li>
<li><a href="https://www.youtube.com/watch?v=wf-BqAjZb8M" rel="nofollow">Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015</a></li>
</ul>

<p><strong>Other Betamax resources:</strong></p>

<ul>
<li><a href="http://www.roadsi.de/betamaxing-boto3.html" rel="nofollow">Betamaxing Boto3</a></li>
<li><a href="http://www.coglib.com/%7Eicordasc/blog/2015/07/betamax-050-now-with-a-pytest-fixture.html" rel="nofollow">Using Betamax with pytest fixtures</a></li>
<li><a href="http://nedbatchelder.com/blog/201601/isolated_memoize.html" rel="nofollow">Isolated @memoize</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="https://blog.ian.stapletoncordas.co">Ian Stapleton Cordasco</podcast:person>
    </item>
    <item>
      <title>12: Coverage.py with Ned Batchelder</title>
      <itunes:episode>12</itunes:episode>
      <podcast:episode>12</podcast:episode>
      <itunes:title>12: Coverage.py with Ned Batchelder</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50424</guid>
      <link>https://pythontest.com/testandcode/episodes/12-coverage-py-with-ned-batchelder</link>
      <description>
        <![CDATA[<p>In this episode I interview Ned Batchelder.</p>

<p>I know that coverage.py is very important to a lot of people to understand how much of their code is being covered by their test suites.<br>
Since I'm far from an expert on coverage, I asked Ned to discuss it on the show.</p>

<p>I'm also quite a fan of Ned's 2014 PyCon talk "Getting Started Testing", so I definitely asked him about that.</p>

<p>We also discuss edX, Python user groups, PyCon talks, and more.</p>

<p>Some of what's covered (pun intended) in this episode:</p>

<ul>
<li>coverage.py

<ul>
<li>types of coverage

<ul>
<li>Line coverage</li>
<li>branch coverage</li>
<li>Behavior coverage</li>
<li>Data coverage</li>
</ul></li>
<li>How Ned became the owner of coverage.py</li>
<li>Running tests from coverage.py vs running coverage from test runner.</li>
</ul></li>
<li>edX

<ul>
<li>what is it</li>
<li>what Ned's role is</li>
</ul></li>
<li>Ned's blog</li>
<li>Ned's PyCon 2014 talk "Getting Started Testing"

<ul>
<li>Teaching testing and the difficulty of the classes being part of unittest</li>
<li>fixtures package </li>
<li>some of the difficulties of teaching unittest because of it's class based system.</li>
<li>the history of classes in unittest coming from java's jUnit implementation</li>
</ul></li>
<li>Boston's Python Group</li>
<li>PyCon in Portland</li>
<li>Ned to do a talk here "Machete mode debugging".</li>
<li>Practicing PyCon talks at local group meetings.</li>
<li>At the very least, practice it in front of a live audience.</li>
</ul>

<p><em>Links:</em></p>

<ul>
<li><a href="http://nedbatchelder.com/" rel="nofollow">Ned Batchelder</a> </li>
<li><a href="https://pypi.python.org/pypi/coverage" rel="nofollow">Coverage</a></li>
<li><a href="https://coverage.readthedocs.org" rel="nofollow">Coverage documentation</a></li>
<li><a href="https://pypi.python.org/pypi/django-nose" rel="nofollow">django-nose</a></li>
<li><a href="https://pypi.python.org/pypi/pytest-django" rel="nofollow">pytest-django</a></li>
<li><a href="https://www.edx.org/" rel="nofollow">edX</a></li>
<li><a href="https://open.edx.org/" rel="nofollow">open edX</a></li>
<li><a href="http://www.meetup.com/bostonpython/" rel="nofollow">Boston Python User Group</a></li>
<li><a href="http://www.meetup.com/pdxpython/" rel="nofollow">Portland Python User Group</a> - I need to go to these</li>
<li><a href="https://us.pycon.org/2016/" rel="nofollow">PyCon 2016</a> - Planning on attending, it's in Portland. Yay!</li>
<li><a href="http://nedbatchelder.com/text/test0.html" rel="nofollow">Getting Started Testing</a> - Ned's 2014 Pycon talk</li>
</ul><p>Special Guest: Ned Batchelder.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In this episode I interview Ned Batchelder.</p>

<p>I know that coverage.py is very important to a lot of people to understand how much of their code is being covered by their test suites.<br>
Since I'm far from an expert on coverage, I asked Ned to discuss it on the show.</p>

<p>I'm also quite a fan of Ned's 2014 PyCon talk "Getting Started Testing", so I definitely asked him about that.</p>

<p>We also discuss edX, Python user groups, PyCon talks, and more.</p>

<p>Some of what's covered (pun intended) in this episode:</p>

<ul>
<li>coverage.py

<ul>
<li>types of coverage

<ul>
<li>Line coverage</li>
<li>branch coverage</li>
<li>Behavior coverage</li>
<li>Data coverage</li>
</ul></li>
<li>How Ned became the owner of coverage.py</li>
<li>Running tests from coverage.py vs running coverage from test runner.</li>
</ul></li>
<li>edX

<ul>
<li>what is it</li>
<li>what Ned's role is</li>
</ul></li>
<li>Ned's blog</li>
<li>Ned's PyCon 2014 talk "Getting Started Testing"

<ul>
<li>Teaching testing and the difficulty of the classes being part of unittest</li>
<li>fixtures package </li>
<li>some of the difficulties of teaching unittest because of it's class based system.</li>
<li>the history of classes in unittest coming from java's jUnit implementation</li>
</ul></li>
<li>Boston's Python Group</li>
<li>PyCon in Portland</li>
<li>Ned to do a talk here "Machete mode debugging".</li>
<li>Practicing PyCon talks at local group meetings.</li>
<li>At the very least, practice it in front of a live audience.</li>
</ul>

<p><em>Links:</em></p>

<ul>
<li><a href="http://nedbatchelder.com/" rel="nofollow">Ned Batchelder</a> </li>
<li><a href="https://pypi.python.org/pypi/coverage" rel="nofollow">Coverage</a></li>
<li><a href="https://coverage.readthedocs.org" rel="nofollow">Coverage documentation</a></li>
<li><a href="https://pypi.python.org/pypi/django-nose" rel="nofollow">django-nose</a></li>
<li><a href="https://pypi.python.org/pypi/pytest-django" rel="nofollow">pytest-django</a></li>
<li><a href="https://www.edx.org/" rel="nofollow">edX</a></li>
<li><a href="https://open.edx.org/" rel="nofollow">open edX</a></li>
<li><a href="http://www.meetup.com/bostonpython/" rel="nofollow">Boston Python User Group</a></li>
<li><a href="http://www.meetup.com/pdxpython/" rel="nofollow">Portland Python User Group</a> - I need to go to these</li>
<li><a href="https://us.pycon.org/2016/" rel="nofollow">PyCon 2016</a> - Planning on attending, it's in Portland. Yay!</li>
<li><a href="http://nedbatchelder.com/text/test0.html" rel="nofollow">Getting Started Testing</a> - Ned's 2014 Pycon talk</li>
</ul><p>Special Guest: Ned Batchelder.</p>]]>
      </content:encoded>
      <pubDate>Tue, 09 Feb 2016 23:30:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/12.mp3" length="19717324" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2438</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In this episode I interview Ned Batchelder.</p>

<p>I know that coverage.py is very important to a lot of people to understand how much of their code is being covered by their test suites.<br>
Since I'm far from an expert on coverage, I asked Ned to discuss it on the show.</p>

<p>I'm also quite a fan of Ned's 2014 PyCon talk "Getting Started Testing", so I definitely asked him about that.</p>

<p>We also discuss edX, Python user groups, PyCon talks, and more.</p>

<p>Some of what's covered (pun intended) in this episode:</p>

<ul>
<li>coverage.py

<ul>
<li>types of coverage

<ul>
<li>Line coverage</li>
<li>branch coverage</li>
<li>Behavior coverage</li>
<li>Data coverage</li>
</ul></li>
<li>How Ned became the owner of coverage.py</li>
<li>Running tests from coverage.py vs running coverage from test runner.</li>
</ul></li>
<li>edX

<ul>
<li>what is it</li>
<li>what Ned's role is</li>
</ul></li>
<li>Ned's blog</li>
<li>Ned's PyCon 2014 talk "Getting Started Testing"

<ul>
<li>Teaching testing and the difficulty of the classes being part of unittest</li>
<li>fixtures package </li>
<li>some of the difficulties of teaching unittest because of it's class based system.</li>
<li>the history of classes in unittest coming from java's jUnit implementation</li>
</ul></li>
<li>Boston's Python Group</li>
<li>PyCon in Portland</li>
<li>Ned to do a talk here "Machete mode debugging".</li>
<li>Practicing PyCon talks at local group meetings.</li>
<li>At the very least, practice it in front of a live audience.</li>
</ul>

<p><em>Links:</em></p>

<ul>
<li><a href="http://nedbatchelder.com/" rel="nofollow">Ned Batchelder</a> </li>
<li><a href="https://pypi.python.org/pypi/coverage" rel="nofollow">Coverage</a></li>
<li><a href="https://coverage.readthedocs.org" rel="nofollow">Coverage documentation</a></li>
<li><a href="https://pypi.python.org/pypi/django-nose" rel="nofollow">django-nose</a></li>
<li><a href="https://pypi.python.org/pypi/pytest-django" rel="nofollow">pytest-django</a></li>
<li><a href="https://www.edx.org/" rel="nofollow">edX</a></li>
<li><a href="https://open.edx.org/" rel="nofollow">open edX</a></li>
<li><a href="http://www.meetup.com/bostonpython/" rel="nofollow">Boston Python User Group</a></li>
<li><a href="http://www.meetup.com/pdxpython/" rel="nofollow">Portland Python User Group</a> - I need to go to these</li>
<li><a href="https://us.pycon.org/2016/" rel="nofollow">PyCon 2016</a> - Planning on attending, it's in Portland. Yay!</li>
<li><a href="http://nedbatchelder.com/text/test0.html" rel="nofollow">Getting Started Testing</a> - Ned's 2014 Pycon talk</li>
</ul><p>Special Guest: Ned Batchelder.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>11: pytest assert magic</title>
      <itunes:episode>11</itunes:episode>
      <podcast:episode>11</podcast:episode>
      <itunes:title>11: pytest assert magic</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50411</guid>
      <link>https://pythontest.com/testandcode/episodes/11-pytest-assert-magic</link>
      <description>
        <![CDATA[<p>How pytest, unittest, and nose deal with assertions.</p>

<p>The job of the test framework to tell developers how and why their tests failed is a difficult job.<br><br>
In this episode I talk about assert helper functions and the 3 methods pytest uses to get around having users need to use assert helper functions.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>How pytest, unittest, and nose deal with assertions.</p>

<p>The job of the test framework to tell developers how and why their tests failed is a difficult job.<br><br>
In this episode I talk about assert helper functions and the 3 methods pytest uses to get around having users need to use assert helper functions.</p>]]>
      </content:encoded>
      <pubDate>Thu, 04 Feb 2016 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/11.mp3" length="6832737" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>827</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>How pytest, unittest, and nose deal with assertions.</p>

<p>The job of the test framework to tell developers how and why their tests failed is a difficult job.<br><br>
In this episode I talk about assert helper functions and the 3 methods pytest uses to get around having users need to use assert helper functions.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>10: Test Case Design using Given-When-Then from BDD</title>
      <itunes:episode>10</itunes:episode>
      <podcast:episode>10</podcast:episode>
      <itunes:title>10: Test Case Design using Given-When-Then from BDD</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50393</guid>
      <link>https://pythontest.com/testandcode/episodes/10-test-case-design-using-given-when-then-from-bdd</link>
      <description>
        <![CDATA[<p>Given-When-Then is borrowed from BDD and is my favorite structure for test case design.</p>

<p>It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests.</p>

<ul>
<li>The Given-When-Then structure for test method/function development.</li>
<li>How and why to utilize fixtures for your given or precondition code.</li>
<li>Similarities with other structure discriptions.

<ul>
<li>Setup-Test-Teardown</li>
<li>Setup-Excercise-Verify-Teardown.</li>
<li>Arrange-Act-Assert</li>
<li>Preconditions-Trigger-Postconditions.</li>
</ul></li>
<li>Benefits

<ul>
<li>Communicate the purpose of your test more clearly</li>
<li>Focus your thinking while writing the test</li>
<li>Make test writing faster</li>
<li>Make it easier to re-use parts of your test</li>
<li>Highlight the assumptions you are making about the test preconditions</li>
<li>Highlight what outcomes you are expecting and testing against.</li>
</ul></li>
</ul>

<p><strong>Links discussed in the show:</strong></p>

<ul>
<li><a href="http://pythontesting.net/start-here" rel="nofollow">Mechanics of pytest, unittest, nose</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures (series of posts starting here)</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts" rel="nofollow">pytest style fixtures</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/#params" rel="nofollow">pytest parameterized fixtures</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Given-When-Then is borrowed from BDD and is my favorite structure for test case design.</p>

<p>It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests.</p>

<ul>
<li>The Given-When-Then structure for test method/function development.</li>
<li>How and why to utilize fixtures for your given or precondition code.</li>
<li>Similarities with other structure discriptions.

<ul>
<li>Setup-Test-Teardown</li>
<li>Setup-Excercise-Verify-Teardown.</li>
<li>Arrange-Act-Assert</li>
<li>Preconditions-Trigger-Postconditions.</li>
</ul></li>
<li>Benefits

<ul>
<li>Communicate the purpose of your test more clearly</li>
<li>Focus your thinking while writing the test</li>
<li>Make test writing faster</li>
<li>Make it easier to re-use parts of your test</li>
<li>Highlight the assumptions you are making about the test preconditions</li>
<li>Highlight what outcomes you are expecting and testing against.</li>
</ul></li>
</ul>

<p><strong>Links discussed in the show:</strong></p>

<ul>
<li><a href="http://pythontesting.net/start-here" rel="nofollow">Mechanics of pytest, unittest, nose</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures (series of posts starting here)</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts" rel="nofollow">pytest style fixtures</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/#params" rel="nofollow">pytest parameterized fixtures</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Sun, 31 Jan 2016 00:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/10.mp3" length="10015657" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1225</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Given-When-Then is borrowed from BDD and is my favorite structure for test case design.</p>

<p>It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests.</p>

<ul>
<li>The Given-When-Then structure for test method/function development.</li>
<li>How and why to utilize fixtures for your given or precondition code.</li>
<li>Similarities with other structure discriptions.

<ul>
<li>Setup-Test-Teardown</li>
<li>Setup-Excercise-Verify-Teardown.</li>
<li>Arrange-Act-Assert</li>
<li>Preconditions-Trigger-Postconditions.</li>
</ul></li>
<li>Benefits

<ul>
<li>Communicate the purpose of your test more clearly</li>
<li>Focus your thinking while writing the test</li>
<li>Make test writing faster</li>
<li>Make it easier to re-use parts of your test</li>
<li>Highlight the assumptions you are making about the test preconditions</li>
<li>Highlight what outcomes you are expecting and testing against.</li>
</ul></li>
</ul>

<p><strong>Links discussed in the show:</strong></p>

<ul>
<li><a href="http://pythontesting.net/start-here" rel="nofollow">Mechanics of pytest, unittest, nose</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures (series of posts starting here)</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts" rel="nofollow">pytest style fixtures</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/#params" rel="nofollow">pytest parameterized fixtures</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>9: Harry Percival : Testing Web Apps with Python, Selenium, Django</title>
      <itunes:episode>9</itunes:episode>
      <podcast:episode>9</podcast:episode>
      <itunes:title>9: Harry Percival : Testing Web Apps with Python, Selenium, Django</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50370</guid>
      <link>https://pythontest.com/testandcode/episodes/9-harry-percival-testing-web-apps-with-python-selenium-django</link>
      <description>
        <![CDATA[<ul><li>Intro to Harry Percival, his background and story of how he got into TDD and ended up writing a <a href="http://amzn.to/1SqW1t3">book</a></li><li>Comparing using unittest and pytest with applicability to testing django projects. </li><li>Functional end to end testing with selenium.</li><li>The django test client for middle level tests.</li><li>test isolation</li><li>django and isolated unit tests</li><li>unit tests vs integration tests</li><li>Testing done by the development team without an external QA</li><li>Double loop TDD: Functional test first, then unit tests</li><li>Spikes: investigations without tests</li><li>Harry's experience with having a freely available web version of a book that is also intended to be sold.</li></ul><p><strong>Update: Comment from Harry Percival on 19-Jan-2014</strong><br> I might have been a bit down on unit tests vs functional tests in that "unit tests never fail comment".</p><p> Not true at all, particularly as we've just been thru upgrading django on our core system, and the unit tests <em>really</em> saved our bacon on that one...</p><p>Links</p><ul><li><a href="http://amzn.to/1SqW1t3">Test-Driven Development with Python</a></li><li><a href="http://pythontesting.net/obey-the-testing-goat">Obey the Testing Goat</a> - Harry's site dedicated to the book and related posts.</li><li><a href="http://pythontesting.net/book">Python Testing with unittest, nose, pytest</a></li><li>Gary Bernhardt's talk, <a href="http://pythontesting.net/boundaries-talk">Boundaries talk</a> including a discussion of "Functional Core, Imperative Shell".</li><li>Video of Boundaries talk <a href="http://pythontesting.net/boundaries-talk-youtube">on youtube</a></li></ul><p><br></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul><li>Intro to Harry Percival, his background and story of how he got into TDD and ended up writing a <a href="http://amzn.to/1SqW1t3">book</a></li><li>Comparing using unittest and pytest with applicability to testing django projects. </li><li>Functional end to end testing with selenium.</li><li>The django test client for middle level tests.</li><li>test isolation</li><li>django and isolated unit tests</li><li>unit tests vs integration tests</li><li>Testing done by the development team without an external QA</li><li>Double loop TDD: Functional test first, then unit tests</li><li>Spikes: investigations without tests</li><li>Harry's experience with having a freely available web version of a book that is also intended to be sold.</li></ul><p><strong>Update: Comment from Harry Percival on 19-Jan-2014</strong><br> I might have been a bit down on unit tests vs functional tests in that "unit tests never fail comment".</p><p> Not true at all, particularly as we've just been thru upgrading django on our core system, and the unit tests <em>really</em> saved our bacon on that one...</p><p>Links</p><ul><li><a href="http://amzn.to/1SqW1t3">Test-Driven Development with Python</a></li><li><a href="http://pythontesting.net/obey-the-testing-goat">Obey the Testing Goat</a> - Harry's site dedicated to the book and related posts.</li><li><a href="http://pythontesting.net/book">Python Testing with unittest, nose, pytest</a></li><li>Gary Bernhardt's talk, <a href="http://pythontesting.net/boundaries-talk">Boundaries talk</a> including a discussion of "Functional Core, Imperative Shell".</li><li>Video of Boundaries talk <a href="http://pythontesting.net/boundaries-talk-youtube">on youtube</a></li></ul><p><br></p>]]>
      </content:encoded>
      <pubDate>Mon, 18 Jan 2016 23:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/9.mp3" length="21930904" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>2715</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul><li>Intro to Harry Percival, his background and story of how he got into TDD and ended up writing a <a href="http://amzn.to/1SqW1t3">book</a></li><li>Comparing using unittest and pytest with applicability to testing django projects. </li><li>Functional end to end testing with selenium.</li><li>The django test client for middle level tests.</li><li>test isolation</li><li>django and isolated unit tests</li><li>unit tests vs integration tests</li><li>Testing done by the development team without an external QA</li><li>Double loop TDD: Functional test first, then unit tests</li><li>Spikes: investigations without tests</li><li>Harry's experience with having a freely available web version of a book that is also intended to be sold.</li></ul><p><strong>Update: Comment from Harry Percival on 19-Jan-2014</strong><br> I might have been a bit down on unit tests vs functional tests in that "unit tests never fail comment".</p><p> Not true at all, particularly as we've just been thru upgrading django on our core system, and the unit tests <em>really</em> saved our bacon on that one...</p><p>Links</p><ul><li><a href="http://amzn.to/1SqW1t3">Test-Driven Development with Python</a></li><li><a href="http://pythontesting.net/obey-the-testing-goat">Obey the Testing Goat</a> - Harry's site dedicated to the book and related posts.</li><li><a href="http://pythontesting.net/book">Python Testing with unittest, nose, pytest</a></li><li>Gary Bernhardt's talk, <a href="http://pythontesting.net/boundaries-talk">Boundaries talk</a> including a discussion of "Functional Core, Imperative Shell".</li><li>Video of Boundaries talk <a href="http://pythontesting.net/boundaries-talk-youtube">on youtube</a></li></ul><p><br></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
      <podcast:person role="Guest" href="http://www.cosmicpython.com">Harry Percival @hjwp@fosstodon.org</podcast:person>
    </item>
    <item>
      <title>8: Agile vs Agility : Agile Is Dead (Long Live Agility)</title>
      <itunes:episode>8</itunes:episode>
      <podcast:episode>8</podcast:episode>
      <itunes:title>8: Agile vs Agility : Agile Is Dead (Long Live Agility)</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50347</guid>
      <link>https://pythontest.com/testandcode/episodes/8-agile-vs-agility-agile-is-dead-long-live-agility</link>
      <description>
        <![CDATA[<p>In today's podcast, I dodge the question of "What do you think of Agile?" by reading <a href="http://pragdave.me/blog/2014/03/04/time-to-kill-agile/" rel="nofollow">an essay from Dave Thomas</a></p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>In today's podcast, I dodge the question of "What do you think of Agile?" by reading <a href="http://pragdave.me/blog/2014/03/04/time-to-kill-agile/" rel="nofollow">an essay from Dave Thomas</a></p>]]>
      </content:encoded>
      <pubDate>Tue, 15 Dec 2015 15:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/8.mp3" length="4365820" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>519</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>In today's podcast, I dodge the question of "What do you think of Agile?" by reading <a href="http://pragdave.me/blog/2014/03/04/time-to-kill-agile/" rel="nofollow">an essay from Dave Thomas</a></p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>7: The Waterfall Model and “Managing the Development of Large Software Systems”</title>
      <itunes:episode>7</itunes:episode>
      <podcast:episode>7</podcast:episode>
      <itunes:title>7: The Waterfall Model and “Managing the Development of Large Software Systems”</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50300</guid>
      <link>https://pythontest.com/testandcode/episodes/7-the-waterfall-model-and-managing-the-development-of-large-software-systems</link>
      <description>
        <![CDATA[<p>The waterfall model has been used and modified and changed and rebelled against since before I started programming. Waterfall such an important character in the story of software development that we should get to know it a better.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>The waterfall model has been used and modified and changed and rebelled against since before I started programming. Waterfall such an important character in the story of software development that we should get to know it a better.</p>]]>
      </content:encoded>
      <pubDate>Wed, 21 Oct 2015 15:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/7.mp3" length="14442510" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1779</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>The waterfall model has been used and modified and changed and rebelled against since before I started programming. Waterfall such an important character in the story of software development that we should get to know it a better.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>6: Writing software is like nothing else</title>
      <itunes:episode>6</itunes:episode>
      <podcast:episode>6</podcast:episode>
      <itunes:title>6: Writing software is like nothing else</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50299</guid>
      <link>https://pythontest.com/testandcode/episodes/6-writing-software-is-like-nothing-else</link>
      <description>
        <![CDATA[<p>My experience with writing software comes from my experience: where I grew up, what eras I lived through, what my economical and geographical experiences have been, when I learned to code, and what projects I've worked on.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>My experience with writing software comes from my experience: where I grew up, what eras I lived through, what my economical and geographical experiences have been, when I learned to code, and what projects I've worked on.</p>]]>
      </content:encoded>
      <pubDate>Tue, 20 Oct 2015 15:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/6.mp3" length="3538968" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>416</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>My experience with writing software comes from my experience: where I grew up, what eras I lived through, what my economical and geographical experiences have been, when I learned to code, and what projects I've worked on.</p>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>5: Test Classes: No OO experience required</title>
      <itunes:episode>5</itunes:episode>
      <podcast:episode>5</podcast:episode>
      <itunes:title>5: Test Classes: No OO experience required</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50277</guid>
      <link>https://pythontest.com/testandcode/episodes/5-test-classes-no-oo-experience-required</link>
      <description>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
<li><a href="http://pythontesting.net/framework/specify-test-unittest-nosetests-pytest/" rel="nofollow">how to run a single class</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
<li><a href="http://pythontesting.net/framework/specify-test-unittest-nosetests-pytest/" rel="nofollow">how to run a single class</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Wed, 23 Sep 2015 11:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/5.mp3" length="3853022" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>455</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
<li><a href="http://pythontesting.net/framework/specify-test-unittest-nosetests-pytest/" rel="nofollow">how to run a single class</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>4: Test Fixtures: Setup, Teardown, and so much more</title>
      <itunes:episode>4</itunes:episode>
      <podcast:episode>4</podcast:episode>
      <itunes:title>4: Test Fixtures: Setup, Teardown, and so much more</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50266</guid>
      <link>https://pythontest.com/testandcode/episodes/4-test-fixtures-setup-teardown-and-so-much-more</link>
      <description>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
</ul>]]>
      </content:encoded>
      <pubDate>Fri, 11 Sep 2015 09:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/4.mp3" length="6840060" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>828</itunes:duration>
      <itunes:summary>
        <![CDATA[<ul>
<li>Setup and Teardown</li>
<li>Benefits of Test Fixtures

<ul>
<li>code reuse</li>
<li>cleanup of resources</li>
<li>errors vs failures</li>
<li>focusing your thinking on what you are testing and what you are not</li>
<li>scoping for efficiency</li>
</ul></li>
<li>Brief look at pytest named fixtures</li>
</ul>

<p><b>References</b></p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures/" rel="nofollow">pytest fixtures series</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/" rel="nofollow">pytest fixtures nuts &amp; bolts</a></li>
<li><a href="http://pythontesting.net/framework/pytest/pytest-session-scoped-fixtures/" rel="nofollow">pytest session scoped fixtures</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-fixtures/" rel="nofollow">unittest fixtures</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/#fixtures" rel="nofollow">nose fixtures mentioned in introduction</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-fixture-reference/" rel="nofollow">nose fixture reference post</a></li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>3: Why test?</title>
      <itunes:episode>3</itunes:episode>
      <podcast:episode>3</podcast:episode>
      <itunes:title>3: Why test?</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50251</guid>
      <link>https://pythontest.com/testandcode/episodes/3-why-test</link>
      <description>
        <![CDATA[<p>Answering a listener question.</p>

<p><b>Why testing?</b></p>

<ul>
<li>What are the benefits?</li>
<li>Why automated testing over manual testing?</li>
<li>Why test first?</li>
<li>Why do automated testing during development?</li>
<li>Why test to the user level API?</li>
</ul>

<p>After describing my ideal test strategy and project, I list:</p>

<ul>
<li>Business related, practical benefits of testing</li>
<li>Personal reasons to embrace testing</li>
<li>Pragmatic, day to day, developer benefits of testing </li>
</ul>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>Answering a listener question.</p>

<p><b>Why testing?</b></p>

<ul>
<li>What are the benefits?</li>
<li>Why automated testing over manual testing?</li>
<li>Why test first?</li>
<li>Why do automated testing during development?</li>
<li>Why test to the user level API?</li>
</ul>

<p>After describing my ideal test strategy and project, I list:</p>

<ul>
<li>Business related, practical benefits of testing</li>
<li>Personal reasons to embrace testing</li>
<li>Pragmatic, day to day, developer benefits of testing </li>
</ul>]]>
      </content:encoded>
      <pubDate>Wed, 02 Sep 2015 07:00:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/3.mp3" length="12702978" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>1561</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>Answering a listener question.</p>

<p><b>Why testing?</b></p>

<ul>
<li>What are the benefits?</li>
<li>Why automated testing over manual testing?</li>
<li>Why test first?</li>
<li>Why do automated testing during development?</li>
<li>Why test to the user level API?</li>
</ul>

<p>After describing my ideal test strategy and project, I list:</p>

<ul>
<li>Business related, practical benefits of testing</li>
<li>Personal reasons to embrace testing</li>
<li>Pragmatic, day to day, developer benefits of testing </li>
</ul>]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
    <item>
      <title>2: Pytest vs Unittest vs Nose</title>
      <itunes:episode>2</itunes:episode>
      <podcast:episode>2</podcast:episode>
      <itunes:title>2: Pytest vs Unittest vs Nose</itunes:title>
      <itunes:episodeType>full</itunes:episodeType>
      <guid isPermaLink="false">http://pythontesting.net/?p=50222</guid>
      <link>https://pythontest.com/testandcode/episodes/2-pytest-vs-unittest-vs-nose</link>
      <description>
        <![CDATA[<p>I list my requirements for a framework and discuss how Pytest, Unittest, and Nose measure up to those requirements.</p>

<p>Mentioned:</p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-introduction/" rel="nofollow">pytest</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-introduction/" rel="nofollow">unittest</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/" rel="nofollow">nose</a></li>
<li><a href="http://pythontesting.net/strategy/delayed-assert/" rel="nofollow">delayed assert</a></li>
<li><a href="http://pythontesting.net/pytest-expect/" rel="nofollow">pytest-expect</a></li>
<li><a href="http://pythontesting.net/framework/doctest/doctest-introduction/" rel="nofollow">doctest</a></li>
</ul>

<p>I did the audio processing differently for this episode. Please let me know how it sounds, if there are any problems, etc.</p>]]>
      </description>
      <content:encoded>
        <![CDATA[<p>I list my requirements for a framework and discuss how Pytest, Unittest, and Nose measure up to those requirements.</p>

<p>Mentioned:</p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-introduction/" rel="nofollow">pytest</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-introduction/" rel="nofollow">unittest</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/" rel="nofollow">nose</a></li>
<li><a href="http://pythontesting.net/strategy/delayed-assert/" rel="nofollow">delayed assert</a></li>
<li><a href="http://pythontesting.net/pytest-expect/" rel="nofollow">pytest-expect</a></li>
<li><a href="http://pythontesting.net/framework/doctest/doctest-introduction/" rel="nofollow">doctest</a></li>
</ul>

<p>I did the audio processing differently for this episode. Please let me know how it sounds, if there are any problems, etc.</p>]]>
      </content:encoded>
      <pubDate>Thu, 20 Aug 2015 09:45:00 -0700</pubDate>
      <author>Brian Okken</author>
      <enclosure url="https://test-and-code.sfo3.cdn.digitaloceanspaces.com/audio/2.mp3" length="6120296" type="audio/mpeg"/>
      <itunes:author>Brian Okken</itunes:author>
      <itunes:duration>738</itunes:duration>
      <itunes:summary>
        <![CDATA[<p>I list my requirements for a framework and discuss how Pytest, Unittest, and Nose measure up to those requirements.</p>

<p>Mentioned:</p>

<ul>
<li><a href="http://pythontesting.net/framework/pytest/pytest-introduction/" rel="nofollow">pytest</a></li>
<li><a href="http://pythontesting.net/framework/unittest/unittest-introduction/" rel="nofollow">unittest</a></li>
<li><a href="http://pythontesting.net/framework/nose/nose-introduction/" rel="nofollow">nose</a></li>
<li><a href="http://pythontesting.net/strategy/delayed-assert/" rel="nofollow">delayed assert</a></li>
<li><a href="http://pythontesting.net/pytest-expect/" rel="nofollow">pytest-expect</a></li>
<li><a href="http://pythontesting.net/framework/doctest/doctest-introduction/" rel="nofollow">doctest</a></li>
</ul>
]]>
      </itunes:summary>
      <itunes:keywords>python, programming, software, testing,</itunes:keywords>
      <itunes:explicit>No</itunes:explicit>
      <podcast:person role="Host" href="https://pythontest.com">Brian Okken</podcast:person>
    </item>
  </channel>
</rss>
