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='})
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))
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())