def test_worker_parent_proc_exist_task_result_no_input(self):
        config = mock.Mock()
        parent_pid = 13

        from tarantool import DatabaseError
        task = mock.MagicMock()
        task.ack = mock.Mock(side_effect=DatabaseError)

        input_tube = mock.MagicMock()
        input_tube.take = mock.Mock(return_value=task)
        output_tube = mock.MagicMock()
        mock_get_tube = mock.Mock(side_effect=[input_tube, output_tube])

        is_input = False
        data = mock.Mock()
        mock_get_redirect_history_from_task = mock.Mock(
            return_value=[is_input, data])
        mock_logger = mock.Mock()

        with mock.patch("lib.worker.get_tube", mock_get_tube):
            with mock.patch("os.path.exists",
                            mock.Mock(side_effect=[True, False])):
                with mock.patch("lib.worker.get_redirect_history_from_task",
                                mock_get_redirect_history_from_task):
                    with mock.patch("lib.worker.logger", mock_logger):
                        worker.worker(config, parent_pid)

        assert input_tube.take.call_count == 1
        assert mock_get_redirect_history_from_task.call_count == 1
        assert output_tube.put.call_count == 1
        assert task.ack.call_count == 1
        assert mock_logger.exception.call_count == 1
    def test_worker_when_no_result_and_no_exception(self, path_exs_m, get_tubes_m, get_redirect_m):
        config = Mock(None)
        config.HTTP_TIMEOUT = 100
        config.MAX_REDIRECTS = 10
        config.USER_AGENT = 'abc'
        config.QUEUE_TAKE_TIMEOUT = 50

        task_mock = Mock(None)
        task_mock.ack = Mock(None)
        in_tube_mock = Mock(None)
        out_tube_mock = Mock(None)
        in_tube_mock.take = Mock(return_value=task_mock)
        in_tube_mock.put = Mock(None)
        out_tube_mock.put = Mock(None)
        path_exs_m.side_effect = [True, False]
        get_redirect_m.return_value = None
        get_tubes_m.return_value = in_tube_mock, out_tube_mock

        wr.worker(config, 666)

        get_tubes_m.assert_called_once_with(config)
        in_tube_mock.take.assert_called_once_with(50)
        get_redirect_m.assert_called_once_with(task_mock, 100, 10, 'abc')
        self.assertEqual(in_tube_mock.put.call_count, 0)
        self.assertEqual(out_tube_mock.put.call_count, 0)
        self.assertTrue(task_mock.ack.called)
 def test_worker_is_input_false(self):
     config = get_confog()
     with patch("os.path.exists", Mock(return_value=True)):
         with patch("lib.worker.break_func_for_test", Mock(return_value=True)):
             with patch("lib.worker.get_tube", Mock(return_value=MagicMock())):
                 data = dict(url='url', recheck=True, url_id='url_id', suspicious='suspicious')
                 with patch("lib.worker.get_redirect_history_from_task", Mock(return_value=(False, data))):
                     worker.worker(config, 42)
 def test_worker_ifresult_false(self):
     config = get_confog()
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test", Mock(return_value=True)):
                 with patch("lib.worker.get_tube", Mock(return_value=MagicMock())):
                     with patch("lib.worker.get_redirect_history_from_task", Mock(return_value=False)):
                         worker.worker(config, 42)
     self.assertTrue(logger.info.called)
 def test_worker_no_task(self):
     config = get_confog()
     input_tube = MagicMock()
     input_tube.take = Mock(return_value=False)
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test", Mock(return_value=True)):
                 with patch("lib.worker.get_tube", Mock(return_value=input_tube)):
                     worker.worker(config, 42)
     self.assertTrue(logger.info.called)
Beispiel #6
0
 def test_worker_ifresult_false(self):
     config = get_confog()
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test",
                        Mock(return_value=True)):
                 with patch("lib.worker.get_tube",
                            Mock(return_value=MagicMock())):
                     with patch("lib.worker.get_redirect_history_from_task",
                                Mock(return_value=False)):
                         worker.worker(config, 42)
     self.assertTrue(logger.info.called)
Beispiel #7
0
 def test_worker_no_task(self):
     config = get_confog()
     input_tube = MagicMock()
     input_tube.take = Mock(return_value=False)
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test",
                        Mock(return_value=True)):
                 with patch("lib.worker.get_tube",
                            Mock(return_value=input_tube)):
                     worker.worker(config, 42)
     self.assertTrue(logger.info.called)
    def test_worker_parent_proc_not_exist(self):
        config = mock.MagicMock()
        parent_pid = 13

        input_tube = mock.MagicMock()
        output_tube = mock.MagicMock()
        mock_get_tube = mock.Mock(side_effect=[input_tube, output_tube])

        with mock.patch("lib.worker.get_tube", mock_get_tube):
            with mock.patch("os.path.exists", mock.Mock(return_value=False)):
                worker.worker(config, parent_pid)

        assert input_tube.take.call_count == 0
Beispiel #9
0
 def test_worker_is_input_false(self):
     config = get_confog()
     with patch("os.path.exists", Mock(return_value=True)):
         with patch("lib.worker.break_func_for_test",
                    Mock(return_value=True)):
             with patch("lib.worker.get_tube",
                        Mock(return_value=MagicMock())):
                 data = dict(url='url',
                             recheck=True,
                             url_id='url_id',
                             suspicious='suspicious')
                 with patch("lib.worker.get_redirect_history_from_task",
                            Mock(return_value=(False, data))):
                     worker.worker(config, 42)
 def test_worker_exception(self):
     config = get_confog()
     task = MagicMock()
     task.ack = Mock(side_effect=DatabaseError)
     input_tube = MagicMock()
     input_tube.take = Mock(return_value=task)
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test", Mock(return_value=True)):
                 with patch("lib.worker.get_tube", Mock(return_value=input_tube)):
                     data = dict(url='url', recheck=True, url_id='url_id', suspicious='suspicious')
                     with patch("lib.worker.get_redirect_history_from_task", Mock(return_value=(True, data))):
                         worker.worker(config, 42)
     self.assertTrue(logger.info.called)
    def test_worker_when_no_task_at_all(self, path_exs_m, get_tubes_m, get_redirect_m):
        config = Mock(None)
        config.QUEUE_TAKE_TIMEOUT = 50

        in_tube_mock = Mock(None)
        out_tube_mock = Mock(None)
        in_tube_mock.take = Mock(return_value=None)
        in_tube_mock.put = Mock(None)
        out_tube_mock.put = Mock(None)
        path_exs_m.side_effect = [True, False]
        get_tubes_m.return_value = in_tube_mock, out_tube_mock

        wr.worker(config, 666)

        self.assertFalse(get_redirect_m.called)
Beispiel #12
0
 def test_worker_exception(self):
     config = get_confog()
     task = MagicMock()
     task.ack = Mock(side_effect=DatabaseError)
     input_tube = MagicMock()
     input_tube.take = Mock(return_value=task)
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=True)):
             with patch("lib.worker.break_func_for_test",
                        Mock(return_value=True)):
                 with patch("lib.worker.get_tube",
                            Mock(return_value=input_tube)):
                     data = dict(url='url',
                                 recheck=True,
                                 url_id='url_id',
                                 suspicious='suspicious')
                     with patch("lib.worker.get_redirect_history_from_task",
                                Mock(return_value=(True, data))):
                         worker.worker(config, 42)
     self.assertTrue(logger.info.called)
Beispiel #13
0
    def test_worker_parent_proc_exist_not_task(self):
        config = mock.Mock()
        parent_pid = 13

        input_tube = mock.MagicMock()
        input_tube.take = mock.Mock(return_value=None)
        output_tube = mock.MagicMock()
        mock_get_tube = mock.Mock(side_effect=[input_tube, output_tube])

        mock_get_redirect_history_from_task = mock.Mock()

        with mock.patch("lib.worker.get_tube", mock_get_tube):
            with mock.patch("os.path.exists",
                            mock.Mock(side_effect=[True, False])):
                with mock.patch("lib.worker.get_redirect_history_from_task",
                                mock_get_redirect_history_from_task):
                    worker.worker(config, parent_pid)

        assert mock_get_redirect_history_from_task.call_count == 0
        assert input_tube.take.call_count == 1
    def test_worker_when_no_result_and_exception(self, exc_m, path_exs_m, get_tubes_m, get_redirect_m):
        config = Mock(None)
        config.HTTP_TIMEOUT = 100
        config.MAX_REDIRECTS = 10
        config.USER_AGENT = 'abc'
        config.QUEUE_TAKE_TIMEOUT = 50

        task_mock = Mock(None)
        task_mock.ack = Mock(side_effect=DatabaseError())
        in_tube_mock = Mock(None)
        out_tube_mock = Mock(None)
        in_tube_mock.take = Mock(return_value=task_mock)
        in_tube_mock.put = Mock(None)
        out_tube_mock.put = Mock(None)
        path_exs_m.side_effect = [True, False]
        get_redirect_m.return_value = None
        get_tubes_m.return_value = in_tube_mock, out_tube_mock

        wr.worker(config, 666)

        self.assertTrue(exc_m.called)
    def test_worker_when_result_putting_to_output(self, path_exs_m, get_tubes_m, get_redirect_m):
        config = Mock(None)
        config.HTTP_TIMEOUT = 100
        config.MAX_REDIRECTS = 10
        config.USER_AGENT = 'abc'
        config.QUEUE_TAKE_TIMEOUT = 50

        task_mock = Mock(None)
        task_mock.ack = Mock(None)
        in_tube_mock = Mock(None)
        out_tube_mock = Mock(None)
        in_tube_mock.take = Mock(return_value=task_mock)
        in_tube_mock.put = Mock(None)
        out_tube_mock.put = Mock(None)
        path_exs_m.side_effect = [True, False]
        get_redirect_m.return_value = False, 'data'
        get_tubes_m.return_value = in_tube_mock, out_tube_mock

        wr.worker(config, 666)

        out_tube_mock.put.assert_called_once_with('data')
        self.assertFalse(in_tube_mock.put.called)
Beispiel #16
0
 def test_worker_no_while(self):
     config = get_confog()
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=False)):
             worker.worker(config, 42)
     self.assertTrue(logger.info.called)
 def test_worker_no_while(self):
     config = get_confog()
     with patch('lib.worker.logger', Mock()) as logger:
         with patch("os.path.exists", Mock(return_value=False)):
             worker.worker(config, 42)
     self.assertTrue(logger.info.called)