MCPcopy Index your code
hub / github.com/mongodb/mongo-python-driver / test_datetime_auto

Method test_datetime_auto

test/test_bson.py:1659–1704  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1657 )
1658
1659 def test_datetime_auto(self):
1660 # Naive auto, in range.
1661 opts1 = CodecOptions(datetime_conversion=DatetimeConversion.DATETIME_AUTO)
1662 inr = encode({"x": datetime.datetime(1970, 1, 1)}, codec_options=opts1)
1663 dec_inr = decode(inr)
1664 self.assertEqual(dec_inr["x"], datetime.datetime(1970, 1, 1))
1665
1666 # Naive auto, below range.
1667 below = encode({"x": DatetimeMS(_datetime_to_millis(datetime.datetime.min) - 24 * 60 * 60)})
1668 dec_below = decode(below, opts1)
1669 self.assertEqual(
1670 dec_below["x"], DatetimeMS(_datetime_to_millis(datetime.datetime.min) - 24 * 60 * 60)
1671 )
1672
1673 # Naive auto, above range.
1674 above = encode({"x": DatetimeMS(_datetime_to_millis(datetime.datetime.max) + 24 * 60 * 60)})
1675 dec_above = decode(above, opts1)
1676 self.assertEqual(
1677 dec_above["x"],
1678 DatetimeMS(_datetime_to_millis(datetime.datetime.max) + 24 * 60 * 60),
1679 )
1680
1681 # Aware auto, in range.
1682 opts2 = CodecOptions(
1683 datetime_conversion=DatetimeConversion.DATETIME_AUTO,
1684 tz_aware=True,
1685 tzinfo=datetime.timezone.utc,
1686 )
1687 inr = encode({"x": datetime.datetime(1970, 1, 1)}, codec_options=opts2)
1688 dec_inr = decode(inr)
1689 self.assertEqual(dec_inr["x"], datetime.datetime(1970, 1, 1))
1690
1691 # Aware auto, below range.
1692 below = encode({"x": DatetimeMS(_datetime_to_millis(datetime.datetime.min) - 24 * 60 * 60)})
1693 dec_below = decode(below, opts2)
1694 self.assertEqual(
1695 dec_below["x"], DatetimeMS(_datetime_to_millis(datetime.datetime.min) - 24 * 60 * 60)
1696 )
1697
1698 # Aware auto, above range.
1699 above = encode({"x": DatetimeMS(_datetime_to_millis(datetime.datetime.max) + 24 * 60 * 60)})
1700 dec_above = decode(above, opts2)
1701 self.assertEqual(
1702 dec_above["x"],
1703 DatetimeMS(_datetime_to_millis(datetime.datetime.max) + 24 * 60 * 60),
1704 )
1705
1706 def test_millis_from_datetime_ms(self):
1707 # Test 65+ bit integer conversion, expect OverflowError.

Callers

nothing calls this directly

Calls 5

CodecOptionsClass · 0.90
encodeFunction · 0.90
decodeFunction · 0.90
DatetimeMSClass · 0.90
_datetime_to_millisFunction · 0.90

Tested by

no test coverage detected