~crunch.io/ubuntu/precise/pymongo/unstable

« back to all changes in this revision

Viewing changes to test/test_bson.py

  • Committer: Joseph Tate
  • Date: 2013-01-31 08:00:57 UTC
  • mfrom: (1.1.12)
  • Revision ID: jtate@dragonstrider.com-20130131080057-y7lv17xi6x8c1j5x
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
        self.assertFalse(is_valid(b("\x05\x00\x00\x00\x00\x00")))
75
75
        self.assertFalse(is_valid(b("\x07\x00\x00\x00\x02a\x00\x78\x56\x34\x12")))
76
76
        self.assertFalse(is_valid(b("\x09\x00\x00\x00\x10a\x00\x05\x00")))
 
77
        self.assertFalse(is_valid(b("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")))
77
78
 
78
79
    def test_random_data_is_not_bson(self):
79
80
        qcheck.check_unittest(self, qcheck.isnt(is_valid),
202
203
        doc_class = dict
203
204
        # Work around http://bugs.jython.org/issue1728
204
205
        if (sys.platform.startswith('java') and
205
 
            sys.version_info[:3] == (2, 5, 2)):
 
206
            sys.version_info[:3] >= (2, 5, 2)):
206
207
            doc_class = SON
207
208
 
208
209
        def encode_then_decode(doc):
223
224
 
224
225
    def test_datetime_encode_decode(self):
225
226
        # Negative timestamps
226
 
        dt1 = datetime.datetime(1, 1, 1, 1, 1, 1)
 
227
        dt1 = datetime.datetime(1, 1, 1, 1, 1, 1, 111000)
227
228
        dt2 = BSON.encode({"date": dt1}).decode()["date"]
228
229
        self.assertEqual(dt1, dt2)
229
230
 
230
 
        dt1 = datetime.datetime(1959, 6, 25, 12, 16, 59)
 
231
        dt1 = datetime.datetime(1959, 6, 25, 12, 16, 59, 999000)
231
232
        dt2 = BSON.encode({"date": dt1}).decode()["date"]
232
233
        self.assertEqual(dt1, dt2)
233
234
 
234
235
        # Positive timestamps
235
 
        dt1 = datetime.datetime(9999, 12, 31, 23, 59, 59)
 
236
        dt1 = datetime.datetime(9999, 12, 31, 23, 59, 59, 999000)
236
237
        dt2 = BSON.encode({"date": dt1}).decode()["date"]
237
238
        self.assertEqual(dt1, dt2)
238
239
 
239
 
        dt1 = datetime.datetime(2011, 6, 14, 10, 47, 53)
 
240
        dt1 = datetime.datetime(2011, 6, 14, 10, 47, 53, 444000)
240
241
        dt2 = BSON.encode({"date": dt1}).decode()["date"]
241
242
        self.assertEqual(dt1, dt2)
242
243
 
309
310
 
310
311
    def test_uuid(self):
311
312
        if not should_test_uuid:
312
 
            raise SkipTest()
 
313
            raise SkipTest("No uuid module")
313
314
 
314
315
        id = uuid.uuid4()
315
316
        transformed_id = (BSON.encode({"id": id})).decode()["id"]
320
321
 
321
322
    def test_uuid_legacy(self):
322
323
        if not should_test_uuid:
323
 
            raise SkipTest()
 
324
            raise SkipTest("No uuid module")
324
325
 
325
326
        id = uuid.uuid4()
326
327
        legacy = UUIDLegacy(id)
436
437
        try:
437
438
            from collections import OrderedDict
438
439
        except ImportError:
439
 
            raise SkipTest()
 
440
            raise SkipTest("No OrderedDict")
440
441
        d = OrderedDict([("one", 1), ("two", 2), ("three", 3), ("four", 4)])
441
442
        self.assertEqual(d, BSON.encode(d).decode(as_class=OrderedDict))
442
443