]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
cephadm: fix a cephadm test when docker doesn't exist
authorJohn Mulligan <jmulligan@redhat.com>
Thu, 18 May 2023 20:46:50 +0000 (16:46 -0400)
committerJohn Mulligan <jmulligan@redhat.com>
Sat, 20 May 2023 14:23:23 +0000 (10:23 -0400)
Previously, when I ran the cephadm test suite locally the test case
test_mon_crush_location was failing with the error:
```
>       with pytest.raises(Exception, match='--set-crush-location
database=a'):
E       AssertionError: Regex pattern did not match.
E        Regex: '--set-crush-location database=a'
E        Input: "[Errno 2] No such file or directory: '/usr/bin/docker'"

```

At the very least this test should run on a system that doesn't
have docker installed. Although, I don't know why this test
would have passed on any system that wasn't actively running
a cephadm container...

This patch mocks out `extract_uid_gid` which was calling
out to docker even in the unit tests.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
src/cephadm/tests/test_cephadm.py

index 3dd64a605a8d173cb10df36eb5bb719168ba29ea..e9976c0860c2eb064031552463315c236f5221f4 100644 (file)
@@ -299,6 +299,7 @@ class TestCephAdm(object):
     @mock.patch('cephadm.migrate_sysctl_dir')
     @mock.patch('cephadm.check_unit', lambda *args, **kwargs: (None, 'running', None))
     @mock.patch('cephadm.get_unit_name', lambda *args, **kwargs: 'mon-unit-name')
+    @mock.patch('cephadm.extract_uid_gid', lambda *args, **kwargs: (0, 0))
     @mock.patch('cephadm.get_deployment_container')
     def test_mon_crush_location(self, _get_deployment_container, _migrate_sysctl, _make_var_run, _get_parm, _deploy_daemon, _file_lock, _logger):
         """