MCPcopy Create free account
hub / github.com/MagicStack/contextvars / test_context_getset_1

Method test_context_getset_1

tests/test_basics.py:205–256  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

203
204 @isolated_context
205 def test_context_getset_1(self):
206 c = contextvars.ContextVar('c')
207 with self.assertRaises(LookupError):
208 c.get()
209
210 self.assertIsNone(c.get(None))
211
212 t0 = c.set(42)
213 self.assertEqual(c.get(), 42)
214 self.assertEqual(c.get(None), 42)
215 self.assertIs(t0.old_value, t0.MISSING)
216 self.assertIs(t0.old_value, contextvars.Token.MISSING)
217 self.assertIs(t0.var, c)
218
219 t = c.set('spam')
220 self.assertEqual(c.get(), 'spam')
221 self.assertEqual(c.get(None), 'spam')
222 self.assertEqual(t.old_value, 42)
223 c.reset(t)
224
225 self.assertEqual(c.get(), 42)
226 self.assertEqual(c.get(None), 42)
227
228 c.set('spam2')
229 with self.assertRaisesRegex(RuntimeError, 'has already been used'):
230 c.reset(t)
231 self.assertEqual(c.get(), 'spam2')
232
233 ctx1 = contextvars.copy_context()
234 self.assertIn(c, ctx1)
235
236 c.reset(t0)
237 with self.assertRaisesRegex(RuntimeError, 'has already been used'):
238 c.reset(t0)
239 self.assertIsNone(c.get(None))
240
241 self.assertIn(c, ctx1)
242 self.assertEqual(ctx1[c], 'spam2')
243 self.assertEqual(ctx1.get(c, 'aa'), 'spam2')
244 self.assertEqual(len(ctx1), 1)
245 self.assertEqual(list(ctx1.items()), [(c, 'spam2')])
246 self.assertEqual(list(ctx1.values()), ['spam2'])
247 self.assertEqual(list(ctx1.keys()), [c])
248 self.assertEqual(list(ctx1), [c])
249
250 ctx2 = contextvars.copy_context()
251 self.assertNotIn(c, ctx2)
252 with self.assertRaises(KeyError):
253 ctx2[c]
254 self.assertEqual(ctx2.get(c, 'aa'), 'aa')
255 self.assertEqual(len(ctx2), 0)
256 self.assertEqual(list(ctx2), [])
257
258 @isolated_context
259 def test_context_getset_2(self):

Callers

nothing calls this directly

Calls 3

getMethod · 0.95
setMethod · 0.95
resetMethod · 0.95

Tested by

no test coverage detected