def test_mismatch_revision_with_url(self): status = self._create_status({'int': 2}) url = 'status://int' d = status.deferred(0, url=url) d.addCallback(self.assertEquals, [url]) self.assertTrue(d.called)
def test_mismatch_revision_with_url(self): status = self._create_status({"int": 2}) url = "status://int" d = status.deferred(0, url=url) d.addCallback(self.assertEquals, [url]) self.assertTrue(d.called)
def test_noop_change(self): """Ensure the deferred does not fire on a non-meaningful change.""" status = self._create_status({'int': 2}) d = status.deferred(revision=1) status.set('status://int', 2) self.assertFalse(d.called)
def test_noop_change(self): """Ensure the deferred does not fire on a non-meaningful change.""" status = self._create_status({"int": 2}) d = status.deferred(revision=1) status.set("status://int", 2) self.assertFalse(d.called)
def test_url_not_updated(self): status = self._create_status({'foo': 1, 'bar': 2}) # Ask for a specialized notification. d = status.deferred(revision=1, url='status://bar') status.set('status://int', 3) self.assertFalse(d.called)
def test_url_not_updated(self): status = self._create_status({"foo": 1, "bar": 2}) # Ask for a specialized notification. d = status.deferred(revision=1, url="status://bar") status.set("status://int", 3) self.assertFalse(d.called)
def test_double_change_no_url(self): """Ensure the deferred does not fire on a non-meaningful change.""" status = self._create_status({"int": 2}) d = status.deferred(revision=1) status.set("status://int", 3) status.set("status://int", 4) d.addCallback(self.assertEquals, ["status://"]) self.assertTrue(d.called)
def test_single_change_no_url(self): status = self._create_status({"int": 2}) # Test that the expected notification fires after we make a change. url = "status://int" d = status.deferred() status.set(url, 3) d.addCallback(self.assertEquals, ["status://"]) self.assertTrue(d.called)
def test_find_revisions(self): status = self._create_status({"sub1": 1, "sub2": {"subsub": 2}}) url = "status://sub1" d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {"status://sub1": 1}) url = "status://*/subsub" d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {"status://sub2/subsub": 1}) url = "status://nonexistent" d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {}) url = "status://*/nonexistent" d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {})
def test_find_revisions(self): status = self._create_status({'sub1': 1, 'sub2': {'subsub': 2}}) url = 'status://sub1' d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {'status://sub1': 1}) url = 'status://*/subsub' d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {'status://sub2/subsub': 1}) url = 'status://nonexistent' d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {}) url = 'status://*/nonexistent' d = status.deferred(url=url) self.assertEqual(d._find_revisions(), {})
def test_double_change_no_url(self): """Ensure the deferred does not fire on a non-meaningful change.""" status = self._create_status({'int': 2}) d = status.deferred(revision=1) status.set('status://int', 3) status.set('status://int', 4) d.addCallback(self.assertEquals, ['status://']) self.assertTrue(d.called)
def test_non_existent_url(self): status = self._create_status() # Ask for a specialized notification. url = 'status://foo' d = status.deferred(url=url) status.set(url, 3) d.addCallback(self.assertEquals, [url]) self.assertTrue(d.called)
def test_single_change_no_url(self): status = self._create_status({'int': 2}) # Test that the expected notification fires after we make a change. url = 'status://int' d = status.deferred() status.set(url, 3) d.addCallback(self.assertEquals, ['status://']) self.assertTrue(d.called)
def test_non_existent_url(self): status = self._create_status() # Ask for a specialized notification. url = "status://foo" d = status.deferred(url=url) status.set(url, 3) d.addCallback(self.assertEquals, [url]) self.assertTrue(d.called)
def test_url_double_updated(self): status = self._create_status() # Ask for a specialized notification. url = 'status://int' d = status.deferred(revision=1, url=url) d.addCallback(self.assertEquals, [url]) status.set(url, 3) status.set(url, 4) self.assertTrue(d.called)
def test_url_double_updated(self): status = self._create_status() # Ask for a specialized notification. url = "status://int" d = status.deferred(revision=1, url=url) d.addCallback(self.assertEquals, [url]) status.set(url, 3) status.set(url, 4) self.assertTrue(d.called)
def test_url_parent_different_revision(self): status = self._create_status({'foo': 1, 'bar': 2}) status.set('status://foo', 3) self.assertEqual(status.revision(), 2) self.assertEqual(status.revision('status://bar'), 1) # Ask for a specialized notification with the parents revision, not # the revision of the url. d = status.deferred(revision=1, url='status://bar') status.set('status://int', 3) self.assertFalse(d.called)
def test_url_circular_deferreds(self): status = self._create_status({'foo': 1, 'bar': 1}) url_foo = 'status://foo' url_bar = 'status://bar' d_foo = status.deferred(url=url_foo) d_bar = status.deferred(url=url_bar) def callback(value, new_url, new_int): status.set(new_url, new_int) return value d_foo.addCallback(callback, url_bar, 3) d_bar.addCallback(callback, url_foo, 3) status.set(url_foo, 2) status.set(url_bar, 2) self.assertTrue(d_foo.called) self.assertTrue(d_bar.called)
def test_url_parent_different_revision(self): status = self._create_status({"foo": 1, "bar": 2}) status.set("status://foo", 3) self.assertEqual(status.revision(), 2) self.assertEqual(status.revision("status://bar"), 1) # Ask for a specialized notification with the parents revision, not # the revision of the url. d = status.deferred(revision=1, url="status://bar") status.set("status://int", 3) self.assertFalse(d.called)
def test_url_circular_deferreds(self): status = self._create_status({"foo": 1, "bar": 1}) url_foo = "status://foo" url_bar = "status://bar" d_foo = status.deferred(url=url_foo) d_bar = status.deferred(url=url_bar) def callback(value, new_url, new_int): status.set(new_url, new_int) return value d_foo.addCallback(callback, url_bar, 3) d_bar.addCallback(callback, url_foo, 3) status.set(url_foo, 2) status.set(url_bar, 2) self.assertTrue(d_foo.called) self.assertTrue(d_bar.called)
def test_url_nested_updates(self): status = self._create_status() url = 'status://int' def callback(value, new_int): status.set(url, new_int) return value d = status.deferred(url=url) d.addCallback(callback, 4) d.addCallback(callback, 5) status.set(url, 3) self.assertTrue(d.called)
def test_url_nested_updates(self): status = self._create_status() url = "status://int" def callback(value, new_int): status.set(url, new_int) return value d = status.deferred(url=url) d.addCallback(callback, 4) d.addCallback(callback, 5) status.set(url, 3) self.assertTrue(d.called)
def test_no_change(self): status = self._create_status({"int": 2}) d = status.deferred(revision=1) self.assertFalse(d.called)
def test_default_revision(self): status = self._create_status({"int": 2}) d = status.deferred() self.assertFalse(d.called)
def test_default_revision(self): status = self._create_status({'int': 2}) d = status.deferred() self.assertFalse(d.called)
def test_no_change(self): status = self._create_status({'int': 2}) d = status.deferred(revision=1) self.assertFalse(d.called)
def test_mismatch_revision_no_url(self): status = self._create_status({'int': 2}) d = status.deferred(0) d.addCallback(self.assertEquals, ['status://']) self.assertTrue(d.called)
def test_mismatch_revision_no_url(self): status = self._create_status({"int": 2}) d = status.deferred(0) d.addCallback(self.assertEquals, ["status://"]) self.assertTrue(d.called)