MCPcopy Index your code
hub / github.com/python/cpython / test_replace

Method test_replace

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

Source from the content-addressed store, hash-verified

4712 self.assertTrue(t)
4713
4714 def test_replace(self):
4715 cls = self.theclass
4716 z100 = FixedOffset(100, "+100")
4717 zm200 = FixedOffset(timedelta(minutes=-200), "-200")
4718 args = [1, 2, 3, 4, z100]
4719 base = cls(*args)
4720 self.assertEqual(base.replace(), base)
4721 self.assertEqual(copy.replace(base), base)
4722
4723 changes = (("hour", 5),
4724 ("minute", 6),
4725 ("second", 7),
4726 ("microsecond", 8),
4727 ("tzinfo", zm200))
4728 for i, (name, newval) in enumerate(changes):
4729 newargs = args[:]
4730 newargs[i] = newval
4731 expected = cls(*newargs)
4732 self.assertEqual(base.replace(**{name: newval}), expected)
4733 self.assertEqual(copy.replace(base, **{name: newval}), expected)
4734
4735 # Ensure we can get rid of a tzinfo.
4736 self.assertEqual(base.tzname(), "+100")
4737 base2 = base.replace(tzinfo=None)
4738 self.assertIsNone(base2.tzinfo)
4739 self.assertIsNone(base2.tzname())
4740 base22 = copy.replace(base, tzinfo=None)
4741 self.assertIsNone(base22.tzinfo)
4742 self.assertIsNone(base22.tzname())
4743
4744 # Ensure we can add one.
4745 base3 = base2.replace(tzinfo=z100)
4746 self.assertEqual(base, base3)
4747 self.assertIs(base.tzinfo, base3.tzinfo)
4748 base32 = copy.replace(base22, tzinfo=z100)
4749 self.assertEqual(base, base32)
4750 self.assertIs(base.tzinfo, base32.tzinfo)
4751
4752 # Out of bounds.
4753 base = cls(1)
4754 self.assertRaises(ValueError, base.replace, hour=24)
4755 self.assertRaises(ValueError, base.replace, minute=-1)
4756 self.assertRaises(ValueError, base.replace, second=100)
4757 self.assertRaises(ValueError, base.replace, microsecond=1000000)
4758 self.assertRaises(ValueError, copy.replace, base, hour=24)
4759 self.assertRaises(ValueError, copy.replace, base, minute=-1)
4760 self.assertRaises(ValueError, copy.replace, base, second=100)
4761 self.assertRaises(ValueError, copy.replace, base, microsecond=1000000)
4762
4763 def test_mixed_compare(self):
4764 t1 = self.theclass(1, 2, 3)

Callers

nothing calls this directly

Calls 10

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

Tested by

no test coverage detected