def test_update(self):
        path = '%s/unittest-update' % self.sandbox
        data = {'unittest': 'data'}
        reg1 = RegistrationBase(zk=self.zk, path=path, data=data)

        # Now register the path and wait until reg1.data() returns some data
        # other than None. If it doesn't after 5 seconds, fail.
        reg1.start()
        waituntil(reg1.data, None, 5)

        # Test updating the data now that its registered
        current_data = reg1.data()
        reg1.set_data('foobar')
        waituntil(reg1.data, current_data, 5)
        self.assertEquals('foobar', reg1.data()['string_value'])
        self.assertTrue('foobar' in self.zk.get(path)[0])

        # Test disabling the node through the update() method
        current_data = reg1.data()
        reg1.update(None, False)
        waituntil(reg1.data, current_data, 5)
        self.assertFalse(reg1.state())
        self.assertEquals({'path': path, 'stat': None,
                           'data': None, 'children': []}, reg1.get())
        self.assertEquals(None, self.zk.exists(path))