Пример #1
0
    def test_register_doi(self, urlopen):
        registry = queryUtility(IRegistry)
        settings = registry.forInterface(IRecensioSettings)
        settings.doi_registration_username = u'user'
        settings.doi_registration_password = u'secret'

        register_doi(self.review_a)

        self.assertTrue(urlopen.called)
        request = urlopen.call_args[0][0]
        self.assertEqual(
            request.get_full_url(),
            u'http://www.da-ra.de/dara/study/importXML?registration=true')
        self.assertEqual(
            request.get_data(),
            self.review_a.restrictedTraverse('@@xml-dara')().encode('utf-8'))
        self.assertEqual(
            request.headers,
            {'Content-type': 'application/xml;charset=UTF-8',
             'Authorization': 'Basic dXNlcjpzZWNyZXQ='})
Пример #2
0
 def run(self):
     for issue_or_volume in self.issues_and_volumes():
         for review in self.reviews(issue_or_volume):
             if not review.isDoiRegistrationActive():
                 continue
             if api.content.get_state(review) != 'published':
                 continue
             path = '/'.join(review.getPhysicalPath())
             if not review.getEffectiveDate():
                 log.error("No effective date, can not generate XML! " +
                           path)
                 continue
             status, message = register_doi(review)
             print('{0}: {1}, {2}'.format(path, status, message))
Пример #3
0
 def __call__(self):
     if self.request.get('REQUEST_METHOD') == 'POST':
         status, message = register_doi(self.context)
         IStatusMessage(self.request).addStatusMessage(
             message, type=status)
     self.request.response.redirect(self.context.absolute_url())