Example #1
0
 def test_reduce_bad_datafile(self, _get_mantid_version: Mock,
                              mock_logger_info: Mock):
     self.message.description = "testdescription"
     runner = ReductionRunner(self.message)
     runner.reduce()
     mock_logger_info.assert_called_once()
     assert mock_logger_info.call_args[0][1] == "testdescription"
     _get_mantid_version.assert_called_once()
     assert runner.message.message == 'REDUCTION Error: Problem reading datafile: /isis/data.nxs'
Example #2
0
    def test_validate_input_failure(self, _):
        """
        Test: A ValueError is raised
        When: validate_input is called with an attribute who's value is None
        """
        mock_self = Mock()
        mock_self.message = self.message
        mock_self.message.facility = None

        with self.assertRaises(ValueError):
            ReductionRunner.validate_input(mock_self, 'facility')
Example #3
0
    def test_reduce_ok(self, reduce: Mock, _get_mantid_version: Mock):
        with tempfile.NamedTemporaryFile() as tmpfile:
            self.message.data = tmpfile.name

            runner = ReductionRunner(self.message)
            runner.reduce()

        reduce.assert_called_once()
        _get_mantid_version.assert_called_once()
        assert str(reduce.call_args[0][2].path) == tmpfile.name
        assert runner.message.reduction_data is not None
        assert runner.message.reduction_log is not None
        assert runner.message.message is None
        assert runner.message.software == "5.1.0"
Example #4
0
    def test_reduce_throws_any_exception(self, reduce: Mock,
                                         _get_mantid_version: Mock):
        reduce.side_effect = Exception
        with tempfile.NamedTemporaryFile() as tmpfile:
            self.message.data = tmpfile.name

            runner = ReductionRunner(self.message)
            runner.reduce()

        reduce.assert_called_once()
        _get_mantid_version.assert_called_once()
        assert str(reduce.call_args[0][2].path) == tmpfile.name
        assert runner.message.reduction_data is None
        assert runner.message.software == "5.1.0"
        assert "REDUCTION Error:" in runner.message.message
Example #5
0
 def test_init_validate_throws(self, _: Mock):
     """
     Test: Failing to parse a parameter will raise a ValueError
     When: called with a parameter that can't be validated
     """
     with self.assertRaises(ValueError):
         ReductionRunner(self.message)
Example #6
0
    def test_validate_input_success(self, _):
        """
        Test: The attribute value is returned
        When: validate_input is called with an attribute which is not None
        """
        mock_self = Mock()
        mock_self.message = self.message

        actual = ReductionRunner.validate_input(mock_self, 'facility')
        self.assertEqual(actual, self.message.facility)
Example #7
0
 def test_init(self):
     """
     Test: init parameters are as expected
     When: called with expected arguments
     """
     runner = ReductionRunner(self.message)
     self.assertEqual(runner.message, self.message)
     self.assertIsNotNone(runner.admin_log_stream)
     self.assertEqual(runner.data_file, '/isis/data.nxs')
     self.assertEqual(runner.facility, 'ISIS')
     self.assertEqual(runner.instrument, 'GEM')
     self.assertEqual(runner.proposal, '1234')
     self.assertEqual(runner.run_number, '4321')
     self.assertEqual(runner.reduction_arguments, 'None')
Example #8
0
 def test_get_mantid_version(self, logger: Mock):
     assert ReductionRunner._get_mantid_version() is None
     assert logger.error.call_count == 2