def test_modify(self): self.server.dataReceived( pureldap.LDAPMessage( pureldap.LDAPModifyRequest( self.stuff.dn.getText(), modification=[ delta.Add('foo', ['bar']).asLDAP(), ]), id=2).toWire()) self.assertEqual( self.server.transport.value(), pureldap.LDAPMessage( pureldap.LDAPModifyResponse( resultCode=ldaperrors.Success.resultCode), id=2).toWire()) # tree changed self.assertEqual( self.stuff, inmemory.ReadOnlyInMemoryLDAPEntry( 'ou=stuff,dc=example,dc=com', { b'objectClass': [b'a', b'b'], b'ou': [b'stuff'], b'foo': [b'bar'] }))
def test_modify(self): self.server.dataReceived( pureldap.LDAPMessage( pureldap.LDAPModifyRequest( self.stuff.dn.getText(), modification=[ delta.Add("foo", ["bar"]).asLDAP(), ], ), id=2, ).toWire()) self.assertEqual( self.server.transport.value(), pureldap.LDAPMessage( pureldap.LDAPModifyResponse( resultCode=ldaperrors.Success.resultCode), id=2, ).toWire(), ) # tree changed self.assertEqual( self.stuff, inmemory.ReadOnlyInMemoryLDAPEntry( "ou=stuff,dc=example,dc=com", { b"objectClass": [b"a", b"b"], b"ou": [b"stuff"], b"foo": [b"bar"] }, ), )
def commit(self): self._checkState() if not self._journal: return defer.succeed(self) op = pureldap.LDAPModifyRequest( object=self.dn, modification=[x.asLDAP() for x in self._journal]) d = defer.maybeDeferred(self.client.send, op) d.addCallback(self._commit_success) return d
def asLDAP(self): return pureldap.LDAPModifyRequest( object=str(self.dn), modification=[x.asLDAP() for x in self.modifications])