| 2509 | # |
| 2510 | |
| 2511 | class _TestValue(BaseTestCase): |
| 2512 | |
| 2513 | ALLOWED_TYPES = ('processes',) |
| 2514 | |
| 2515 | codes_values = [ |
| 2516 | ('i', 4343, 24234), |
| 2517 | ('d', 3.625, -4.25), |
| 2518 | ('h', -232, 234), |
| 2519 | ('q', 2 ** 33, 2 ** 34), |
| 2520 | ('c', latin('x'), latin('y')) |
| 2521 | ] |
| 2522 | |
| 2523 | def setUp(self): |
| 2524 | if not HAS_SHAREDCTYPES: |
| 2525 | self.skipTest("requires multiprocessing.sharedctypes") |
| 2526 | |
| 2527 | @classmethod |
| 2528 | def _test(cls, values): |
| 2529 | for sv, cv in zip(values, cls.codes_values): |
| 2530 | sv.value = cv[2] |
| 2531 | |
| 2532 | @warnings_helper.ignore_fork_in_thread_deprecation_warnings() |
| 2533 | def test_value(self, raw=False): |
| 2534 | if raw: |
| 2535 | values = [self.RawValue(code, value) |
| 2536 | for code, value, _ in self.codes_values] |
| 2537 | else: |
| 2538 | values = [self.Value(code, value) |
| 2539 | for code, value, _ in self.codes_values] |
| 2540 | |
| 2541 | for sv, cv in zip(values, self.codes_values): |
| 2542 | self.assertEqual(sv.value, cv[1]) |
| 2543 | |
| 2544 | proc = self.Process(target=self._test, args=(values,)) |
| 2545 | proc.daemon = True |
| 2546 | proc.start() |
| 2547 | proc.join() |
| 2548 | |
| 2549 | for sv, cv in zip(values, self.codes_values): |
| 2550 | self.assertEqual(sv.value, cv[2]) |
| 2551 | |
| 2552 | def test_rawvalue(self): |
| 2553 | self.test_value(raw=True) |
| 2554 | |
| 2555 | def test_getobj_getlock(self): |
| 2556 | val1 = self.Value('i', 5) |
| 2557 | lock1 = val1.get_lock() |
| 2558 | obj1 = val1.get_obj() |
| 2559 | |
| 2560 | val2 = self.Value('i', 5, lock=None) |
| 2561 | lock2 = val2.get_lock() |
| 2562 | obj2 = val2.get_obj() |
| 2563 | |
| 2564 | lock = self.Lock() |
| 2565 | val3 = self.Value('i', 5, lock=lock) |
| 2566 | lock3 = val3.get_lock() |
| 2567 | obj3 = val3.get_obj() |
| 2568 | self.assertEqual(lock, lock3) |
nothing calls this directly
no test coverage detected
searching dependent graphs…