You're not actually mocking os.path.exists
as used by the actual code. Try the following:
@mock.patch('os.path.exists')
def test_vm_exists(self, mock_exists):
mock_exists.return_value = True
fake_path = 'fake/path'
response = self._VixConnection.vm_exists(fake_path)
mock_exists.assert_called_with(fake_path)
self.assertEqual(response, True)