Exemple #1
0
    def test_loads_with_date_and_time_values(self):
        """Assert that date/time-like strings are parsed properly."""
        assert datetime.datetime(2015, 1, 1) == ndb_json.loads(
            datetime.date(2015, 1, 1).isoformat())

        payload_str = json.dumps({
            'date':
            datetime.date(2015, 1, 1).isoformat(),
            'datetime':
            datetime.datetime(2015, 1, 1, 12, 0, 0, 0).isoformat(),
            'time':
            '12:30',
            'non-date':
            '12-15',
            'double-hyphen non-date':
            '12-15-0',
        })

        parsed = ndb_json.loads(payload_str)

        # TODO(erichiggins): It may be better for dates to be parsed as instances of `datetime.date`.
        assert datetime.datetime(2015, 1, 1) == parsed['date']
        assert datetime.datetime(2015, 1, 1, 12, 0, 0, 0) == parsed['datetime']
        assert '12:30' == parsed['time']
        assert '12-15' == parsed['non-date']
        assert '12-15-0' == parsed['double-hyphen non-date']
Exemple #2
0
 def test_loads_with_nested_datetime(self):
     """Assert the object hooks work as intended."""
     payload_str = json.dumps({
       'nested': {'datetime': datetime.datetime(2016, 1, 1, 12).isoformat()},
     })
     parsed = ndb_json.loads(payload_str)
     assert datetime.datetime(2016, 1, 1, 12, 0, 0, 0) == parsed['nested']['datetime']
Exemple #3
0
 def test_loads_with_nested_datetime(self):
     """Assert the object hooks work as intended."""
     payload_str = json.dumps({
         'nested': {
             'datetime': datetime.datetime(2016, 1, 1, 12).isoformat()
         },
     })
     parsed = ndb_json.loads(payload_str)
     assert datetime.datetime(2016, 1, 1, 12, 0, 0,
                              0) == parsed['nested']['datetime']
Exemple #4
0
    def test_loads_with_date_and_time_values(self):
        """Assert that date/time-like strings are parsed properly."""
        assert datetime.datetime(2015, 1, 1) == ndb_json.loads(datetime.date(2015, 1, 1).isoformat())

        payload_str = json.dumps({
            'date': datetime.date(2015, 1, 1).isoformat(),
            'datetime': datetime.datetime(2015, 1, 1, 12, 0, 0, 0).isoformat(),
            'time': '12:30',
            'non-date': '12-15',
            'double-hyphen non-date': '12-15-0',
        })

        parsed = ndb_json.loads(payload_str)

        # TODO(erichiggins): It may be better for dates to be parsed as instances of `datetime.date`.
        assert datetime.datetime(2015, 1, 1) == parsed['date']
        assert datetime.datetime(2015, 1, 1, 12, 0, 0, 0) == parsed['datetime']
        assert '12:30' == parsed['time']
        assert '12-15' == parsed['non-date']
        assert '12-15-0' == parsed['double-hyphen non-date']
Exemple #5
0
    def test_loads_with_naive_values(self):
        payload_str = json.dumps({
            'bool true': True,
            'bool false': False,
            'empty str': '',
            'str': 'hello world',
            'unicode': u'(╯°□°)╯︵ ┻━┻',
            'int': 12345,
            'float': 1.2345,
            'str int': '12345',
            'str float': '1.2345',
        })

        parsed = ndb_json.loads(payload_str)

        assert True == parsed['bool true']
        assert False == parsed['bool false']
        assert '' == parsed['empty str']
        assert 'hello world' == parsed['str']
        assert u'(╯°□°)╯︵ ┻━┻' == parsed['unicode']
        assert 12345 == parsed['int']
        assert 1.2345 == parsed['float']
        assert '12345' == parsed['str int']
        assert '1.2345' == parsed['str float']
Exemple #6
0
    def test_loads_with_naive_values(self):
        payload_str = json.dumps({
            'bool true': True,
            'bool false': False,
            'empty str': '',
            'str': 'hello world',
            'unicode': u'(╯°□°)╯︵ ┻━┻',
            'int': 12345,
            'float': 1.2345,
            'str int': '12345',
            'str float': '1.2345',
        })

        parsed = ndb_json.loads(payload_str)

        assert True == parsed['bool true']
        assert False == parsed['bool false']
        assert '' == parsed['empty str']
        assert 'hello world' == parsed['str']
        assert u'(╯°□°)╯︵ ┻━┻' == parsed['unicode']
        assert 12345 == parsed['int']
        assert 1.2345 == parsed['float']
        assert '12345' == parsed['str int']
        assert '1.2345' == parsed['str float']
Exemple #7
0
 def test_loads_with_other_collections(self):
     """Assert that array/list values are parsed properly."""
     test_cases = ['[1,2,3,4]', '[[0]]', '[[[{}]]]']
     for s in test_cases:
         tools.eq_(json.loads(s), ndb_json.loads(s))
Exemple #8
0
 def test_loads_with_primitive_values(self):
     """Assert that primitive values are parsed properly."""
     test_cases = ['null', '2', 'Infinity', '1.2345']
     for s in test_cases:
         tools.eq_(json.loads(s), ndb_json.loads(s))
Exemple #9
0
    def test_loads_with_other_collections(self):
        test_cases = ['[1,2,3,4]','[[0]]', '[[[{}]]]']

        for s in test_cases:
            assert json.loads(s) == ndb_json.loads(s)
Exemple #10
0
    def test_loads_with_primitive_values(self):
        test_cases = ['null', '2', 'Infinity', 'NaN', '1.2345']

        for s in test_cases:
            assert json.loads(s) == ndb_json.loads(s)
Exemple #11
0
 def test_loads_with_other_collections(self):
     """Assert that array/list values are parsed properly."""
     test_cases = ['[1,2,3,4]', '[[0]]', '[[[{}]]]']
     for s in test_cases:
         tools.eq_(json.loads(s), ndb_json.loads(s))
Exemple #12
0
 def test_loads_with_primitive_values(self):
     """Assert that primitive values are parsed properly."""
     test_cases = ['null', '2', 'Infinity', '1.2345']
     for s in test_cases:
         tools.eq_(json.loads(s), ndb_json.loads(s))