Exemplo n.º 1
0
    def test_future_etree_element(self):
        d = Doc('a')
        f = Future()
        f.set_result(etree.Element('b'))
        d.put(f)

        self.assertXmlAlmostEqual(d.to_etree_element(), """<?xml version='1.0' encoding='utf-8'?>\n<a><b/></a>""")
Exemplo n.º 2
0
    def test_future_list(self):
        d = Doc('a')
        f = Future()
        f.set_result([etree.Comment('ccc'), etree.Element('bbb')])
        d.put(f)

        self.assertXmlAlmostEqual(
            d.to_etree_element(), """<?xml version='1.0' encoding='utf-8'?>\n<a><!--ccc--><bbb/></a>"""
        )
Exemplo n.º 3
0
    def test_failed_future(self):
        j = JsonBuilder()
        f = Future()
        result = RequestResult()
        result.set_exception(FailedRequestException(reason='error', code='code'))
        f.set_result(result)
        j.put(f)

        self.assertEqual(j.to_string(), """{"error": {"reason": "error", "code": "code"}}""")
Exemplo n.º 4
0
    def test_future_simple(self):
        d = Doc('a')
        f = Future()
        d.put(f)

        self.assertXmlAlmostEqual(d.to_etree_element(), """<?xml version='1.0' encoding='utf-8'?>\n<a/>""")

        f.set_result('test')

        self.assertXmlAlmostEqual(d.to_etree_element(), """<?xml version='1.0' encoding='utf-8'?>\n<a>test</a>""")
Exemplo n.º 5
0
    def test_failed_future(self):
        d = Doc('a')
        f = Future()
        result = RequestResult()
        result.set_exception(FailedRequestException(reason='error', code='code'))
        f.set_result(result)
        d.put(f)

        self.assertXmlAlmostEqual(
            d.to_etree_element(),
            """<?xml version='1.0' encoding='utf-8'?>\n<a><error reason="error" code="code"/></a>"""
        )
Exemplo n.º 6
0
    def test_future(self):
        j = JsonBuilder()
        f = Future()
        j.put(f)

        self.assertFalse(j.is_empty())
        self.assertEqual(j.to_string(), """{}""")

        f.set_result({'a': 'b'})

        self.assertEqual(j.to_dict()['a'], 'b')
        self.assertEqual(j.to_string(), """{"a": "b"}""")
Exemplo n.º 7
0
    def test_nested_future_error_node(self):
        j = JsonBuilder()
        f1 = Future()
        f2 = Future()

        f1.set_result({'nested': f2})
        j.put(f1)

        self.assertEqual(j.to_string(), """{"nested": null}""")
        result = RequestResult()
        result.set_exception(FailedRequestException(reason='error', code='code'))

        f2.set_result(
            {'a': result}
        )

        self.assertEqual(
            j.to_string(), """{"nested": {"a": {"error": {"reason": "error", "code": "code"}}}}"""
        )
Exemplo n.º 8
0
    def test_callbacks(self):
        result = 'result'
        f = Future()
        state = {
            'callback1': False,
            'callback2': False,
            'callback3': False,
        }

        def callback1(future):
            state['callback1'] = True
            self.assertEqual(future.result(), result)

        def callback2(future):
            state['callback2'] = True
            self.assertEqual(future.result(), result)

        def callback3(future):
            state['callback3'] = True
            self.assertEqual(future.result(), result)

        f.add_done_callback(callback1)
        f.add_done_callback(callback2)

        self.assertFalse(state['callback1'])
        self.assertFalse(state['callback2'])
        self.assertFalse(state['callback3'])

        f.set_result(result)

        self.assertTrue(state['callback1'])
        self.assertTrue(state['callback2'])
        self.assertFalse(state['callback3'])

        f.add_done_callback(callback3)

        self.assertTrue(state['callback1'])
        self.assertTrue(state['callback2'])
        self.assertTrue(state['callback3'])
Exemplo n.º 9
0
    def test_callbacks(self):
        result = 'result'
        f = Future()
        state = {
            'callback1': False,
            'callback2': False,
            'callback3': False,
        }

        def callback1(future):
            state['callback1'] = True
            self.assertEqual(future.result(), result)

        def callback2(future):
            state['callback2'] = True
            self.assertEqual(future.result(), result)

        def callback3(future):
            state['callback3'] = True
            self.assertEqual(future.result(), result)

        f.add_done_callback(callback1)
        f.add_done_callback(callback2)

        self.assertFalse(state['callback1'])
        self.assertFalse(state['callback2'])
        self.assertFalse(state['callback3'])

        f.set_result(result)

        self.assertTrue(state['callback1'])
        self.assertTrue(state['callback2'])
        self.assertFalse(state['callback3'])

        f.add_done_callback(callback3)

        self.assertTrue(state['callback1'])
        self.assertTrue(state['callback2'])
        self.assertTrue(state['callback3'])
Exemplo n.º 10
0
    def test_nested_future(self):
        j = JsonBuilder()
        f1 = Future()
        f2 = Future()
        f3 = Future()

        f1.set_result({'nested': f2})
        j.put(f1)

        self.assertEqual(j.to_string(), """{"nested": null}""")

        f2.set_result({'a': f3})
        f3.set_result(['b', 'c'])

        self.assertEqual(j.to_string(), """{"nested": {"a": ["b", "c"]}}""")
Exemplo n.º 11
0
    def test_single_data_set(self):
        f = Future()

        f.set_result('first')
        self.assertRaises(FutureStateException, f.set_result, 'second')
Exemplo n.º 12
0
    def test_single_data_set(self):
        f = Future()

        f.set_result('first')
        self.assertRaises(FutureStateException, f.set_result, 'second')