def setup(self, filename): mock_process = MagicMock() try: self.stopped_bag = prb.Bag(filename) self.running_bag = prb.Bag(filename) except prb.MissingBagError: hyp.reject() self.running_bag.process = mock_process
def test_enter_returns_self(self, filenames): with patch.object(prb, "time", autospec=True): try: raw_bag = prb.Bag(filenames) with prb.Bag(filenames) as context_bag: assert context_bag.filenames == raw_bag.filenames assert context_bag.process == raw_bag.process except prb.MissingBagError: hyp.reject()
def test_normal_exceptions_get_reraised(self): with patch.object(prb, "time", autospec=True): for exception in (prb.BagError, AssertionError): with pytest.raises(exception): with prb.Bag("example.bag") as context_bag: context_bag.process = MagicMock() context_bag.process.poll.return_value = None raise exception
def test_exit_while_running_generates_warning(self): with patch.object(prb, "logger", autospec=True) as mock_logger: with patch.object(prb, "time", autospec=True): with prb.Bag("example.bag") as context_bag: context_bag.process = MagicMock() context_bag.process.poll.return_value = None assert mock_logger.warning.called assert mock_logger.info.called
def test_keyboard_interrupt_does_not_reraise_exception(self): with patch.object(prb, "logger", autospec=True) as mock_logger: with patch.object(prb, "time", autospec=True): with prb.Bag("example.bag") as context_bag: context_bag.process = MagicMock() context_bag.process.poll.return_value = None raise KeyboardInterrupt assert not mock_logger.warning.called assert not mock_logger.critical.called assert mock_logger.info.called
def test_exit_while_running_with_error_stops_but_no_warning(self): with patch.object(prb, "logger", autospec=True) as mock_logger: with patch.object(prb, "time", autospec=True): with patch.object(prb.Bag, "stop", autospec=True) as mock_stop: try: with prb.Bag("example.bag") as context_bag: context_bag.process = MagicMock() context_bag.process.poll.return_value = None raise prb.BagError except prb.BagError: assert not mock_logger.warning.called assert mock_logger.critical.called assert not mock_logger.info.called mock_stop.assert_called_once_with(context_bag)
def test_init_process_always_none(self, filenames): try: bag = prb.Bag(filenames) except prb.MissingBagError: hyp.reject() assert bag.process is None
def test_init_multiple_filenames(self, filenames): try: bag = prb.Bag(filenames) except prb.MissingBagError: hyp.reject() assert bag.filenames == filenames
def test_init_single_filename(self, filename): try: bag = prb.Bag(filename) except prb.MissingBagError: hyp.reject() assert bag.filenames == [filename]
def test_repr_with_multiple_filenames(self, filenames): try: assert repr(prb.Bag(filenames)) == u"<Bag({})>".format(filenames) except prb.MissingBagError: hyp.reject()
def test_repr_with_single_filename(self, filename): try: assert repr(prb.Bag(filename)) == u"<Bag({})>".format([filename]) except prb.MissingBagError: hyp.reject()