Exemple #1
0
def test_register_serializer():
    # Making sure we have a clear registry before writing stuff to it
    ejson.cleanup_registry()
    dict(ejson.REGISTRY).should.be.equal({})

    # Registering our first serializer for a custom object
    @ejson.register_serializer(Person)
    def serialize_person(instance):
        return {
            'name': instance.name,
            'age': instance.age,
        }
    ejson.REGISTRY.should.have.length_of(1)
    ejson.REGISTRY[Person].should.be.equal(serialize_person)

    # Testing the serializer registry with the python data type
    @ejson.register_serializer(datetime)
    def serialize_datetime(instance):
        return instance.isoformat()
    ejson.REGISTRY.should.have.length_of(2)
    ejson.REGISTRY[datetime].should.be.equal(serialize_datetime)

    # Now, testing the cleanup_registry function for real
    ejson.cleanup_registry()
    dict(ejson.REGISTRY).should.be.equal({})
Exemple #2
0
def test_register_serializer():
    # Making sure we have a clear registry before writing stuff to it
    ejson.cleanup_registry()
    dict(ejson.REGISTRY).should.be.equal({})

    # Registering our first serializer for a custom object
    @ejson.register_serializer(Person)
    def serialize_person(instance):
        return {
            'name': instance.name,
            'age': instance.age,
        }

    ejson.REGISTRY.should.have.length_of(1)
    ejson.REGISTRY[Person].should.be.equal(serialize_person)

    # Testing the serializer registry with the python data type
    @ejson.register_serializer(datetime)
    def serialize_datetime(instance):
        return instance.isoformat()

    ejson.REGISTRY.should.have.length_of(2)
    ejson.REGISTRY[datetime].should.be.equal(serialize_datetime)

    # Now, testing the cleanup_registry function for real
    ejson.cleanup_registry()
    dict(ejson.REGISTRY).should.be.equal({})
Exemple #3
0
def test_serialization_with_custom_object():
    ejson.cleanup_registry()
    value = Person('Lincoln', 25)

    # Before registering
    ejson.dumps.when.called_with(value, sort_keys=True).should.throw(
        TypeError, 'Person("Lincoln", 25) is not JSON serializable')

    # After registering
    @ejson.register_serializer(Person)
    def serialize_person(instance):
        return {"name": instance.name, "age": instance.age}

    dumped = ejson.dumps(value, sort_keys=True)
    dumped.should.be.contain('"__class__": "tests.unit.test_ejson.Person"')
    dumped.should.be.contain('"__value__": {"age": 25, "name": "Lincoln"}')
Exemple #4
0
def test_serialization_with_custom_object():
    ejson.cleanup_registry()
    value = Person('Lincoln', 25)

    # Before registering
    ejson.dumps.when.called_with(value, sort_keys=True).should.throw(
        TypeError, 'Person("Lincoln", 25) is not JSON serializable')

    # After registering
    @ejson.register_serializer(Person)
    def serialize_person(instance):
        return {"name": instance.name, "age": instance.age}

    dumped = ejson.dumps(value, sort_keys=True)
    dumped.should.be.contain('"__class__": "tests.unit.test_ejson.Person"')
    dumped.should.be.contain('"__value__": {"age": 25, "name": "Lincoln"}')
Exemple #5
0
def test_serialization_with_datetime():
    ejson.cleanup_registry()
    value = {'dt': datetime(2012, 8, 22, 3, 44, 0o5)}

    # Before registering
    ejson.dumps.when.called_with(value, sort_keys=True).should.throw(
        TypeError,
        'datetime.datetime(2012, 8, 22, 3, 44, 5) is not JSON serializable')

    # After registering
    @ejson.register_serializer(datetime)
    def serialize_datetime(instance):
        return instance.isoformat()


    ejson.dumps(value, sort_keys=True).should.be.equals(
        '{"dt": {"__class__": "datetime.datetime", "__value__": "2012-08-22T03:44:05"}}')
Exemple #6
0
def test_serialization_with_datetime():
    ejson.cleanup_registry()
    value = {'dt': datetime(2012, 8, 22, 3, 44, 0o5)}

    # Before registering
    ejson.dumps.when.called_with(value, sort_keys=True).should.throw(
        TypeError,
        'datetime.datetime(2012, 8, 22, 3, 44, 5) is not JSON serializable')

    # After registering
    @ejson.register_serializer(datetime)
    def serialize_datetime(instance):
        return instance.isoformat()

    ejson.dumps(value, sort_keys=True).should.be.equals(
        '{"dt": {"__class__": "datetime.datetime", "__value__": "2012-08-22T03:44:05"}}'
    )