def test_should_render_progress(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(3) self.assertEqual(progress.render(), '[---ᗧ//|||]')
def test_should_not_render_pacman_when_finished(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(8) self.assertEqual(progress.render(), '[--------] ')
def test_should_erase_previous_progress_on_subsequent_renders(self, _, print_text, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(2) progress.render_to_terminal() print_text.assert_called_with('[--ᗧ//||||]', flush=True) progress.render_to_terminal() print_text.assert_called_with( '\b' * (10 + len('ᗧ')) + '[--ᗧ//||||]', flush=True)
class TaskPoolProgressTests(unittest.TestCase): def setUp(self): self.progress = TaskPoolProgress(42, 8) self.project = Project("basedir") def test_should_leave_user_specified_properties_when_initializing_plugin( self): expected_properties = { "dir_source_integrationtest_python": "foo/bar/python", "integrationtest_file_glob": "*foo.py", "integrationtest_file_suffix": True, "integrationtest_additional_environment": { "env3": "foo" }, "integrationtest_inherit_environment": True, "integrationtest_always_verbose": True } for property_name, property_value in expected_properties.items(): self.project.set_property(property_name, property_value) initialize_integrationtest_plugin(self.project) for property_name, property_value in expected_properties.items(): self.assertEqual( self.project.get_property("dir_source_integrationtest_python"), "foo/bar/python") self.assertEqual( self.project.get_property("integrationtest_file_glob"), "*foo.py") self.assertEqual( self.project.get_property("integrationtest_file_suffix"), True) self.assertEqual( self.project.get_property( "integrationtest_additional_environment"), {"env3": "foo"}), self.assertEqual( self.project.get_property("integrationtest_always_verbose"), True) def test_should_create_new_progress(self): self.assertEqual(self.progress.workers_count, 8) self.assertEqual(self.progress.finished_tasks_count, 0) self.assertEqual(self.progress.total_tasks_count, 42) def test_should_have_max_amount_of_tasks_running_when_limited_by_workers( self): self.assertEqual(self.progress.running_tasks_count, 8) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks( self): progress = TaskPoolProgress(2, 4) self.assertEqual(progress.running_tasks_count, 2) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks_after_updating( self): self.progress.update(40) self.assertEqual(self.progress.running_tasks_count, 2) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting( self): self.assertEqual(self.progress.waiting_tasks_count, 42 - 8) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting_after_updating( self): self.progress.update(2) self.assertEqual(self.progress.waiting_tasks_count, 40 - 8) def test_should_not_be_finished_when_tasks_are_still_todo(self): self.assertFalse(self.progress.is_finished) def test_should_not_be_finished_when_tasks_are_still_running(self): progress = TaskPoolProgress(1, 1) self.assertFalse(progress.is_finished) def test_should_be_finished_when_all_tasks_are_finished(self): progress = TaskPoolProgress(1, 1) progress.update(1) self.assertTrue(progress.is_finished) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_be_displayed_when_tty_given(self, stdout): stdout.isatty.return_value = True self.assertTrue(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_not_be_displayed_when_no_tty_given(self, stdout): stdout.isatty.return_value = False self.assertFalse(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_render_progress(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(3) self.assertEqual(progress.render(), '[---ᗧ//|||]') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_not_render_pacman_when_finished(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(8) self.assertEqual(progress.render(), '[--------] ') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') @patch('pybuilder.plugins.python.integrationtest_plugin.print_text') @patch( 'pybuilder.plugins.python.integrationtest_plugin.TaskPoolProgress.can_be_displayed' ) def test_should_erase_previous_progress_on_subsequent_renders( self, _, print_text, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(2) progress.render_to_terminal() print_text.assert_called_with('[--ᗧ//||||]', flush=True) progress.render_to_terminal() print_text.assert_called_with('\b' * (10 + len('ᗧ')) + '[--ᗧ//||||]', flush=True)
def test_should_be_finished_when_all_tasks_are_finished(self): progress = TaskPoolProgress(1, 1) progress.update(1) self.assertTrue(progress.is_finished)
class TaskPoolProgressTests(unittest.TestCase): def setUp(self): self.progress = TaskPoolProgress(42, 8) def test_should_create_new_progress(self): self.assertEqual(self.progress.workers_count, 8) self.assertEqual(self.progress.finished_tasks_count, 0) self.assertEqual(self.progress.total_tasks_count, 42) def test_should_have_max_amount_of_tasks_running_when_limited_by_workers(self): self.assertEqual(self.progress.running_tasks_count, 8) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks(self): progress = TaskPoolProgress(2, 4) self.assertEqual(progress.running_tasks_count, 2) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks_after_updating(self): self.progress.update(40) self.assertEqual(self.progress.running_tasks_count, 2) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting(self): self.assertEqual(self.progress.waiting_tasks_count, 42 - 8) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting_after_updating(self): self.progress.update(2) self.assertEqual(self.progress.waiting_tasks_count, 40 - 8) def test_should_not_be_finished_when_tasks_are_still_todo(self): self.assertFalse(self.progress.is_finished) def test_should_not_be_finished_when_tasks_are_still_running(self): progress = TaskPoolProgress(1, 1) self.assertFalse(progress.is_finished) def test_should_be_finished_when_all_tasks_are_finished(self): progress = TaskPoolProgress(1, 1) progress.update(1) self.assertTrue(progress.is_finished) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_be_displayed_when_tty_given(self, stdout): stdout.isatty.return_value = True self.assertTrue(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_not_be_displayed_when_no_tty_given(self, stdout): stdout.isatty.return_value = False self.assertFalse(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_render_progress(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(3) self.assertEqual(progress.render(), '[---ᗧ//|||]') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') @patch('pybuilder.plugins.python.integrationtest_plugin.print_text') @patch('pybuilder.plugins.python.integrationtest_plugin.TaskPoolProgress.can_be_displayed') def test_should_erase_previous_progress_on_subsequent_renders(self, _, print_text, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(2) progress.render_to_terminal() print_text.assert_called_with('[--ᗧ//||||]', flush=True) progress.render_to_terminal() print_text.assert_called_with( '\b' * (10 + len('ᗧ')) + '[--ᗧ//||||]', flush=True)
class TaskPoolProgressTests(unittest.TestCase): def setUp(self): self.progress = TaskPoolProgress(42, 8) self.project = Project("basedir") def test_should_leave_user_specified_properties_when_initializing_plugin(self): expected_properties = { "dir_source_integrationtest_python": "foo/bar/python", "integrationtest_file_glob": "*foo.py", "integrationtest_file_suffix": True, "integrationtest_additional_environment": {"env3": "foo"}, "integrationtest_inherit_environment": True, "integrationtest_always_verbose": True } for property_name, property_value in expected_properties.items(): self.project.set_property(property_name, property_value) initialize_integrationtest_plugin(self.project) for property_name, property_value in expected_properties.items(): self.assertEqual( self.project.get_property("dir_source_integrationtest_python"), "foo/bar/python") self.assertEqual( self.project.get_property("integrationtest_file_glob"), "*foo.py") self.assertEqual( self.project.get_property("integrationtest_file_suffix"), True) self.assertEqual( self.project.get_property("integrationtest_additional_environment"), {"env3": "foo"}), self.assertEqual( self.project.get_property("integrationtest_always_verbose"), True) def test_should_create_new_progress(self): self.assertEqual(self.progress.workers_count, 8) self.assertEqual(self.progress.finished_tasks_count, 0) self.assertEqual(self.progress.total_tasks_count, 42) def test_should_have_max_amount_of_tasks_running_when_limited_by_workers(self): self.assertEqual(self.progress.running_tasks_count, 8) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks(self): progress = TaskPoolProgress(2, 4) self.assertEqual(progress.running_tasks_count, 2) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks_after_updating(self): self.progress.update(40) self.assertEqual(self.progress.running_tasks_count, 2) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting(self): self.assertEqual(self.progress.waiting_tasks_count, 42 - 8) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting_after_updating(self): self.progress.update(2) self.assertEqual(self.progress.waiting_tasks_count, 40 - 8) def test_should_not_be_finished_when_tasks_are_still_todo(self): self.assertFalse(self.progress.is_finished) def test_should_not_be_finished_when_tasks_are_still_running(self): progress = TaskPoolProgress(1, 1) self.assertFalse(progress.is_finished) def test_should_be_finished_when_all_tasks_are_finished(self): progress = TaskPoolProgress(1, 1) progress.update(1) self.assertTrue(progress.is_finished) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_be_displayed_when_tty_given(self, stdout): stdout.isatty.return_value = True self.assertTrue(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_not_be_displayed_when_no_tty_given(self, stdout): stdout.isatty.return_value = False self.assertFalse(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_render_progress(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(3) self.assertEqual(progress.render(), '[---ᗧ//|||]') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_not_render_pacman_when_finished(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(8) self.assertEqual(progress.render(), '[--------] ') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') @patch('pybuilder.plugins.python.integrationtest_plugin.print_text') @patch('pybuilder.plugins.python.integrationtest_plugin.TaskPoolProgress.can_be_displayed') def test_should_erase_previous_progress_on_subsequent_renders(self, _, print_text, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(2) progress.render_to_terminal() print_text.assert_called_with('[--ᗧ//||||]', flush=True) progress.render_to_terminal() print_text.assert_called_with( '\b' * (10 + len('ᗧ')) + '[--ᗧ//||||]', flush=True)
class TaskPoolProgressTests(unittest.TestCase): def setUp(self): self.progress = TaskPoolProgress(42, 8) def test_should_create_new_progress(self): self.assertEqual(self.progress.workers_count, 8) self.assertEqual(self.progress.finished_tasks_count, 0) self.assertEqual(self.progress.total_tasks_count, 42) def test_should_have_max_amount_of_tasks_running_when_limited_by_workers( self): self.assertEqual(self.progress.running_tasks_count, 8) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks( self): progress = TaskPoolProgress(2, 4) self.assertEqual(progress.running_tasks_count, 2) def test_should_have_max_amount_of_tasks_running_when_limited_by_tasks_after_updating( self): self.progress.update(40) self.assertEqual(self.progress.running_tasks_count, 2) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting( self): self.assertEqual(self.progress.waiting_tasks_count, 42 - 8) def test_should_have_tasks_that_are_neither_running_nor_finished_as_waiting_after_updating( self): self.progress.update(2) self.assertEqual(self.progress.waiting_tasks_count, 40 - 8) def test_should_not_be_finished_when_tasks_are_still_todo(self): self.assertFalse(self.progress.is_finished) def test_should_not_be_finished_when_tasks_are_still_running(self): progress = TaskPoolProgress(1, 1) self.assertFalse(progress.is_finished) def test_should_be_finished_when_all_tasks_are_finished(self): progress = TaskPoolProgress(1, 1) progress.update(1) self.assertTrue(progress.is_finished) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_be_displayed_when_tty_given(self, stdout): stdout.isatty.return_value = True self.assertTrue(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.sys.stdout') def test_should_not_be_displayed_when_no_tty_given(self, stdout): stdout.isatty.return_value = False self.assertFalse(self.progress.can_be_displayed) @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_render_progress(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(3) self.assertEqual(progress.render(), '[---ᗧ//|||]') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') def test_should_not_render_pacman_when_finished(self, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(8) self.assertEqual(progress.render(), '[--------] ') @patch('pybuilder.plugins.python.integrationtest_plugin.styled_text') @patch('pybuilder.plugins.python.integrationtest_plugin.print_text') @patch( 'pybuilder.plugins.python.integrationtest_plugin.TaskPoolProgress.can_be_displayed' ) def test_should_erase_previous_progress_on_subsequent_renders( self, _, print_text, styled): styled.side_effect = lambda text, *styles: text progress = TaskPoolProgress(8, 2) progress.update(2) progress.render_to_terminal() print_text.assert_called_with('[--ᗧ//||||]', flush=True) progress.render_to_terminal() print_text.assert_called_with('\b' * (10 + len('ᗧ')) + '[--ᗧ//||||]', flush=True)