Esempio n. 1
0
 def setUp(self):
     self.challenge = Heartbeat.challenge_type().\
         fromdict(
             MockValues
             .get_challenges_response['challenges'][0]['challenge'])
     self.heartbeat = Heartbeat.fromdict(
         MockValues.connect_response['heartbeat'])
     self.tag = Heartbeat.tag_type().fromdict(
         MockValues.get_chunks_response['chunks'][0]['tag'])
     self.expiration = datetime.utcnow() + timedelta(
         int(MockValues.get_chunks_response['chunks'][0]['due']))
     self.client = mock.MagicMock()
     self.manager = ThreadManager()
     self.test_hash = 'hash'
     self.test_size = 100
     self.test_seed = 'seed'
     self.contract = DownstreamContract(self.client, self.test_hash,
                                        self.test_seed, self.test_size,
                                        self.challenge, self.expiration,
                                        self.tag, self.manager,
                                        os.path.join('data', 'chunks'))
     self.contract.generate_data()
Esempio n. 2
0
 def setUp(self):
     self.thread_manager = ThreadManager()
Esempio n. 3
0
class TestThreadManager(unittest.TestCase):

    def setUp(self):
        self.thread_manager = ThreadManager()

    def tearDown(self):
        self.thread_manager.finish()

    def test_init(self):
        self.assertTrue(self.thread_manager.running)
        self.thread_manager.finish()
        self.assertFalse(self.thread_manager.running)

    def test_start_thread(self):
        def mock_target(manager):
            manager.sleep(10)

        thread = self.thread_manager.create_thread(
            target=mock_target, args=(self.thread_manager,))
        thread.start()
        self.assertTrue(thread.is_alive())
        self.thread_manager.finish()
        self.assertFalse(thread.is_alive())

    def test_wait_for_shutdown(self):
        class MockTargetGenerator(object):

            def __init__(self, manager):
                self.manager = manager

            def __call__(self, arg=None):
                self.manager.signal_shutdown()
                raise InterruptedError('test error')

        with mock.patch('downstream_farmer.utils.time.sleep') as s:
            s.side_effect = MockTargetGenerator(self.thread_manager)
            self.thread_manager.wait_for_shutdown()
        self.assertFalse(self.thread_manager.running)

    def test_child_exception(self):
        def mock_target():
            raise Exception('test error')

        thread = self.thread_manager.create_thread(
            target=mock_target)
        thread.start()
        self.thread_manager.wait_for_shutdown()
        self.assertFalse(self.thread_manager.running)
Esempio n. 4
0
 def setUp(self):
     self.thread_manager = ThreadManager()
Esempio n. 5
0
class TestThreadManager(unittest.TestCase):
    def setUp(self):
        self.thread_manager = ThreadManager()

    def tearDown(self):
        self.thread_manager.finish()

    def test_init(self):
        self.assertTrue(self.thread_manager.running)
        self.thread_manager.finish()
        self.assertFalse(self.thread_manager.running)

    def test_start_thread(self):
        def mock_target(manager):
            manager.sleep(10)

        thread = self.thread_manager.create_thread(
            target=mock_target, args=(self.thread_manager, ))
        thread.start()
        self.assertTrue(thread.is_alive())
        self.thread_manager.finish()
        self.assertFalse(thread.is_alive())

    def test_wait_for_shutdown(self):
        class MockTargetGenerator(object):
            def __init__(self, manager):
                self.manager = manager

            def __call__(self, arg=None):
                self.manager.signal_shutdown()
                raise InterruptedError('test error')

        with mock.patch('downstream_farmer.utils.time.sleep') as s:
            s.side_effect = MockTargetGenerator(self.thread_manager)
            self.thread_manager.wait_for_shutdown()
        self.assertFalse(self.thread_manager.running)

    def test_child_exception(self):
        def mock_target():
            raise Exception('test error')

        thread = self.thread_manager.create_thread(target=mock_target)
        thread.start()
        self.thread_manager.wait_for_shutdown()
        self.assertFalse(self.thread_manager.running)