MCPcopy Index your code
hub / github.com/python/cpython / test_create

Method test_create

Lib/test/test_interpreters/test_api.py:2148–2204  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2146 self.assertEqual(res3, expected3)
2147
2148 def test_create(self):
2149 isolated = _interpreters.new_config('isolated')
2150 legacy = _interpreters.new_config('legacy')
2151 default = isolated
2152
2153 with self.subTest('no args'):
2154 interpid = _interpreters.create()
2155 config = _interpreters.get_config(interpid)
2156 self.assert_ns_equal(config, default)
2157
2158 with self.subTest('config: None'):
2159 interpid = _interpreters.create(None)
2160 config = _interpreters.get_config(interpid)
2161 self.assert_ns_equal(config, default)
2162
2163 with self.subTest('config: \'empty\''):
2164 with self.assertRaises(InterpreterError):
2165 # The "empty" config isn't viable on its own.
2166 _interpreters.create('empty')
2167
2168 for arg, expected in {
2169 '': default,
2170 'default': default,
2171 'isolated': isolated,
2172 'legacy': legacy,
2173 }.items():
2174 with self.subTest(f'str arg: {arg!r}'):
2175 interpid = _interpreters.create(arg)
2176 config = _interpreters.get_config(interpid)
2177 self.assert_ns_equal(config, expected)
2178
2179 with self.subTest('custom'):
2180 orig = _interpreters.new_config('empty')
2181 orig.use_main_obmalloc = True
2182 orig.check_multi_interp_extensions = bool(Py_GIL_DISABLED)
2183 orig.gil = 'shared'
2184 interpid = _interpreters.create(orig)
2185 config = _interpreters.get_config(interpid)
2186 self.assert_ns_equal(config, orig)
2187
2188 with self.subTest('missing fields'):
2189 orig = _interpreters.new_config()
2190 del orig.gil
2191 with self.assertRaises(ValueError):
2192 _interpreters.create(orig)
2193
2194 with self.subTest('extra fields'):
2195 orig = _interpreters.new_config()
2196 orig.spam = True
2197 with self.assertRaises(ValueError):
2198 _interpreters.create(orig)
2199
2200 with self.subTest('whence'):
2201 interpid = _interpreters.create()
2202 self.assertEqual(
2203 _interpreters.whence(interpid),
2204 _interpreters.WHENCE_STDLIB)
2205

Callers

nothing calls this directly

Calls 8

new_configMethod · 0.80
whenceMethod · 0.80
subTestMethod · 0.45
createMethod · 0.45
assert_ns_equalMethod · 0.45
assertRaisesMethod · 0.45
itemsMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected