From d51c2b41b891835eb73572a0cc5e60a351ba9560 Mon Sep 17 00:00:00 2001 From: Ross McFarland Date: Tue, 28 Mar 2017 13:32:49 -0700 Subject: [PATCH] Tests for MainThreadExecutor --- tests/test_octodns_manager.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/test_octodns_manager.py b/tests/test_octodns_manager.py index f81d5bf..811503a 100644 --- a/tests/test_octodns_manager.py +++ b/tests/test_octodns_manager.py @@ -10,7 +10,7 @@ from os.path import dirname, join from unittest import TestCase from octodns.record import Record -from octodns.manager import _AggregateTarget, Manager +from octodns.manager import _AggregateTarget, MainThreadExecutor, Manager from octodns.zone import Zone from helpers import GeoProvider, NoSshFpProvider, SimpleProvider, \ @@ -209,3 +209,35 @@ class TestManager(TestCase): Manager(get_config_filename('unknown-provider.yaml')) \ .validate_configs() self.assertTrue('unknown source' in ctx.exception.message) + + +class TestMainThreadExecutor(TestCase): + + def test_success(self): + mte = MainThreadExecutor() + + future = mte.submit(self.success, 42) + self.assertEquals(42, future.result()) + + future = mte.submit(self.success, ret=43) + self.assertEquals(43, future.result()) + + def test_exception(self): + mte = MainThreadExecutor() + + e = Exception('boom') + future = mte.submit(self.exception, e) + with self.assertRaises(Exception) as ctx: + future.result() + self.assertEquals(e, ctx.exception) + + future = mte.submit(self.exception, e=e) + with self.assertRaises(Exception) as ctx: + future.result() + self.assertEquals(e, ctx.exception) + + def success(self, ret): + return ret + + def exception(self, e): + raise e