MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_replace

Method test_replace

Lib/test/datetimetester.py:4532–4579  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

4530 self.assertTrue(t)
4531
4532 def test_replace(self):
4533 cls = self.theclass
4534 z100 = FixedOffset(100, "+100")
4535 zm200 = FixedOffset(timedelta(minutes=-200), "-200")
4536 args = [1, 2, 3, 4, z100]
4537 base = cls(*args)
4538 self.assertEqual(base.replace(), base)
4539 self.assertEqual(copy.replace(base), base)
4540
4541 changes = (("hour", 5),
4542 ("minute", 6),
4543 ("second", 7),
4544 ("microsecond", 8),
4545 ("tzinfo", zm200))
4546 for i, (name, newval) in enumerate(changes):
4547 newargs = args[:]
4548 newargs[i] = newval
4549 expected = cls(*newargs)
4550 self.assertEqual(base.replace(**{name: newval}), expected)
4551 self.assertEqual(copy.replace(base, **{name: newval}), expected)
4552
4553 # Ensure we can get rid of a tzinfo.
4554 self.assertEqual(base.tzname(), "+100")
4555 base2 = base.replace(tzinfo=None)
4556 self.assertIsNone(base2.tzinfo)
4557 self.assertIsNone(base2.tzname())
4558 base22 = copy.replace(base, tzinfo=None)
4559 self.assertIsNone(base22.tzinfo)
4560 self.assertIsNone(base22.tzname())
4561
4562 # Ensure we can add one.
4563 base3 = base2.replace(tzinfo=z100)
4564 self.assertEqual(base, base3)
4565 self.assertIs(base.tzinfo, base3.tzinfo)
4566 base32 = copy.replace(base22, tzinfo=z100)
4567 self.assertEqual(base, base32)
4568 self.assertIs(base.tzinfo, base32.tzinfo)
4569
4570 # Out of bounds.
4571 base = cls(1)
4572 self.assertRaises(ValueError, base.replace, hour=24)
4573 self.assertRaises(ValueError, base.replace, minute=-1)
4574 self.assertRaises(ValueError, base.replace, second=100)
4575 self.assertRaises(ValueError, base.replace, microsecond=1000000)
4576 self.assertRaises(ValueError, copy.replace, base, hour=24)
4577 self.assertRaises(ValueError, copy.replace, base, minute=-1)
4578 self.assertRaises(ValueError, copy.replace, base, second=100)
4579 self.assertRaises(ValueError, copy.replace, base, microsecond=1000000)
4580
4581 def test_mixed_compare(self):
4582 t1 = self.theclass(1, 2, 3)

Callers

nothing calls this directly

Calls 10

timedeltaClass · 0.90
enumerateFunction · 0.85
assertIsNoneMethod · 0.80
FixedOffsetClass · 0.70
clsClass · 0.50
assertEqualMethod · 0.45
replaceMethod · 0.45
tznameMethod · 0.45
assertIsMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected