(self)
| 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 |
nothing calls this directly
no test coverage detected