Beispiel #1
0
    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()
Beispiel #2
0
    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()
Beispiel #3
0
    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()
Beispiel #4
0
    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)
Beispiel #5
0
 def run(self):
     parse_submit_description_from_ip(self.get_information_package())
Beispiel #6
0
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)