[requirements][all] migration OFF of mock to the unittest.mock built-in library

Eric Fried openstack at fried.cc
Thu Mar 12 17:37:35 UTC 2020

> I'd like to suggest, now that we are on modern python, that we stop
> using the mock library and instead use the built in mock library.


I started working on this a few weeks ago for nova, and came to the
conclusion that it's going to be a multi-step process. This is because
step 2 (see below) is going to take a long time and be quite difficult.

1) a) i) Remove mock-the-lib from $project's requirements.
     ii) Make $project explicitly import unittest.mock everywhere:
s/import mock/from unittest import mock/
    iii) Handle any weird fallout.
   You can see i) and ii) for nova here:
   ...but I likely won't get a chance to work on iii), which would need
to happen in the same patch.

   b) Poison the use of `import mock` e.g. via a hacking rule so it
doesn't creep back in. Example in nova:

2) Ferret out and eradicate all transitive dependencies. This is the
hard part. That said, if we do 1) everywhere, maybe we don't need to do

3) Remove mock-the-lib from the requirements repo. We can't reasonably
do this until {every requirements-using repo has done 1)} or {2) has


More information about the openstack-discuss mailing list