Commit a00822c0 authored by Boxiang Sun's avatar Boxiang Sun

slapos/tests: Refine the assertRaisesRegex calling

Python 3.12 completely drops assertRaisesRegexp, which we should
check the API is exist before evaluating the it.
Also this code keep the Python 2 compatibility.
parent 9932f8ac
......@@ -97,6 +97,12 @@ class fixture(object):
class RubyGemsTestCase(unittest.TestCase):
# Keep Python2 backward compatibility and also support Python 3.12
if hasattr(unittest.TestCase, 'assertRaisesRegex'):
assertRaisesRegex = unittest.TestCase.assertRaisesRegex
else:
assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
def check_output_test(self, check_output_mock, expected_arg_list_list):
self.assertEqual(check_output_mock.call_count,
len(expected_arg_list_list))
......@@ -148,7 +154,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
@fixture({'recipe': {}})
def test_missing_gems(self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
"Configuration error, 'gems' option is missing",
rubygems.Recipe, buildout, name, options
......@@ -157,7 +163,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
@fixture({'recipe': {'gems': 'sass'}})
def test_oserror(self, path, patches, buildout, name, options, version):
patches['check_output'].side_effect = OSError
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'System error, command failed: .*',
rubygems.Recipe(buildout, name, options).install,
......@@ -167,7 +173,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
def test_signal_received(self, path, patches, buildout, name, options, version):
exception = subprocess.CalledProcessError(-1, '')
patches['check_output'].side_effect = exception
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'System error, command received signal 1: .*',
rubygems.Recipe(buildout, name, options).install,
......@@ -177,7 +183,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
def test_non_zero_exitcode(self, path, patches, buildout, name, options, version):
exception = subprocess.CalledProcessError(1, '')
patches['check_output'].side_effect = exception
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'System error, command failed with exit code 1: .*',
rubygems.Recipe(buildout, name, options).install,
......@@ -189,7 +195,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
@fixture({'recipe': {'gems': 'sass', 'environment': 'invalid'}})
def test_invalid_environment(self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, '
'every environment line should contain a "=" sign',
......@@ -211,7 +217,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
@fixture({'recipe': {'gems': 'sass'}})
def test_no_version(self, path, patches, buildout, name, options, version):
patches['urlopen'].return_value = BytesIO(b'')
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
"Can't find rubygems version.",
rubygems.Recipe(buildout, name, options).install,
......@@ -255,7 +261,7 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
'version': RUBYGEMS_DEFAULT_VERSION,
}})
def test_version_and_url(self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
"Configuration error, 'url' and 'version' options are mutually exclusive",
rubygems.Recipe, buildout, name, options
......@@ -323,7 +329,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
@deployment_fixture({'recipe': {'gems': 'sass'}})
def test_deployment_not_pinned_version_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version for gem sass is missing',
rubygems.Recipe(buildout, name, options).install,
......@@ -332,7 +338,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
@deployment_fixture({'recipe': {'gems': 'rash==0.1.0'}})
def test_deployment_not_pinned_dependency_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version for dependency hashie is missing',
rubygems.Recipe(buildout, name, options).install,
......@@ -341,7 +347,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
@deployment_fixture({'recipe': {'gems': 'rash==0.1.0 hashie==0.3.0'}})
def test_deployment_more_or_equal_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 0.3.0 for gem hashie '
'does not satisfy dependency constraint >= 0.3.1 of gem rash',
......@@ -357,7 +363,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
@deployment_fixture({'recipe': {'gems': 'rash==0.3.0 hashie==1.1.0'}})
def test_deployment_similar_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 1.1.0 for gem hashie '
'does not satisfy dependency constraint < 1.1 of gem rash',
......@@ -378,7 +384,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
}})
def test_deployment_more_or_equal_with_twiddle_wakka_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 9.0.2 for gem cucumber-messages '
'does not satisfy dependency constraint >= 9.0.3 '
......@@ -400,7 +406,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
@deployment_fixture({'recipe': {'gems': 'hoe==3.4.0 rake==11.0.0'}})
def test_deployment_less_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 11.0.0 for gem rake '
'does not satisfy dependency constraint < 11.0 of gem hoe',
......@@ -419,7 +425,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
}})
def test_deployment_not_pinned_subdependency_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version for dependency '
'cucumber-messages is missing',
......@@ -445,7 +451,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
}})
def test_deployment_subdependency_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 12.2.0 for gem cucumber-messages '
'does not satisfy dependency constraint >= 12.3 '
......@@ -474,7 +480,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
}})
def test_deployment_similar_second_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 15.0.0 for gem cucumber-gherkin '
'does not satisfy dependency constraint < 15 of gem cucumber-core',
......@@ -497,7 +503,7 @@ class RubyGemsDeploymentTestCase(RubyGemsTestCase):
}})
def test_deployment_version_exclusion_constraint_error(
self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
self.assertRaisesRegex(
UserError,
'Configuration error, version 1.0.0 for gem hashie '
'does not satisfy dependency constraint != 1.0.0 of gem sass',
......
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