コード例 #1
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #2
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #3
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #4
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #5
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #6
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #7
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #8
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #9
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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(), {})
コード例 #10
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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(), {})
コード例 #11
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #12
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #13
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #14
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #15
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #16
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #17
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #18
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #19
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #20
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #21
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #22
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #23
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    def test_no_change(self):
        status = self._create_status({"int": 2})

        d = status.deferred(revision=1)
        self.assertFalse(d.called)
コード例 #24
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    def test_default_revision(self):
        status = self._create_status({"int": 2})

        d = status.deferred()
        self.assertFalse(d.called)
コード例 #25
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    def test_default_revision(self):
        status = self._create_status({'int': 2})

        d = status.deferred()
        self.assertFalse(d.called)
コード例 #26
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    def test_no_change(self):
        status = self._create_status({'int': 2})

        d = status.deferred(revision=1)
        self.assertFalse(d.called)
コード例 #27
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)
コード例 #28
0
ファイル: test_status.py プロジェクト: DonGar/house-monitor
    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)