(self)
| 1071 | @unittest.skipUnless(hasattr(_testinternalcapi, '_PyTime_AsTimeval_clamp'), |
| 1072 | 'need _testinternalcapi._PyTime_AsTimeval_clamp') |
| 1073 | def test_AsTimeval_clamp(self): |
| 1074 | from _testinternalcapi import _PyTime_AsTimeval_clamp |
| 1075 | |
| 1076 | if sys.platform == 'win32': |
| 1077 | from _testcapi import LONG_MIN, LONG_MAX |
| 1078 | tv_sec_max = LONG_MAX |
| 1079 | tv_sec_min = LONG_MIN |
| 1080 | else: |
| 1081 | tv_sec_max = self.time_t_max |
| 1082 | tv_sec_min = self.time_t_min |
| 1083 | |
| 1084 | for t in (PyTime_MIN, PyTime_MAX): |
| 1085 | ts = _PyTime_AsTimeval_clamp(t, _PyTime.ROUND_CEILING) |
| 1086 | with decimal.localcontext() as context: |
| 1087 | context.rounding = decimal.ROUND_CEILING |
| 1088 | us = self.decimal_round(decimal.Decimal(t) / US_TO_NS) |
| 1089 | tv_sec, tv_usec = divmod(us, SEC_TO_US) |
| 1090 | if tv_sec_max < tv_sec: |
| 1091 | tv_sec = tv_sec_max |
| 1092 | tv_usec = 0 |
| 1093 | elif tv_sec < tv_sec_min: |
| 1094 | tv_sec = tv_sec_min |
| 1095 | tv_usec = 0 |
| 1096 | self.assertEqual(ts, (tv_sec, tv_usec)) |
| 1097 | |
| 1098 | @unittest.skipUnless(hasattr(_testinternalcapi, '_PyTime_AsTimespec_clamp'), |
| 1099 | 'need _testinternalcapi._PyTime_AsTimespec_clamp') |
nothing calls this directly
no test coverage detected