Commit b287b023 authored by Boxiang Sun's avatar Boxiang Sun

slapos/tests: Refine the unittest API calling for Python 3.12

Python 3.12 completely drops assertRaisesRegexp, readfp.
Adjust the code and maintain the Python 2 compatibility.
parent f79a9ea8
......@@ -40,13 +40,6 @@ from .test_standalone import SlapOSStandaloneTestCase
class TestCheckSoftwareLDD(SlapOSStandaloneTestCase):
# BBB python2
assertRaisesRegex = getattr(
unittest.TestCase,
'assertRaisesRegex',
unittest.TestCase.assertRaisesRegexp,
)
def _get_zlib_environment(self, with_rpath=True):
"""returns an environment that will compile with slapos' zlib
"""
......
......@@ -34,7 +34,12 @@ import slapos.cli.configure_local
from slapos.cli.configure_local import ConfigureLocalCommand, _createConfigurationDirectory
from slapos.cli.entry import SlapOSApp
from argparse import Namespace
from six.moves.configparser import ConfigParser
try:
from configparser import ConfigParser
except ImportError:
# BBB python2
from ConfigParser import SafeConfigParser as ConfigParser
ConfigParser.read_file = ConfigParser.readfp
# Disable any command to launch slapformat and supervisor
slapos.cli.configure_local._runFormat = lambda x: "Do nothing"
......@@ -73,14 +78,14 @@ class TestConfigureLocal(unittest.TestCase):
os.path.exists("%s/.slapos/slapos-client.cfg" % self.temp_dir))
with open(self.temp_dir + '/slapos-proxy.cfg') as fout:
proxy_config = ConfigParser()
proxy_config.readfp(fout)
proxy_config.read_file(fout)
self.assertEqual(proxy_config.get('slapos', 'instance_root'),
self.instance_root)
self.assertEqual(proxy_config.get('slapos', 'software_root'),
expected_software_root)
with open(self.temp_dir + '/slapos.cfg') as fout:
proxy_config = ConfigParser()
proxy_config.readfp(fout)
proxy_config.read_file(fout)
self.assertEqual(proxy_config.get('slapos', 'instance_root'),
self.instance_root)
self.assertEqual(proxy_config.get('slapos', 'software_root'),
......@@ -102,14 +107,14 @@ class TestConfigureLocal(unittest.TestCase):
os.path.exists("%s/.slapos/slapos-client.cfg" % self.temp_dir))
with open(self.temp_dir + '/slapos-proxy.cfg') as fout:
proxy_config = ConfigParser()
proxy_config.readfp(fout)
proxy_config.read_file(fout)
self.assertEqual(proxy_config.get('slapos', 'instance_root'),
self.instance_root)
self.assertEqual(proxy_config.get('slapos', 'software_root'),
self.software_root)
with open(self.temp_dir + '/slapos.cfg') as fout:
proxy_config = ConfigParser()
proxy_config.readfp(fout)
proxy_config.read_file(fout)
self.assertEqual(proxy_config.get('slapos', 'instance_root'),
self.instance_root)
self.assertEqual(proxy_config.get('slapos', 'software_root'),
......
......@@ -133,7 +133,7 @@ class TestRegister(unittest.TestCase):
certificate = self.certificate,
key = self.key)
save_former_config_mock.assert_called()
self.assertEquals(0, return_code)
self.assertEqual(0, return_code)
self.assertTrue(
os.path.exists('%s/slapos.cfg' % self.temp_dir))
config_content = open('%s/slapos.cfg' % self.temp_dir).read()
......
......@@ -48,6 +48,13 @@ import grp
import hashlib
import errno
try:
from configparser import ConfigParser
except ImportError:
# BBB python2
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
unittest.TestCase.assertRegex = unittest.TestCase.assertRegexpMatches
import mock
from mock import patch
from zope.interface import implementer
......@@ -284,7 +291,7 @@ class TestRequiredOnlyPartitions(unittest.TestCase):
def test_one_missing(self):
required = ['foobar', 'two', 'one']
existing = ['one', 'two', 'three']
self.assertRaisesRegexp(ValueError,
self.assertRaisesRegex(ValueError,
'Unknown partition: foobar',
slapgrid.check_required_only_partitions,
existing, required)
......@@ -292,7 +299,7 @@ class TestRequiredOnlyPartitions(unittest.TestCase):
def test_several_missing(self):
required = ['foobar', 'barbaz']
existing = ['one', 'two', 'three']
self.assertRaisesRegexp(ValueError,
self.assertRaisesRegex(ValueError,
'Unknown partitions: barbaz, foobar',
slapgrid.check_required_only_partitions,
existing, required)
......@@ -1969,7 +1976,7 @@ echo %s; echo %s; exit 42""" % (line1, line2))
self.assertEqual(
dummyLogger.mock_calls[-5][1][0] % dummyLogger.mock_calls[-5][1][1:],
'Error while processing the following partitions:')
self.assertRegexpMatches(
self.assertRegex(
dummyLogger.mock_calls[-4][1][0] % dummyLogger.mock_calls[-4][1][1:],
r" 1\[\(not ready\)\]: Failed to run buildout profile in directory '.*/instance/1':\nfake buildout error\n\n")
self.assertEqual(
......@@ -4543,7 +4550,7 @@ class TestSVCBackend(unittest.TestCase):
"""
logger = mock.create_autospec(logging.Logger)
with self.assertRaisesRegexp(
with self.assertRaisesRegex(
RuntimeError,
"""Failed to launch supervisord:
Error: could not find config file /not/exist/etc/supervisord.conf
......
......@@ -39,7 +39,12 @@ import glob
import subprocess
import multiprocessing
from contextlib import closing
from six.moves.configparser import ConfigParser
try:
from configparser import ConfigParser
except ImportError:
# BBB python2
from ConfigParser import SafeConfigParser as ConfigParser
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
import netaddr
import psutil
......@@ -73,11 +78,6 @@ def checkPortIsFree():
class TestSlapOSStandaloneSetup(unittest.TestCase):
# BBB python2
assertRaisesRegex = getattr(
unittest.TestCase, 'assertRaisesRegex',
unittest.TestCase.assertRaisesRegexp)
def setUp(self):
checkPortIsFree()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment