def test_parse_submit_desc_no_policy_same_correct_info_class( self, mock_parse_desc, mock_agents): now = timezone.now() tomorrow = now + datetime.timedelta(days=1) yesterday = now - datetime.timedelta(days=1) mock_parse_desc.return_value = { 'label': 'some label', 'entry_date': now, 'start_date': yesterday, 'end_date': tomorrow, 'altrecordids': { 'POLICYID': [self.policy.policy_id] }, 'information_class': 2, } parse_submit_description_from_ip(self.ip) self.assertEqual(self.ip.policy, self.policy) self.assertEqual(self.ip.label, "some label") self.assertEqual(self.ip.entry_date, now) self.assertEqual(self.ip.start_date, yesterday) self.assertEqual(self.ip.end_date, tomorrow) self.assertEqual(self.ip.information_class, self.policy.information_class) mock_parse_desc.assert_called_once() mock_agents.assert_called_once()
def test_parse_submit_desc_with_policy_when_ip_is_missing_info_class( self, mock_parse_desc, mock_agents): now = timezone.now() tomorrow = now + datetime.timedelta(days=1) yesterday = now - datetime.timedelta(days=1) mock_parse_desc.return_value = { 'label': 'some label', 'entry_date': now, 'start_date': yesterday, 'end_date': tomorrow, } self.ip.policy = self.policy self.ip.save() parse_submit_description_from_ip(self.ip) self.assertEqual(self.ip.label, "some label") self.assertEqual(self.ip.entry_date, now) self.assertEqual(self.ip.start_date, yesterday) self.assertEqual(self.ip.end_date, tomorrow) self.assertEqual(self.ip.information_class, self.policy.information_class) mock_parse_desc.assert_called_once() mock_agents.assert_called_once()
def test_parse_submit_desc_no_policy_bad_info_class_should_raise_ValueError( self, mock_parse_desc, mock_agents): now = timezone.now() tomorrow = now + datetime.timedelta(days=1) yesterday = now - datetime.timedelta(days=1) mock_parse_desc.return_value = { 'label': 'some label', 'entry_date': now, 'start_date': yesterday, 'end_date': tomorrow, 'altrecordids': { 'POLICYID': [self.policy.policy_id] }, 'information_class': 1, } with self.assertRaisesRegexp( ValueError, "Information class.*{}.*{}.*".format(1, 2)): parse_submit_description_from_ip(self.ip) self.assertEqual(self.ip.information_class, 1) self.assertEqual(self.policy.information_class, 2) mock_parse_desc.assert_called_once() mock_agents.assert_not_called()
def test_parse_submit_desc_with_incorrect_policy(self, mock_parse_desc, mock_agents): now = timezone.now() tomorrow = now + datetime.timedelta(days=1) yesterday = now - datetime.timedelta(days=1) mock_parse_desc.return_value = { 'label': 'some label', 'entry_date': now, 'start_date': yesterday, 'end_date': tomorrow, 'information_class': 2, 'altrecordids': { 'POLICYID': ['incorrect'] }, } self.ip.submission_agreement = self.sa self.ip.save() expected_message = "Policy in submit description ({}) and submission agreement ({}) does not match".format( 'incorrect', self.sa.policy.policy_id, ) with self.assertRaisesMessage(ValueError, expected_message): parse_submit_description_from_ip(self.ip)
def run(self): parse_submit_description_from_ip(self.get_information_package())
def ParseSubmitDescription(self): parse_submit_description_from_ip(self.get_information_package()) ip = self.get_information_package() msg = "Parsed submit description at {}".format(ip.package_mets_path) self.create_success_event(msg)