
The Python Podcast.__init__
Michael Foord On Testing, Mock, TDD, And The Python Community
Jul 23, 2018 · 55 min · Episode 171 · 37.3 MB
0:00-55:12
Streams straight from the publisher. podnod never proxies or re-hosts episode audio.
Summary
Michael Foord has been working on building and testing software in Python for over a decade. One of his most notable and widely used contributions to the community is the Mock library, which has been incorporated into the standard library. In this episode he explains how he got involved in the community, why testing has been such a strong focus throughout his career, the uses and hazards of mocked objects, and how he is transitioning to freelancing full time.
Preface
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
- Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com)
- To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
- Join the community in the new Zulip chat workspace at podcastinit.com/chat
- Your host as usual is Tobias Macey and today I’m interviewing Michael Foord mockingly, about his career in Python
Interview
- Introductions
- How did you get introduced to Python?
- One of the main threads in your career appears to be software testing. What aspects of testing do you find so interesting and how did you first get exposed to that aspect of building software?
- How has the language and ecosystem support for testing evolved over the course of your career?
- What are some of the areas that you find it to still be lacking?
- Mock is one of your projects that has been widely adopted and ultimately incorporated into the standard library. What was your reason for starting it in the first place?
- Mocking can be a controversial topic. What are your current thoughts on how and when to use mocks, stubs, and fixtures?
- How do you view the state of the art for testing in Python as it compares to other languages that you have worked in?
- You were fairly early in the move to supporting Python 2 and 3 in a single project with Mock. How has that overall experience changed in the intervening years since Python 2.4 and 3.2?
- What are some of the notable evolutions in Python and the software industry that you have experienced over your career?
- You recently transitioned to acting as a software trainer and consultant full time. Where are you focusing your energy currently and what are your grand plans for the future?
Keep In Touch
Picks
- Tobias
- Michael
Links
- IronPython
- London
- IronPython in Action
- Mock
- UnitTest
- Play By Email
- Smalltalk
- Regular Expression
- Dijkstra’s Algorithm
- urllib2
- Resolver Systems
- TDD (Test-Driven Development)
- PyCon
- Trent Nelson
- Fractals
- Unicode
- Joel Spolsky (Unicode)
- OOP (Object-Oriented Programming)
- End-to-end Testing
- Unit Testing
- Canonical
- Selenium
- Ansible
- Ansible Tower
- Continuous Integration
- Continuous Delivery
- Agile Software Development
- GitHub
- GitLab
- Jenkins
- Nightwatch.js
- py.test
- Martin Fowler
- Monkey Patching
- Decorator
- Context Manager
- autospec
- Golang
- 2to3
- Six
- Instagram Keynote
- Trans-code
- Django Girls
- PyLadies
- Agile Abstractions
- David Beazley
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
podcastinit.com/linode
pythonpodcast.comsite
pythonpodcast.com@Podcast__init__
twtiter.comiTunes
itunes.apple.comGoogle Play Music
play.google.compodcastinit.com/chat
pythonpodcast.comWebsite
agileabstractions.comTwitter
twitter.com-Ology Books
templarco.co.ukImaginary Authors
imaginaryauthors.comFalling Into The Sea
imaginaryauthors.comCity On Fire
imaginaryauthors.comIronPython
ironpython.netLondon
en.wikipedia.orgIronPython in Action
manning.comMock
docs.python.orgUnitTest
docs.python.orgPlay By Email
en.wikipedia.orgSmalltalk
en.wikipedia.orgRegular Expression
en.wikipedia.orgDijkstra’s Algorithm
en.wikipedia.orgurllib2
docs.python.orgResolver Systems
en.wikipedia.orgTDD (Test-Driven Development)
en.wikipedia.orgPyCon
us.pycon.orgTrent Nelson
trent.meFractals
en.wikipedia.orgUnicode
unicode.orgJoel Spolsky (Unicode)
joelonsoftware.comOOP (Object-Oriented Programming)
en.wikipedia.orgEnd-to-end Testing
softwaretestinghelp.comUnit Testing
en.wikipedia.orgCanonical
canonical.comSelenium
seleniumhq.orgAnsible
ansible.comAnsible Tower
ansible.comAWX (Open Source Tower Codebase)
github.comContinuous Integration
en.wikipedia.orgContinuous Delivery
en.wikipedia.orgAgile Software Development
en.wikipedia.orgGitHub
github.comGitLab
about.gitlab.comJenkins
jenkins.ioNightwatch.js
nightwatchjs.orgpy.test
docs.pytest.orgMartin Fowler
martinfowler.comMonkey Patching
en.wikipedia.orgDecorator
realpython.comContext Manager
eigenhombre.comautospec
docs.python.orgGolang
golang.org2to3
docs.python.orgSix
pythonhosted.orgInstagram Keynote
youtube.comTrans-code
trans-code.github.ioDjango Girls
djangogirls.orgPyLadies
pyladies.comAgile Abstractions
agileabstractions.comDavid Beazley
dabeaz.comThe Freak Fandango Orchestra
freemusicarchive.orgCC BY-SA
creativecommons.org